= Define more than one profile per user = || '''Date''' || 2012/06/07 || || '''Contact(s)''' || François Prunayre, Florent Gravin || || '''Last edited''' || || || '''Status''' || Draft || || '''Assigned to release''' || 2.9.0 || || '''Resources''' || Available (funding Ifremer) || || '''Ticket #''' || #1071 || || '''Git repo''' || https://github.com/fxprunayre/core-geonetwork/tree/feature/user-with-profiles || [[PageOutline(2-3,,inline)]] == Overview == Add the capability to have more than one profile for a user. Catalogue users could be: * administrator or * user administrator and/or reviewer and/or editor and/or registered user A reviewer in a group is also an editor for this group. === Editor configuration === The main change of this proposal is in the user configuration page which now allows to set for each profiles the list of groups the user is member of. [[Image(user-admin.png)]] If user is an administrator, profiles and group lists are not displayed. === Proposal Type === * '''Type''': User & group * '''App''': !GeoNetwork * '''Module''': All === Links === * '''Documents''': === Voting history === Vote proposed by Francois on 2012/07/05, result was * +1 Jeroen, Patrizia, Francois == Proposal == === DB changes === * add a profile field in the usergroups table * the profile in the users table is the main profile which means the profile with the more privileges for the user according to Jeeves user-profiles settings (eg. if a user is Editor in Group1 and UserAdministrator in Group2, the main profile for the user is UserAdministrator). === User interface changes === * Metadata * New metadata : * only list group where current user is editor * add exception if user try to create a metadata in other groups (#979) * Metadata insert : * only list group where current user is editor * add exception if user try to insert a metadata in other groups (#979) * Privileges : * only list group where current user is editor|registered * only allow publish on internet if current user is reviewer for the metadata group * If publish to all groups option is set, display all groups * Administration * User management : * only display if current user is Administrator or userAdmin of one group * for userAdmin, only display users part of current user groups * User list : only display user member of the groups where current user is userAdmin * User info : only display groups where current user is userAdmin in order to not allow to make a user member of a group userAdmin is not part of * Search * Search privileges filter : add groups where current user is editor|registered * Group criteria : only list group where current user is editor Note: the groups where a user is a reviewer, this user is also an editor for those groups. === Java changes === * service xml.info also provide a profile parameter to get user groups per profile {{{ xml.info?type=groups&profile=Editor }}} * !GetMine also procide a config parameter profile to get the list of user group for a specific profil. * !ServiceNotAllowed exception is added when: * a user try to insert a metadata in group the user is not member of (#979) * a editor (also reviewer) try to publish a record to internet/intranet/guest while he is not reviewer === Related fix === * Widgets / clean other action menu : remove "new owner" for editor or guest. Do not suggest create metadata action for guest (#781) == Risks == == Participants == * Francois Prunayre * Florent Gravin