Project page rw-mano fix
Signed-off-by: Laurence Maultsby <laurence.maultsby@riftio.com>
diff --git a/skyquake/framework/widgets/skyquake_rbac/skyquakeRBAC.jsx b/skyquake/framework/widgets/skyquake_rbac/skyquakeRBAC.jsx
index 0245e23..c1d3b01 100644
--- a/skyquake/framework/widgets/skyquake_rbac/skyquakeRBAC.jsx
+++ b/skyquake/framework/widgets/skyquake_rbac/skyquakeRBAC.jsx
@@ -65,7 +65,7 @@
function checkForRoleAccess(project, PlatformRole, allow) {
if (allow.indexOf('*') > -1) return true;
for (let i = 0; i<allow.length; i++) {
- if((project && project.role[allow[i]] )|| PlatformRole[allow[i]]) {
+ if((project && project.role[allow[i]])|| PlatformRole[allow[i]]) {
return true
}
}
diff --git a/skyquake/plugins/project_management/src/dashboard/dashboard.jsx b/skyquake/plugins/project_management/src/dashboard/dashboard.jsx
index f8018d5..8ddc365 100644
--- a/skyquake/plugins/project_management/src/dashboard/dashboard.jsx
+++ b/skyquake/plugins/project_management/src/dashboard/dashboard.jsx
@@ -140,7 +140,7 @@
u.role && u.role.map((r,i) => {
let role = {};
//you may add a user without a role or a keys, but if one is present then the other must be as well.
- if(r.role ) {
+ if(r.role) {
delete r.keys;
// r.keys = projectName;
switch(ROLES.PROJECT.TYPE[r.role]) {
@@ -150,7 +150,8 @@
}
});
u.role = cleanRoles;
- u["rw-project-mano:mano-role"] = cleanManoRoles
+ u["rw-project-mano:mano-role"] = u["rw-project-mano:mano-role"] || [];
+ u["rw-project-mano:mano-role"] = u["rw-project-mano:mano-role"].concat(cleanManoRoles);
cleanUsers.push(u);
});
return cleanUsers;
diff --git a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js
index 0c14dd9..e112bb6 100644
--- a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js
+++ b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js
@@ -69,7 +69,7 @@
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,
@@ -173,17 +173,19 @@
let {userIndex, roleIndex, checked} = data;
let projectUsers = this.projectUsers;
let selectedRole = self.roles[roleIndex];
+ let roleType = (ROLES.PROJECT.TYPE[selectedRole] == 'rw-project-mano') ? "rw-project-mano:mano-role" : "role";
+ //
if(checked) {
- if (!projectUsers[userIndex].role) {
- projectUsers[userIndex].role = [];
+ if (!projectUsers[userIndex][roleType]) {
+ projectUsers[userIndex][roleType] = [];
}
- projectUsers[userIndex].role.push({
+ projectUsers[userIndex][roleType].push({
role: self.roles[roleIndex]
})
} else {
- let role = projectUsers[userIndex].role;
+ let role = projectUsers[userIndex][roleType];
let roleIndex = _.findIndex(role, {role:selectedRole})
- projectUsers[userIndex].role.splice(roleIndex, 1)
+ projectUsers[userIndex][roleType].splice(roleIndex, 1)
}
self.setState({projectUsers});