From ee977c977a905c0a673f2e61601863882f5def46 Mon Sep 17 00:00:00 2001 From: zinyando Date: Tue, 23 Aug 2016 10:13:29 +0200 Subject: [PATCH] Fix setting folder permmision action --- app/app/pods/folders/route.js | 1 - app/app/pods/folders/settings/route.js | 76 ++++++++++++++---------- app/app/serializers/folder-permission.js | 2 +- 3 files changed, 47 insertions(+), 32 deletions(-) diff --git a/app/app/pods/folders/route.js b/app/app/pods/folders/route.js index 27b77e8f..e2a284e8 100644 --- a/app/app/pods/folders/route.js +++ b/app/app/pods/folders/route.js @@ -27,7 +27,6 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, { }, afterModel: function (model) { - debugger; let params = this.paramsFor('folders.folder'); if (is.empty(params)) { diff --git a/app/app/pods/folders/settings/route.js b/app/app/pods/folders/settings/route.js index 66b6c020..abf7b7d8 100644 --- a/app/app/pods/folders/settings/route.js +++ b/app/app/pods/folders/settings/route.js @@ -23,6 +23,7 @@ export default Ember.Route.extend(NotifierMixin, { folder: {}, tab: "", localStorage: service(), + store: service(), beforeModel: function (transition) { 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(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'))); }); - this.get('userService').getAll().then(function (users) { + this.get('userService').getAll().then((users) => { controller.set('users', users); 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: "", fullname: " Everyone", orgId: model.get('orgId'), folderId: model.get('id'), canEdit: false, canView: false - }); + }; folderPermissions.pushObject(u); - users.forEach(function (user, index) /* jshint ignore:line */ { - if (user.get('active')) { - var u = models.FolderPermissionModel.create({ - 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); + this.get('folderService').getPermissions(model.id).then((permissions) => { + permissions.forEach((permission, index) => { /* jshint ignore:line */ + var folderPermission = folderPermissions.findBy('userId', permission.get('userId')); if (is.not.undefined(folderPermission)) { - Ember.set(folderPermission, 'orgId', permission.orgId); - Ember.set(folderPermission, 'folderId', permission.folderId); - Ember.set(folderPermission, 'canEdit', permission.canEdit); - Ember.set(folderPermission, 'canView', permission.canView); - Ember.set(folderPermission, 'canViewPrevious', permission.canView); + Ember.set(folderPermission, 'orgId', permission.get('orgId')); + Ember.set(folderPermission, 'folderId', permission.get('folderId')); + Ember.set(folderPermission, 'canEdit', permission.get('canEdit')); + Ember.set(folderPermission, 'canView', permission.get('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')); }); }); @@ -125,8 +133,16 @@ export default Ember.Route.extend(NotifierMixin, { }, onPermission: function (folder, message, permissions) { - var data = permissions.map(function (obj) { - return obj.getProperties('orgId', 'folderId', 'userId', 'canEdit', 'canView'); + var data = permissions.map((obj) => { + 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 }; diff --git a/app/app/serializers/folder-permission.js b/app/app/serializers/folder-permission.js index 34f7b4d7..72751e4d 100644 --- a/app/app/serializers/folder-permission.js +++ b/app/app/serializers/folder-permission.js @@ -3,7 +3,7 @@ import ApplicationSerializer from './application'; export default ApplicationSerializer.extend({ normalize(modelClass, resourceHash) { return { - id: resourceHash.folderId, + id: resourceHash.userId ? resourceHash.userId : 'public', type: modelClass.modelName, attributes: resourceHash };