AWOB Task 027

MPDL,GAVO

General Information
Grouping: Short description:

Links

 * 008
 * UC_AWOB_CM_01_Manage_Consortium

Diagrams




Mapping to general LR concepts

 * Consortium is Site and is created in a same manner as a Project.
 * Three types of member roles: consortium lead, consortium manager and Consortium Member (these would be respectively SiteOwner, SiteAdministrator and SiteMember)

Changes

 * Changes will be applied in the so_portlet, so_extgroup and relevant services

Changes in so_extgroup

 * Attribute extensions important in context of so_extgroup are:
 * type
 * Domain values: 1=Project, 2=Consortium, 3=WorkingGroup
 * Description: used to check the type of the group
 * visibility
 * Domain values: 1=Project, 2=Consortium, 3=WorkingGroup
 * Description: used to check the visibility of the group such as:
 * project is visibly only to the projects members(default), project is visible to consortium members, project is visible to working group members
 * working group is visible only to the working group members(default), working group is visible to consortium members
 * consortiumId
 * Description: optional, the id of the consortium group where current group (project, working group) belongs
 * workingGroupId
 * Description: optional, the id of the working group where current group (project) belongs
 * status
 * Description: shows the status of the Consortium, Working Group, Project respectively - [AWOB 0.7: only applicable to Consortium]
 * Domain values: Opened, Closed
 * logo
 * Description: optional, enable upload of consortium logo, see also respective JIRA issue
 * ToDo: LR allows for Site pages logo available only for site public pages. Check if this would be applicable first.
 * Value constraints




 * Service extensions important LocalServiceImpl changes
 * create appropriate constants class to hold values Task, Project, Consortium, WorkingGroup, AnyType respectively
 * add checks for the type of site: boolean isConsortium, isProject, isWorkingGroup
 * getManagedGroupByGroupAndType(managingGroupId, type)
 * Description: returns a collection of all managed groups of type (as specified) for a specific groupId e.g. give me all projects managed by this consortium, give me all working groups managed by this consortium, give me all Projects managed by this working group, give me any project/working group managed by this consortium (needs to respect current user privileges and visibility)
 * getManagedGroupsByType (type)
 * Description: returns a collection of all managed groups of specific type (or all types) such as: all Projects, allConsortiums, allWorkingGroups (needs to respect current user privileges and visibility)
 * getManagedGroupsByTypeAndUser (type, userId)
 * Description: returns a collection of all managed groups of specific type where user is a member of
 * Note: this method differs from previous in following: user may see a project in a Consortium even if she is not a member (in case the project visibility is "Consortium")
 * hasTasks
 * Description: boolean check if Project/Consortium/WorkingGroup has any tasks
 * getManagingGroups(groupid)
 * Description: returns a collection of managing groups for a selected groupid e.g. for a Project it will return a list containing WorkingGroup and Consortium of this project

Changes in so_portlet:invite members

 * enable invitemembers to work with Consortium

Changes in so_portlet:member requests

 * enable memberrequests to work with Consortium

Changes in so_portlet:member requests response

 * enable memberrequestsresponses to work with Consortium

Changes in so_portlet:awob_projects

 * check if can be easily enabled for Consortium (check also GUI design)
 * if feasible revise, otherwise copy and reduce for Consortium
 * see also see also respective JIRA issue

Other changes in so_portlet

 * test/check/revise throughly awob_log, notifications, dockbar

Changes in general in logic, JSP, Javascript and Velocity switches

 * isTaskSite and isProjecSite are used at many places within curent AWOB implementation
 * we need to make sure that everywhere where we check these values the conditions are revised wherever these assume that !isTaskSite is automatically a ProjectSite or !isProjectSite is automatically isTaskSite

New table so_extgroup_membership

 * to serve better the "history of project/consortium/working group" type of group memberships
 * Attributes
 * userId - userId of the member user
 * startDate - timestamp when member user joined the group in specified role (see roleId below)
 * enddate - optional, timestamp when member user left the group in specified role (see roleId below)
 * roleId - roleId in which userId joined the group
 * invitedDate - (optional) date when the invitation had been sent to the user for the specified role (not yet certain about this one)
 * personalNote - free text provided by the userId - will appear as a "banner" together with the user membership information in Collaborator pages and will be editable via Collaborator pages, and will be visible to all Collaborators
 * managingNote - free text provided by the group lead/manager - will appear as a "banner" together with the user membership information in Collaborator pages, will be editable via Collaborator pages, and will be visibly only to the Lead and the Manager

Changes in mpdl_listacorreo_portlet

 * enable it for the Consortium/Working Group membership
 * enable it for personalNote and managingNote
 * enable it for history preview
 * add "former members" page to show respectively information from so_extgroup_membership
 * enable it to populate respectively so_extgroup_membership whenever role changes or user leaves the project

AWOB 0.8 Role Management
AWOB 0.8 supports Consortium, Standalone projects, Working groups, as well as Projects created within a Working group of a consortium. Depending on these dependencies, the LR permission system needs to be in accordance with the following:


 * Task site roles (no changes from 0.7)
 * Task Lead -> Site Owner
 * Task Manager -> Site Administrator
 * Task Member -> Site Full Member (custom role of AWOB)
 * Project Member -> Site Member


 * Consortia site roles
 * Consortium Lead -> Site Owner
 * Consortium Manager -> Site Administrator
 * Consortium Member -> Site Member
 * Consortium Project Manager -> Site Project manager (custom role of AWOB)


 * (Working) Group site roles
 * Group Lead -> Site Owner
 * Group Manager -> Site Administrator
 * Group Project Manager -> Site Project Manager (custom role of AWOB)
 * Group Member -> Site Full Member (custom role of AWOB)
 * Consortium Members -> Site Member


 * (Project in C) Site roles (no changes from 0.7)
 * Project Lead -> Site Owner
 * Project Manager -> Site Administrator
 * Project Member -> Site Member


 * Implementation toDos:
 * Whenever a new working group is created, all members of the consortium get a role "Site Member" for this Working group
 * With this role they can performe actions as defined in the excel table consortium_member_privilege_r08.xlsx