*/
import ProjectManagementActions from './projectMgmtActions.js';
import ProjectManagementSource from './projectMgmtSource.js';
+import ROLES from 'utils/roleConstants.js';
import _ from 'lodash';
export default class ProjectManagementStore {
constructor() {
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;
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({
});
}
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
}
]
})
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});
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) {
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