cloneDeep on projectUsers to prevent data mutation
Signed-off-by: Laurence Maultsby <laurence.maultsby@riftio.com>
diff --git a/skyquake/plugins/project_management/src/dashboard/dashboard.jsx b/skyquake/plugins/project_management/src/dashboard/dashboard.jsx
index 843301d..e9847e5 100644
--- a/skyquake/plugins/project_management/src/dashboard/dashboard.jsx
+++ b/skyquake/plugins/project_management/src/dashboard/dashboard.jsx
@@ -20,7 +20,7 @@
import 'widgets/form_controls/formControls.scss';
import imgAdd from '../../node_modules/open-iconic/svg/plus.svg'
import imgRemove from '../../node_modules/open-iconic/svg/trash.svg'
-
+import _ from 'lodash';
import ROLES from 'utils/roleConstants.js';
const PROJECT_ROLES = ROLES.PROJECT;
const PLATFORM = ROLES.PLATFORM;
@@ -118,18 +118,18 @@
let self = this;
e.preventDefault();
e.stopPropagation();
- let projectName = self.state['name'];
- let projectUsers = self.state.projectUsers;
+ let projectName = self.state['name'];
+ let projectUsers = _.cloneDeep(self.state.projectUsers);
let cleanUsers = this.cleanUsers(projectUsers, projectName);
- this.Store.updateProject(_.merge({
+ this.Store.updateProject({
'name': projectName,
'description': self.state.description,
'project-config' : {
'user': cleanUsers
}
- }));
+ });
}
cleanUsers(projectUsers, projectName) {
let cleanUsers = [];
diff --git a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js
index 70f5f2f..0c14dd9 100644
--- a/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js
+++ b/skyquake/plugins/project_management/src/dashboard/projectMgmtStore.js
@@ -177,23 +177,8 @@
if (!projectUsers[userIndex].role) {
projectUsers[userIndex].role = [];
}
- if (!projectUsers[userIndex]['rw-project-mano:mano-role']) {
- projectUsers[userIndex]['rw-project-mano:mano-role'] = [];
- }
- switch (ROLES.PROJECT.TYPE[self.roles[roleIndex]]) {
- case 'rw-project' :
- projectUsers[userIndex].role.push({
- role: selectedRole
- });
- break;
- case 'rw-project-mano' :
- projectUsers[userIndex]["rw-project-mano:mano-role"].push({
- role: selectedRole
- });
- break;
- }
projectUsers[userIndex].role.push({
- role: selectedRole
+ role: self.roles[roleIndex]
})
} else {
let role = projectUsers[userIndex].role;