mirror of
https://github.com/documize/community.git
synced 2025-07-24 23:59:47 +02:00
Fix setting folder permmision action
This commit is contained in:
parent
e87b33a8c2
commit
ee977c977a
3 changed files with 47 additions and 32 deletions
|
@ -27,7 +27,6 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
||||||
},
|
},
|
||||||
|
|
||||||
afterModel: function (model) {
|
afterModel: function (model) {
|
||||||
debugger;
|
|
||||||
let params = this.paramsFor('folders.folder');
|
let params = this.paramsFor('folders.folder');
|
||||||
|
|
||||||
if (is.empty(params)) {
|
if (is.empty(params)) {
|
||||||
|
|
|
@ -23,6 +23,7 @@ export default Ember.Route.extend(NotifierMixin, {
|
||||||
folder: {},
|
folder: {},
|
||||||
tab: "",
|
tab: "",
|
||||||
localStorage: service(),
|
localStorage: service(),
|
||||||
|
store: service(),
|
||||||
|
|
||||||
beforeModel: function (transition) {
|
beforeModel: function (transition) {
|
||||||
this.tab = is.not.undefined(transition.queryParams.tab) ? transition.queryParams.tab : "tabGeneral";
|
this.tab = is.not.undefined(transition.queryParams.tab) ? transition.queryParams.tab : "tabGeneral";
|
||||||
|
@ -43,54 +44,61 @@ export default Ember.Route.extend(NotifierMixin, {
|
||||||
controller.set('tabDelete', false);
|
controller.set('tabDelete', false);
|
||||||
controller.set(this.get('tab'), true);
|
controller.set(this.get('tab'), true);
|
||||||
|
|
||||||
this.get('folderService').getAll().then(function (folders) {
|
this.get('folderService').getAll().then((folders) => {
|
||||||
controller.set('folders', folders.rejectBy('id', model.get('id')));
|
controller.set('folders', folders.rejectBy('id', model.get('id')));
|
||||||
});
|
});
|
||||||
|
|
||||||
this.get('userService').getAll().then(function (users) {
|
this.get('userService').getAll().then((users) => {
|
||||||
controller.set('users', users);
|
controller.set('users', users);
|
||||||
|
|
||||||
var folderPermissions = [];
|
var folderPermissions = [];
|
||||||
|
|
||||||
var u = models.FolderPermissionModel.create({
|
users.forEach((user) => {
|
||||||
|
let isActive = user.get('active');
|
||||||
|
|
||||||
|
let u = {
|
||||||
|
userId: user.get('id'),
|
||||||
|
fullname: user.get('fullname'),
|
||||||
|
orgId: model.get('orgId'),
|
||||||
|
folderId: model.get('id'),
|
||||||
|
canEdit: false,
|
||||||
|
canView: false,
|
||||||
|
canViewPrevious: false
|
||||||
|
};
|
||||||
|
|
||||||
|
if (isActive) {
|
||||||
|
folderPermissions.pushObject(u);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var u = {
|
||||||
userId: "",
|
userId: "",
|
||||||
fullname: " Everyone",
|
fullname: " Everyone",
|
||||||
orgId: model.get('orgId'),
|
orgId: model.get('orgId'),
|
||||||
folderId: model.get('id'),
|
folderId: model.get('id'),
|
||||||
canEdit: false,
|
canEdit: false,
|
||||||
canView: false
|
canView: false
|
||||||
});
|
};
|
||||||
|
|
||||||
folderPermissions.pushObject(u);
|
folderPermissions.pushObject(u);
|
||||||
|
|
||||||
users.forEach(function (user, index) /* jshint ignore:line */ {
|
this.get('folderService').getPermissions(model.id).then((permissions) => {
|
||||||
if (user.get('active')) {
|
permissions.forEach((permission, index) => { /* jshint ignore:line */
|
||||||
var u = models.FolderPermissionModel.create({
|
var folderPermission = folderPermissions.findBy('userId', permission.get('userId'));
|
||||||
userId: user.get('id'),
|
|
||||||
fullname: user.get('fullname'),
|
|
||||||
orgId: model.get('orgId'),
|
|
||||||
folderId: model.get('id'),
|
|
||||||
canEdit: false,
|
|
||||||
canView: false,
|
|
||||||
canViewPrevious: false
|
|
||||||
});
|
|
||||||
|
|
||||||
folderPermissions.pushObject(u);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
self.get('folderService').getPermissions(model.id).then(function (permissions) {
|
|
||||||
permissions.forEach(function (permission, index) /* jshint ignore:line */ {
|
|
||||||
var folderPermission = folderPermissions.findBy('userId', permission.userId);
|
|
||||||
if (is.not.undefined(folderPermission)) {
|
if (is.not.undefined(folderPermission)) {
|
||||||
Ember.set(folderPermission, 'orgId', permission.orgId);
|
Ember.set(folderPermission, 'orgId', permission.get('orgId'));
|
||||||
Ember.set(folderPermission, 'folderId', permission.folderId);
|
Ember.set(folderPermission, 'folderId', permission.get('folderId'));
|
||||||
Ember.set(folderPermission, 'canEdit', permission.canEdit);
|
Ember.set(folderPermission, 'canEdit', permission.get('canEdit'));
|
||||||
Ember.set(folderPermission, 'canView', permission.canView);
|
Ember.set(folderPermission, 'canView', permission.get('canView'));
|
||||||
Ember.set(folderPermission, 'canViewPrevious', permission.canView);
|
Ember.set(folderPermission, 'canViewPrevious', permission.get('canView'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
folderPermissions.map((permission) => {
|
||||||
|
let data = this.get('store').normalize('folder-permission', permission);
|
||||||
|
return this.get('store').push({ data: data });
|
||||||
|
});
|
||||||
|
|
||||||
controller.set('permissions', folderPermissions.sortBy('fullname'));
|
controller.set('permissions', folderPermissions.sortBy('fullname'));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -125,8 +133,16 @@ export default Ember.Route.extend(NotifierMixin, {
|
||||||
},
|
},
|
||||||
|
|
||||||
onPermission: function (folder, message, permissions) {
|
onPermission: function (folder, message, permissions) {
|
||||||
var data = permissions.map(function (obj) {
|
var data = permissions.map((obj) => {
|
||||||
return obj.getProperties('orgId', 'folderId', 'userId', 'canEdit', 'canView');
|
let permission = {
|
||||||
|
'orgId': obj.orgId,
|
||||||
|
'folderId': obj.folderId,
|
||||||
|
'userId': obj.userId,
|
||||||
|
'canEdit': obj.canEdit,
|
||||||
|
'canView': obj.canView
|
||||||
|
};
|
||||||
|
|
||||||
|
return permission;
|
||||||
});
|
});
|
||||||
var payload = { Message: message, Roles: data };
|
var payload = { Message: message, Roles: data };
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import ApplicationSerializer from './application';
|
||||||
export default ApplicationSerializer.extend({
|
export default ApplicationSerializer.extend({
|
||||||
normalize(modelClass, resourceHash) {
|
normalize(modelClass, resourceHash) {
|
||||||
return {
|
return {
|
||||||
id: resourceHash.folderId,
|
id: resourceHash.userId ? resourceHash.userId : 'public',
|
||||||
type: modelClass.modelName,
|
type: modelClass.modelName,
|
||||||
attributes: resourceHash
|
attributes: resourceHash
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue