Restrict courses from displaying on Moodle conditionally based on user profile field? - moodle

I have an installation of Moodle 2.8.3 and I've added a custom user field, "role", to the user profiles. I can hide activities and documents based on that user field, however, if there is an entire course that is only for one role, the other roles see it.
Example:
I'm a client and I'm looking through the course catalog. I see a course "XYZ" and click on it to enroll but the course is totally empty because it's for employees only.
Are there any examples of this being done? I've done some research and found IOMAD but it's a completely custom deployment of Moodle and would need to go through a lengthy approval process and then be reinstalled on dev, imp, and prod.

Totara has audience visibility, so you can restrict courses to members of an audience.
http://help.totaralms.com/Audience_Based_Visibility.htm
Totara is a distribution of Moodle, aimed at enterprises.
http://www.totaralms.com/
I think the audience visibility code would be difficult to port to Moodle though. You can try out the Totara seedlings code from this link. https://github.com/totara/seedlings
Then once installed, switch on audience visibility using the help link above

Related

Keycloak: How to customize user email to be mandatory and immutable

Our old authentication mechanism had mandatory and immutable email for each user by design. After exporting old authentincation mechanism into the hands of Keycloak 4.6.Final, We are left with old references to users by email as this was in fact used as an id from the beginning of this system.
Keycloak User Management UI is delivered to client as part of a whole system. Now we're facing a problem where the users administrator at the customer's side is able to create users with no email, and even worst, he give a user one email and overtime change it. Leaving this option open is most likely to create bugs for the client as the user base grows.
I've been digging around google, sof, keycloak mailing list search engine, and couldn't find any documentation relating developer's ability to apply configuration on top of particular keycloak distribution which would set features such as mandatory and immutable on some user attributes which are optional and editable by default.
I know that question is old, but maybe someone will need answer.
it's 2022-11 and there is experimentas feature in Keycloak 20. You can enable declarative-user-profile and then customize your user profile and set required fields and other options. user-profile
This feature may be removed in the future, because it's experimental.
And this feature has bugs (tried with 20.0.1). For example, if you add required attribute group, then you can see groups while creating new user and you can select groups. But if you try to save user, then error appears telling, that group is required.

Customising Moodle

I am using Moodle LMS Management system for our project. We have different roles in the project like a principal, admin, tutor, course creator, student, IQA, EQA. The problem we are facing is, restricting the comment section. See, Tutor will give feedback on a student assignment and submission.
So if the tutor comments, all the other roles can see the comment. If IQA person gives feedback on particular student submission means, that comment should be visible only to principal, tutor, admin, EQA. It should not be visible to the student. My doubt is, how to restrict the comments in moodle? Any Help Appreciated..

Request payment part way through course

I'd like students to be able to access the first couple of lessons in Moodle before being presented with a request for payment. I've searched for ages on Google and found nothing, and also searched for all the possible terms I could think of here, and again come up short. Apologies therefore for the lack of contributing research/evidence.
I'm using Paypal as the chosen method of payment at the moment. Moodle is version 3.2.
Is there a way to add this kind of option to the 'access restrictions' in the courses themselves?
There isn't an existing way to restrict activity access based on the users enrolment type.
Without writing some custom code, the easiest way to do this is probably to have a separate course containing the pay-walled content, with paypal enrolment set up.
Add an activity to the free course with a link to the paid course. Use access restrictions to hide it until the other activities are complete.
When a user completes the free course content, the link to the paid course will be revealed, and they can click to enrol using paypal.

How to Configure IdentityManager

I'm at the early days of looking into IdentityServer v3 and IdentityManager, as I'm certain those guys are more clued up than I, but I cannot see how to configure the IdentityManager.
If we're deploying IdentityManager to a client, all the client want to do is "standard admin type stuff", such as
create users
unlock accounts (e.g. after 3 failed login attempts)
suspend accounts (not paid your bill, tut tut...)
delete users
..rather than amend claims, roles and suchlike (presumably these would be hidden from the Administrators).
What am I missing?
Or, is the IdentityManager supposed to be used by the implementation team installing the thing, and then the business administrators who deal with the topics listed above actually don't use IdentityManager at all, but a separate admin site we have to write? As far as I can make out all the pages, htm letc is within the nuget package so cannot be amended by me.
If it makes any difference, we're trying to create a public facing website that can be logged into, but the users are only created by the company, whose admin site to create & administer the users is IP restricted / not public facing.
Identity Manager is aimed at developers and internal administrators for testing and initial configuration purposes, as opposed to end users.
Check out https://vimeo.com/125426951 by the repo's author. I think it's explicitly stated at around the 1 minute mark. It's mentioned on the Github issue tracker quite frequently too.
Also, it's not that extensible yet, so you won't be able to brand it or remove sections (such as your requirement of no claims).

User sub-sites - CMS Multisite or other solution

I've been thinking about an online idea for about 3-4 years now and can't get it out of my head so I've decided to act upon it and see if I can get it working. Currently working a POC and design layout which I plan to tender for development.
The main part of the portal and most important component involves user sub-sites. I am unsure how to tackle the process for a user to create a sub-site during the registration process and/or what path to take.
Let's say the main site is www.abc.net - the user would then register a sub-site based on the credentials they input. E.g. user1.abc.net, mysite.abc.net or joeblog.abc.net... whatever they want and so forth. No SEO required - The site templates are fairly basic and the sub-sites will be accessible through the main site. So the process to be:
User logs onto main site and registers
During registration, user enters details including sub-site name they want
Select the template they want - basically different colour schemes. Functionality to be the same for all templates
their site is created
when the user is logged on they get directed to their sub-site
Ability to edit their sub-site - add content and add extra pages, change details…. etc
General users (registered or anonymous) would be able to browse and search content to the sub-sites via the main site.
Each sub-site to be independent from each other - no content sharing. Basically they are separate websites hosted as sub-sites but need they need some type of editing available like a CMS. Not sure if a shared CMS is possible but the owner has to be able to modify content to their own sub-site.
So my question are…
Do I try and use a Drupal/Wordpress/Joomla CMS with multisite functionality?
Do I try a solution where I have a collection of simple sites that I use for sub-sites, each to have their own database and some type of CMS or WYSIWYG for editing? Is separate CMS even possible for each Sub-site?
Any input would be greatly appreciated.
As far as I know this would not be possible as the CMS would not have access to your server where the sub-domain is created.
It would be possible to offer something similer using Joomla as it offers the option to apply custom styles (templates) to different pages. You would however have to adopt the following URL convention www.yourdomain.com/userselectedtext.
You can then have a page where users register with your site and the cms creates their page.
User permissions in joomla can be set so only the owner of a particular page can view or edit it.
You can check out this source: http://www.drupalgardens.com/. Google what platform is it based on. Maybe you'll find some information. Read also about this extension: http://www.joomplace.com/administration-extensions/multisitescontrol.html. It's for Joomla sites. I used this component for multisites content management. Maybe it will help you too.