X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fproject_management%2Fsrc%2Fdashboard%2FprojectMgmtStore.js;h=e112bb680a6f8a0c00c735a3549d1f1b5efb9d70;hb=08e8a038f222c66ce6f55760a766e90b87b3c50b;hp=1cb2088f04a13358a08cf42d2c18f247f7dcfadf;hpb=3d39b18290b9cb3e10c1a80d91ac4819e7c58474;p=osm%2FUI.git diff --git a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js index 1cb2088f0..e112bb680 100644 --- a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js +++ b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js @@ -3,6 +3,7 @@ */ import ProjectManagementActions from './projectMgmtActions.js'; import ProjectManagementSource from './projectMgmtSource.js'; +import ROLES from 'utils/roleConstants.js'; import _ from 'lodash'; export default class ProjectManagementStore { constructor() { @@ -15,9 +16,12 @@ export default class ProjectManagementStore { this.projectUsers = []; this.selectedUser = null; this.selectedRole = null; - this.roles = ['rw-rbac-platform:platform-admin', 'rw-rbac-platform:platform-oper', 'rw-rbac-platform:super-admin' - // ,'some_other_role', 'yet_another_role', 'operator_role', 'some_other_role', 'yet_another_role' - ]; + this.roles = Object.keys(ROLES.PROJECT).filter((p) => { + return p != "TYPE"; + }).map((p) => { + return ROLES.PROJECT[p]; + }) + // this.roles = ['rw-project:project-admin', 'rw-project:project-oper', 'rw-project:project-create']; this.users = []; this.activeIndex = null; this.isReadOnly = true; @@ -56,27 +60,28 @@ export default class ProjectManagementStore { projectRoles }); } - viewProject(data) { + viewProject() { + let data = arguments[0]; let project = data[0]; let projectIndex = data[1]; + let isReadOnly = data[2]; - let ProjectUser = { + let ProjectData = { 'name': project['name'], 'description': project['description'], - 'projectUsers': project['project-config'] && project['project-config']['user'] || [] + 'projectUsers': (project['project-config'] && project['project-config']['user'] || []) } let state = _.merge({ activeIndex: projectIndex, projectOpen: true, isEdit: true, - isReadOnly: true - }, ProjectUser); + isReadOnly: isReadOnly + }, ProjectData); this.setState(state) } - editProject(isEdit) { - this.setState({ - isReadOnly: isEdit - }) + editProject(isReadOnly) { + this.viewProject([this.projects[this.activeIndex], this.activeIndex, isReadOnly]); + } handleCloseProjectPanel() { this.setState({ @@ -147,17 +152,17 @@ export default class ProjectManagementStore { }); } handleAddUser(e) { + let self = this; let u = JSON.parse(this.selectedUser); let r = this.selectedRole; let projectUsers = this.projectUsers; - let keys = ','; console.log('adding user') projectUsers.push({ 'user-name': u['user-name'], 'user-domain': u['user-domain'], "role":[{ "role": r, - "keys": keys + "keys": self.name } ] }) @@ -168,17 +173,19 @@ export default class ProjectManagementStore { let {userIndex, roleIndex, checked} = data; let projectUsers = this.projectUsers; let selectedRole = self.roles[roleIndex]; - let keys = ','; + let roleType = (ROLES.PROJECT.TYPE[selectedRole] == 'rw-project-mano') ? "rw-project-mano:mano-role" : "role"; + // if(checked) { - if(!projectUsers[userIndex].role) projectUsers[userIndex].role = []; - projectUsers[userIndex].role.push({ - role: self.roles[roleIndex], - keys: keys + if (!projectUsers[userIndex][roleType]) { + projectUsers[userIndex][roleType] = []; + } + projectUsers[userIndex][roleType].push({ + role: self.roles[roleIndex] }) } else { - let role = projectUsers[userIndex].role; - let roleIndex = _.findIndex(role, {role:selectedRole, keys: keys}) - projectUsers[userIndex].role.splice(roleIndex, 1) + let role = projectUsers[userIndex][roleType]; + let roleIndex = _.findIndex(role, {role:selectedRole}) + projectUsers[userIndex][roleType].splice(roleIndex, 1) } self.setState({projectUsers}); @@ -186,9 +193,7 @@ export default class ProjectManagementStore { handleUpdateUserRoleInProject(data) { let {userIndex, roleIndex, value} = data; let projectUsers = this.projectUsers; - let keys = ','; projectUsers[userIndex].role[roleIndex].role = value; - projectUsers[userIndex].role[roleIndex]['keys'] = keys; } addRoleToUserInProject(userIndex) { @@ -196,11 +201,8 @@ export default class ProjectManagementStore { if(!projectUsers[userIndex].role) { projectUsers[userIndex].role = []; } - let keys = ','; projectUsers[userIndex].role.push({ - 'role': null, - //temp until we get actual keys - 'keys' : keys + 'role': null }); this.setState({ projectUsers