Personmanagement
- Granting resources to a Subadministrator
- SubadministratorRessources
- Create a new person
- Deputy
- Detailed person view
- Access rights by role
- Person status (activated, archived, deactivated)
- Deleting a person
- Persons export
- Persons import
Granting resources to a Subadministrator
As soon as a person is given the role of a "Subadministrator", the administrator can grant him/her with manageable resources . This defines the persons and courses that the Subadministrator will be able to see and manage in the Admin Panel.
Persons
The manageable resources organisation unit and jobdescription can be understood as being filters for the person table. This means that the Subadministrator can only manage those persons which would pass the set filter (for organisation unit and jobdescription). It is important to understand that both filters work within an "AND" logic.
- If both an organisation unit and a jobdescription are defined as manageable resources, then a person needs to fulfill both criteria in order to be seen/managed by this particular subadmin.
- If only an organisation unit is given as a manageable resource, then the subadmin can manage all persons within this unit, irrespective of their jobdescriptions.
- The reverse is also true: if a subadmin only has a jobdescription defined as a manageable resource (ex. Account Manager) and no organisation unit, then he can manage all persons who have this jobdescription, irrespective of their organisation unit.
- If a subadministrator has none of the two given as manageable resources, then he cannot see/manage any persons.
Within his manageable resources, the subadministrator can see and manage persons with equal or higher role, so that he can create course assignments, generate reports etc; however, he can only create persons with the lower ranked role "learner".
Courses
The subadministrator can only assign those courses that have the topic which is granted to him as a manageable resource
SubadministratorRessources
As soon as a person is given the role of a "Subadministrator", the administrator can grant him/her with manageable resources . This defines the persons and courses that the Subadministrator will be able to see and manage in the Admin Panel.
Persons
The manageable resources organisation unit and jobdescription can be understood as being filters for the person table. This means that the Subadministrator can only manage those persons which would pass the set filter (for organisation unit and jobdescription). It is important to understand that both filters work within an "AND" logic.
- If both an organisation unit and a jobdescription are defined as manageable resources, then a person needs to fulfill both criteria in order to be seen/managed by this particular subadmin.
- If only an organisation unit is given as a manageable resource, then the subadmin can manage all persons within this unit, irrespective of their jobdescriptions.
- The reverse is also true: if a subadmin only has a jobdescription defined as a manageable resource (ex. Account Manager) and no organisation unit, then he can manage all persons who have this jobdescription, irrespective of their organisation unit.
- If a subadministrator has none of the two given as manageable resources, then he cannot see/manage any persons.
Within his manageable resources, the subadministrator can see and manage persons with equal or higher role, so that he can create course assignments, generate reports etc; however, he can only create persons with the lower ranked role "learner".
Courses
The subadministrator can only assign those courses that have the topic which is granted to him as a manageable resource
Create a new person
Administrators (and subadministrators within their manageable resources) can create new persons manually. In the Administration panel > Persons, click on the New person button.
The minimal information needed for the succesful creation of a person entry are:
- first and family name
- valid e-mail
- username
- password
Additionally, you can upload a profile picture (jpg, png), set an employee ID, the language in which the person will see the learning platform, the person role and frequency of notifications receival (social mails only) and a date of birth which would appear on certificates obtained by this person.
Deputy
Subadministrators can define their deputies, who can thereby assume their role as long as they are defined as such. This prevents complicated ressource allocation plans when a substitution is needed and allows for ex. editing the course planner of another subadmin.
"My deputies " tab:
- the subadministrator can add other subadministrators and administrators as deputies
- the administrator can add other subadministrators as deputies
When a deputy is no longer needed, he can be removed from this section also.
As soon as you are defined as a deputy, after you log into your Admin Panel > More > Deputy roles by simply clicking on the person's name you can enter the deputy role
The successful role switch can be confirmed by these 3 elements:
- In the header you can now see the message "Logged in as Deputy"
- The button "Leave admin panel" has changed to "Leave deputy role"
- Immediately after entering the deputy role, you are redirected to the Persons overview page, where all persons defined by the manageable resources of the subadministrator can be seen and managed
Detailed person view
Once you select a person from the Person administration panel, you can have a quick overview over the most important data in the Overview panel, including number of assigned courses, number of published posts, last login data and a quick glance over the status of the person, like in the following example:
In the Personal information panel you can view and edit personal data of the person, from name to organisational unit or jobdescription, with a few special options:
- can be deleted: if this is set to No, the person cannot be deleted by import / delete actions. Only when set to Yes is the person available for Delete actions
- login blocked: should you need to prevent a person from logging into the system, you can activate this toggle and login attempts will be blocked
- email notification: you can define the frequency of notifications receivals by the person, from "never" to "daily" or "weekly".
Email notification setting affects the frequency of the social notifications only. Course assignments and Welcome and Reminder emails from the course planer will not be affected by this setting.
The Certificates panel shows a listing of all certificates obtained or imported for this particular person.
Under Assigned courses, you can either display a listing of all courses under the All panel, or you can access a filtered view of the courses by status in the panels Being processed, Not started, Completed, Failed, Expired or Unpaid (which applies only for chargeable courses).
Under the Actions dropdown in these course panels you can chose from several options:
- define validity period: once set, the learner can access the course within the defined "from - to" period
- set paid/unpaid: for chargeable courses booked by this learner (obsolete, with the Shop introduction)
- complete course: the status of the course changes to "complete", but the results saved by the learner actions remain unchanged
- reset course: learning progress information of the course and its learning objects is reset
- create certificate
The detailed person view panel for courses allows you to delete course assignments for the person, to assign new courses for him/her, but also to generate the available reports for the courses taken by this person:
Access rights by role
Access to Admin Panel | Learner | Subadministrator without manageable resources | Subadministrator with manageable resources | Administrator/System administrator |
---|---|---|---|---|
Access to the Admin Panel (generally) | NOT GRANTED | ALLOWED | ALLOWED | ALLOWED |
Access to the Admin Panel, including Group section | NOT GRANTED | NOT GRANTED | NOT GRANTED | ALLOWED |
Access to person import | NOT GRANTED | NOT GRANTED | NOT GRANTED | ALLOWED |
Access to course import | NOT GRANTED | NOT GRANTED | NOT GRANTED | ALLOWED |
Managing courses | NOT GRANTED | NOT GRANTED | Within manageable resources | ALLOWED |
Creating course plans (adding Persons, Courses, Rules) | NOT GRANTED | NOT GRANTED | Within manageable resources | ALLOWED |
Deleting course plans | NOT GRANTED | NOT GRANTED | Within manageable resources | ALLOWED |
Managing persons (create, archive, delete) | NOT GRANTED | NOT GRANTED | Within manageable resources | ALLOWED |
Managing property groups (topics, organisation units, job descriptions) | NOT GRANTED | NOT GRANTED | NOT GRANTED | ALLOWED |
Managing keywords | NOT GRANTED | ALLOWED | ALLOWED | ALLOWED |
Person status (activated, archived, deactivated)
Persons within Swiss Learning Hub can have 3 statuses: activated, deactivated, archived.
Activated
- full access to the platform, bound only by the limitations of their respective role (learner, subadministrator, administrator, system administrator)
- can be assigned courses, edited
Deactivated
- login of the deactivated user not possible
- deactivated users will still appear in reports & their learning progress over various courses will be kept
Archived
- login of archived users is not possible
- archived persons are often hidden in the system's processes and procedures (but can be made visible and processed by setting the filters to "show all" instead of "hide archived")
- archived users cannot be assigned new courses, however their learning progress can still be tracked in reports of courses they were a part of (as long as the filter is set to "show all learners" and not the default "hide archived"!)
How to change the status of a person
There are 2 main ways of doing this:
-
Either in the Person Administration, list view: when clicking on the Function button you will have the options to Archive / Activate / Deactivate one or more persons. Chosing any of the options will allow you to select the person(s) you want to apply the change for and then apply the bulk action.
-
Or in the Person detail view, to change the status of a single person
Deleting a person
Deleting persons also deletes all person data and learning progress information. If you need to keep the data, but would like to avoid seeing the person in all processes in the Admin panel, you can opt for archiving the person.
Deleting a person works from 2 views:
- In the Admin panel > Persons, click the Functions button, select Delete, select the desired person and click on button Delete. Once you confirm by clicking OK in the pop-up, the person will be removed from the system.
- Or you can select the person from the Person listing, in its detail page click on the Functions button and select Delete person. Again, with the confirmatory click on OK, the person will be removed from the system
Persons export
From the Person administration you can export persons into a CSV file. In the Administration panel > Persons > click on the Functions button and select the option Export.
Select the persons you wish to export and then click on the Export button. In the following pop-up you can select the language & coding preferences (MS-ANSI or UTF-8) for your file.
Once you select your preferences from the dropdowns, click on Continue and select Download in the following dialog, saving the file to your preferred location.
Of course you can make use of the extended search to filter the persons you export, which is our recommended procedure. Take a look at an example below:
Persons import
From the Person administration you can import persons into the system with a CSV file. In the Administration panel > Persons > click on the Functions button and select the option Import.
Please note that the import of CSV files is handled very restrictively. The CSV file must exactly match the specification, see specification-csv-for-person-import.
Besides selecting the correct csv file for the upload, you can now decide on 2 issues:
- what will happen to the persons who are already in the system and no longer contained in the csv file. These persons can be left as they are (no changes), they can all be deactivated, archived or even deleted
- you may decide to use the default password set for your system only for the users in the file that have no entry into the "password" column. (The standard password is selected individually and entered by a system administrator in the config file beforehand.)
When you select the appropriate radiobuttons and via "Select" chose the correct csv file, you can click on Continue.
Depending on the size of your file, the import can take a while, which you can see in the progress bar displayed during upload.
However, once the import is done, you will be shown a confirmation pop-up summarizing the import information that is saved in the database (name, source of error, ...)
- Archived persons: Counts the persons whose status has been changed to "archived".
- Deactivated persons: Counts the persons whose status has been changed to "deactivated".
- Activated persons: Counts the persons whose status has been changed to "activated".
- Error: Counts the produced errors through the import.
- New persons: Counts the persons who have been newly created in the system by the import.
- Job description: Counts the job descriptions which have been newly created in the system by the import.
Job descriptions will be created even if the import failed or has been canceled.
- Organisational units: Counts the organisational units which have been newly created in the system by the import.
Organisational units will be created even if the import failed or has been canceled.
- Updated persons: Counts the imported values. It is not checked whether the imported values existed in the system before, which means that the existing values might be overwritten by identical values. The decisive factor is the total number of values, not only the "changed" values.
Specification CSV for Person Import
";" must be used for field separation.
Description | Config | Expected |
---|---|---|
Header | - | The easiest way to get a correct csv template is by first exporting a person. The csv file generated by this export can then be adjusted and used as an import csv.The header of a csv file must look as follows: |
date | - | The date is editable and currently of no importance. |
language | - | This is a mandatory field and must receive a value from the 6 available options: "de", "fr", "en", "it", "es", "zh". The entered language defines the language the system uses to double-check or import the properties (organisational units / activities). |
encoding "ansi" | - | Defines the encoding (allows the unambiguous assignment of characters – must not be changed) |
person-id | - | System ID of the user. Is automatically assigned by the system and must not be changed. Is used to identify a person when the related data is updated. |
status | - | enabled archived disabled |
name | - | Mandatory field |
prename | - | Mandatory field |
username | Optional identification | Mandatory field |
password | - | New person:
|
Optional identification | Mandatory field. The system checks whether or not the entry is an e-mail address. | |
personal-id | Optional identification | - There is no defined minimal length - The maximal length is 255 characters - Not to be mistaken for "person-id" - Must not be unique |
role | - | Following values are valid for this mandatory field: - learner - default-subadministrator - administrator Roles of a lower level cannot import or change roles of higher levels. |
language | - | Mandatory field. Existing languages: de, en, fr, it, es, zh |
orgunit, jobdescription** | - | - Organisation units / activities are not required (caution: for empty units / activities can not be searched). - If an organisation unit / activity is on the list, but not yet in the system, it will be newly created. - If a new organisation unit / activity is on the list and the system contains a different one, the existing organisation unit / activity will be removed and the new one added to the system. That is, the organisation unit / activity will be exchanged by the import. - If you wish to add a second organisation unit / activity to the system, the old organisation unit / activity must also be displayed on the list. To enter multiple organisation units / activities use the character " | " to separate them from each other. - If you wish to enter a path of an organisation unit / activity in the system, use the character " / " . |
is_deletable | - | Defines whether the new person will be created with the setting "Can be deleted yes/no". There are the following settings for this mandatory field: 0 = No (person can not be deleted) 1 = Yes (person can be deleted) |
change_password | - | Defines whether the new person will be created with the setting "Change password yes/no". There are the following settings for this mandatory field: 0 = No (person must not change her password at the next log-in) 1 = Yes (person must change her password at the next log-in) empty = no changes The field "Change_password" is empty in the export. |
System configuration:
The Systemadmin configures both standard password generation and identification options under:
Default php in the "person_import" parameter.
Information about translations of organisation units/jobdescriptions (** in table)
* An organisation unit / activity consists of an identifier for which there may be translations.
* If required, translations must be entered in the system in the properties administration.
* If there are no translations, the name of the identifier is used.
* Organisation units are displayed with path and translation in the selected export language. Translation changes can thus be properly updated with the import.
This is only done in the selected export language.
Edit existing person
The Person ID clearly identifies a person. If the ID is already included in the system, the existing person data is overwritten by the new data from the list. If the ID is not yet in the system or if the field is empty, a person can be identified with three more fields.
Identification options are checked according to the following priorities:
1. "person\_id" (defintion see "Specification CSV Content")
2. "personal\_id" (defintion see "Specification CSV Content")
3. "email" (defintion see "Specification CSV Content")
4. "username" (defintion see "Specification CSV Content")
Process of error handling:
- Validation CSV file and header
- Content errors in the CSV
- Validation export results
- Error handling DB:
- Checks between the import list and the system occur on different levels. The database check displays an error but not its source on the GUI.
- There are two tables rendering information in the database. The table "trc_import_data" displays the source (line / column) of a faulty import.
- The two relevant tables are:
- trc_import_data
- trc_import_option
Error messages
if (error\_msg === 'orgunits\_not\_accepted') {
validatorData.headline = auxiliary.gt('Dateiüberprüfung fehlgeschlagen');
validatorData.text = auxiliary.gt('Organisationseinheiten nicht akzeptiert!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'too\_many\_header\_lines') {
validatorData.headline = auxiliary.gt('Dateiüberprüfung fehlgeschlagen');
validatorData.text = auxiliary.gt('Falsche Anzahl Zeilen im Tabellen-Header!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'header\_fields\_invalide') {
validatorData.headline = auxiliary.gt('Dateiüberprüfung fehlgeschlagen');
validatorData.text = auxiliary.gt('Ungültige Felder im Tabellen-Header!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'no\_person\_header\_found') {
validatorData.headline = auxiliary.gt('Dateiüberprüfung fehlgeschlagen');
validatorData.text = auxiliary.gt('Bitte überprüfen Sie den Tabellen-Header!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'no\_valide\_person\_found') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Keine gültigen Personen gefunden!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'wrong\_person\_status') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Fehlerhafter Personenstatus!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'wrong\_person\_username') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Fehlerhafter Benutzername!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'wrong\_person\_role') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Fehlerhafte Benutzerrolle');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'wrong\_person\_personal\_id') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Fehlerhafte Personalnummer');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'wrong\_person\_language') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Fehlerhafte Benutzersprache');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'wrong\_person\_is\_deletable') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Nicht erlaubte Einträge in "Ist löschbar"!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'duplicate\_person\_id') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Doppelte Personen-ID!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'empty\_username') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Benutzername ist leer!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'duplicate\_username') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Doppelter Benutzername!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'duplicate\_personal\_id') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Doppelte Personalnummer!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'jobdescriptions\_not\_accepted') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Nicht erlaubte Einträge in "Tätigkeiten"!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'orgunits\_not\_accepted') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Nicht erlaubte Einträge in "Organisationseinheiten"!');
validatorResult.push(validatorData);
validatorData = \[\];
}
if (error\_msg === 'role\_not\_accepted') {
validatorData.headline = auxiliary.gt('Fehler');
validatorData.text = auxiliary.gt('Nicht erlaubte Einträge in "Benutzerrollen"!');
validatorResult.push(validatorData);
validatorData = \[\];
}