2 * STANDARD_RIFT_IO_COPYRIGHT
4 import UserManagementActions
from './userMgmtActions.js';
5 import UserManagementSource
from './userMgmtSource.js';
6 import _
from 'lodash';
7 export default class UserManagementStore
{
9 this.actions
= UserManagementActions(this.alt
);
10 this.bindActions(this.actions
);
11 this.registerAsync(UserManagementSource
);
13 this['user-name'] = '';
14 this['user-domain'] = 'system';
15 this.disabled
= "FALSE";
16 this.platformRoles
= {
18 platform_admin
: false,
21 this.projectRoles
= ['Project:Role'];
22 this.projectRolesOptions
= ['Choose your adventure', 'Project:Role', 'Project:Another Role'];
23 this.currentPassword
= '';
24 this['old-password'] = '';
25 this['new-password'] = '';
26 this['confirm-password'] = '';
28 this.activeIndex
= null;
29 this.isReadOnly
= true;
30 this.userOpen
= false;
31 this.hideColumns
= false;
32 //There is probably a better way of handling the view/edit/readonly matrix conditions for some of these inputs. Should definitely revist
34 this.isEditUser
= false;
35 // this.exportPublicMethods({})
38 * [handleFieldUpdate description]
39 * @param {Object} data {
40 * [store_property] : [value]
42 * @return {[type]} [description]
44 handleUpdateInput(data
) {
47 handleAddProjectItem(item
) {
48 let projectRoles
= this.projectRoles
;
49 projectRoles
.push('');
50 this.setState({projectRoles
});
52 handleRemoveProjectItem(i
) {
53 let projectRoles
= this.projectRoles
;
54 projectRoles
.splice(i
, 1);
55 console
.log('Removing', projectRoles
)
56 this.setState({projectRoles
});
58 handleUpdateProjectRole(data
) {
61 let projectRoles
= this.projectRoles
62 projectRoles
[i
] = JSON
.parse(e
.currentTarget
.value
);
69 let userIndex
= data
[1];
72 'user-name': user
['user-name'],
73 'user-domain': user
['user-domain'],
74 platformRoles
: user
.platformRoles
|| this.platformRoles
,
75 disabled
: user
.hasOwnProperty('disabled').toString().toUpperCase(),
76 projectRoles
: user
.projectRoles
|| this.projectRoles
,
77 currentPassword
: user
.password
80 activeIndex
: userIndex
,
93 handleCloseUserPanel() {
100 handleHideColumns(e
) {
101 if(this.userOpen
&& e
.currentTarget
.classList
.contains('hideColumns')) {
111 handleDisabledChange(isDisabled
){
116 handlePlatformRoleUpdate(data
){
117 let platform_role
= data
[0];
118 let checked
= data
[1];
119 let platformRoles
= this.platformRoles
;
120 platformRoles
[platform_role
] = checked
;
127 let domain
= 'system';
128 let disabled
= "FALSE";
129 let platformRoles
= {
131 platform_admin
: false,
134 let projectRoles
= [];
135 let currentPassword
= '';
136 let oldPassword
= '';
137 let newPassword
= '';
138 let confirmPassword
= '';
140 'user-name' : username
,
141 'user-domain' : domain
,
146 'old-password': oldPassword
,
147 'new-password': newPassword
,
148 'confirm-password': confirmPassword
152 let currentPassword
= '';
153 let oldPassword
= '';
154 let newPassword
= '';
155 let confirmPassword
= '';
158 'old-password': oldPassword
,
159 'new-password': newPassword
,
160 'confirm-password': confirmPassword
164 this.setState(_
.merge( this.resetUser() ,
176 handleDisabledChange(value
) {
177 this.disabled
= value
;
183 getUsersSuccess(users
) {
184 this.alt
.actions
.global
.hideScreenLoader
.defer();
185 this.setState({users
});
187 updateUserSuccess() {
188 this.alt
.actions
.global
.hideScreenLoader
.defer();
189 let users
= this.users
|| [];
190 users
[this.activeIndex
] = {
191 'user-name': this['user-name'],
192 'user-domain': this['user-domain'],
193 platformRoles
: this.platformRoles
,
194 disabled
: this.disabled
,
195 projectRoles
: this.projectRoles
203 deleteUserSuccess() {
204 this.alt
.actions
.global
.hideScreenLoader
.defer();
205 let users
= this.users
;
206 users
.splice(this.activeIndex
, 1);
207 this.setState({users
, userOpen
: false})
209 createUserSuccess() {
210 this.alt
.actions
.global
.hideScreenLoader
.defer();
211 let users
= this.users
|| [];
213 'user-name': this['user-name'],
214 'user-domain': this['user-domain'],
215 platformRoles
: this.platformRoles
,
216 disabled
: this.disabled
,
217 projectRoles
: this.projectRoles
,
223 activeIndex
: users
.length
- 1
225 _
.merge(newState
, this.resetPassword())
226 this.setState(newState
);