blob: d42a2f83ad724962b81187ee44198018af3610d1 [file] [log] [blame]
/*!
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
import i18n from 'nfvo-utils/i18n/i18n.js';
import { actionTypes as modalActionTypes } from 'nfvo-components/modal/GlobalModalConstants.js';
import { actionTypes } from './PermissionsConstants.js';
import { permissionTypes } from './PermissionsConstants.js';
import { modalContentMapper } from 'sdc-app/common/modal/ModalContentMapper.js';
import { askForRightsMsg } from './PermissionsManager.jsx';
import ItemsHelper from 'sdc-app/common/helpers/ItemsHelper.js';
const PermissionsActionHelper = {
openPermissonsManager(dispatch, { itemId, askForRights }) {
if (askForRights) {
dispatch({
type: modalActionTypes.GLOBAL_MODAL_SHOW,
data: {
title: i18n('Ask For Contributers Rights'),
msg: askForRightsMsg(),
confirmationButtonText: i18n('SEND'),
onConfirmed: () => this.askForContributorRights()
}
});
} else {
dispatch({
type: modalActionTypes.GLOBAL_MODAL_SHOW,
data: {
modalComponentName: modalContentMapper.MANAGE_PERMISSIONS,
title: i18n('Manage Permissions'),
modalComponentProps: {
itemId
}
}
});
}
},
closePermissionManager(dispatch) {
dispatch({
type: modalActionTypes.GLOBAL_MODAL_CLOSE
});
},
saveItemUsers(
dispatch,
{ itemId, removedUsersIds, addedUsersIds, allUsers }
) {
return ItemsHelper.updateContributors({
itemId,
removedUsersIds,
addedUsersIds
}).then(() =>
PermissionsActionHelper.fetchItemUsers(dispatch, {
itemId,
allUsers
})
);
},
changeOwner(dispatch, { itemId, newOwnerId, allUsers }) {
return ItemsHelper.changeOwner({ itemId, ownerId: newOwnerId }).then(
() =>
PermissionsActionHelper.fetchItemUsers(dispatch, {
itemId,
allUsers
})
);
},
fetchItemUsers(dispatch, { itemId, allUsers }) {
return ItemsHelper.fetchUsers({ itemId }).then(response => {
let allContributors = response.results;
let owner = {};
let contributors = [];
allContributors.map(user => {
let userObject = allUsers.find(
userObject => userObject.userId === user.userId
);
if (userObject) {
user = {
...user,
fullName: userObject.fullName,
role: userObject.role
};
switch (user.permission) {
case permissionTypes.OWNER:
owner = user;
break;
case permissionTypes.CONTRIBUTOR:
contributors.push(user);
break;
}
}
});
dispatch({
type: actionTypes.ITEM_USERS_LOADED,
contributors,
owner
});
});
},
askForContributorRights() {
console.log('asked for contributor rights');
}
};
export default PermissionsActionHelper;