PlatformRoleMgmt: Appropriate user is now deleted
[osm/UI.git] / skyquake / plugins / user_management / src / platformRoleManagement / platformRoleManagementStore.js
index 87eeb61..8a5b7f8 100644 (file)
@@ -12,10 +12,10 @@ export default class PlatformRoleManagementStore {
         this.projects = [];
         this['name'] = '';
         this['description'] = 'Some Description';
-        this.projectUsers = [];
+        this.platformUsers = [];
         this.selectedUser = null;
         this.selectedRole = null;
-        this.roles = ['super_admin', 'operator_role'
+        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.users = [];
@@ -56,27 +56,18 @@ export default class PlatformRoleManagementStore {
             projectRoles
         });
     }
-    viewProject(data) {
-        let project = data[0];
-        let projectIndex = data[1];
-
-        let ProjectUser = {
-            'name': project['name'],
-            'description': project['description'],
-            'projectUsers': project['project-config'] && project['project-config']['user'] || []
-        }
+    editPlatform(isReadOnly) {
         let state = _.merge({
-            activeIndex: projectIndex,
-            projectOpen: true,
             isEdit: true,
-            isReadOnly: true
-        }, ProjectUser);
+            isReadOnly: isReadOnly,
+        }, {
+            'platformUsers': this.cachedUsers
+        });
         this.setState(state)
     }
-    editProject(isEdit) {
-        this.setState({
-            isReadOnly: isEdit
-        })
+
+    handleCancelEdit() {
+
     }
     handleCloseProjectPanel() {
         this.setState({
@@ -136,7 +127,7 @@ export default class PlatformRoleManagementStore {
                 projectOpen: true,
                 activeIndex: null,
                 isReadOnly: false,
-                projectUsers: []
+                platformUsers: []
             }
         ))
     }
@@ -149,91 +140,96 @@ export default class PlatformRoleManagementStore {
     handleAddUser() {
         let u = JSON.parse(this.selectedUser);
         let r = this.selectedRole;
-        let projectUsers = this.projectUsers;
+        let platformUsers = this.platformUsers;
         console.log('adding user')
-        projectUsers.push({
+        platformUsers.push({
           'user-name': u['user-name'],
           'user-domain': u['user-domain'],
           "role":[{
-                      "role": r,
-                      "keys": r
+                      "role": r
             }
           ]
         })
-        this.setState({projectUsers, selectedUser: null})
+        this.setState({platformUsers, selectedUser: null})
     }
     handleToggleUserRoleInProject(data) {
         let self = this;
         let {userIndex, roleIndex, checked} = data;
-        let projectUsers = this.projectUsers;
+        let platformUsers = this.platformUsers;
         let selectedRole = self.roles[roleIndex];
         if(checked) {
-            projectUsers[userIndex].role.push({
-                role: self.roles[roleIndex],
-                keys: self.roles[roleIndex]
+            if(!platformUsers[userIndex].role) platformUsers[userIndex].role = [];
+            platformUsers[userIndex].role.push({
+                role: selectedRole
             })
         } else {
-            let role = projectUsers[userIndex].role;
-            let roleIndex = _.findIndex(role, {role:selectedRole, keys: selectedRole})
-            projectUsers[userIndex].role.splice(roleIndex, 1)
+            let role = platformUsers[userIndex].role;
+            platformUsers[userIndex].role.splice(_.findIndex(role, function(r) { return r.role == selectedRole; }), 1)
         }
-       self.setState({projectUsers});
+       self.setState({platformUsers});
 
     }
     handleUpdateUserRoleInProject(data) {
         let {userIndex, roleIndex, value} = data;
-        let projectUsers = this.projectUsers;
-        projectUsers[userIndex].role[roleIndex].role = value;
-        projectUsers[userIndex].role[roleIndex]['keys'] = value;
+        let platformUsers = this.platformUsers;
+        platformUsers[userIndex].role[roleIndex].role = value;
 
     }
     addRoleToUserInProject(userIndex) {
-        let projectUsers = this.projectUsers;
-        if(!projectUsers[userIndex].role) {
-            projectUsers[userIndex].role = [];
+        let platformUsers = this.platformUsers;
+        if(!platformUsers[userIndex].role) {
+            platformUsers[userIndex].role = [];
         }
-        projectUsers[userIndex].role.push({
-              'role': null,
-              //temp until we get actual keys
-              'keys' : 'some key'
+        platformUsers[userIndex].role.push({
+              'role': null
             });
         this.setState({
-            projectUsers
+            platformUsers
         })
     }
     handleRemoveRoleFromUserInProject (data) {
         let {userIndex, roleIndex} = data;
-        let projectUsers = this.projectUsers;
-        projectUsers[userIndex].role.splice(roleIndex, 1);
+        let platformUsers = this.platformUsers;
+        platformUsers[userIndex].role.splice(roleIndex, 1);
         this.setState({
-            projectUsers
+            platformUsers
         })
     }
     handleRemoveUserFromProject (userIndex) {
-        let projectUsers = this.projectUsers;
-        projectUsers.splice(userIndex, 1);
+        let platformUsers = this.platformUsers;
+        platformUsers.splice(userIndex, 1);
         this.setState({
-            projectUsers
+            platformUsers
         })
     }
     getProjectsSuccess(projects) {
         this.alt.actions.global.hideScreenLoader.defer();
         this.setState({projects: projects});
     }
-    getUsersSuccess(users) {
+    getPlatformSuccess(platform) {
+        this.alt.actions.global.hideScreenLoader.defer();
+        let platformUsers = platform && platform.user || [];
+        let state = _.merge({
+            platform: platform,
+            projectOpen: true,
+            isEdit: true,
+            isReadOnly: true,
+            platformUsers: platformUsers,
+            cachedUsers: platformUsers
+        });
+        this.setState(state)
+    }
+    getPlatformRoleUsersSuccess(users) {
         console.log(users)
         this.alt.actions.global.hideScreenLoader.defer();
         this.setState({users});
     }
-    updateProjectSuccess() {
+    updatePlatformSuccess() {
         this.alt.actions.global.hideScreenLoader.defer();
-        let projects = this.projects || [];
-        projects[this.activeIndex] = {
-            'name': this['name'],
-            'description': this['description']
-        }
+        let platformUsers = this.platformUsers;
         this.setState({
-            projects,
+            platformUsers,
+            cachedUsers: platformUsers,
             isEdit: true,
             isReadOnly: true
         })