diff --git a/packages/rocketchat-authorization/lib/permissions.coffee b/packages/rocketchat-authorization/client/collection.coffee similarity index 100% rename from packages/rocketchat-authorization/lib/permissions.coffee rename to packages/rocketchat-authorization/client/collection.coffee diff --git a/packages/rocketchat-authorization/package.js b/packages/rocketchat-authorization/package.js index bb32b2ac371ef0fd28f8421991318a32a1b21f17..c1f74f97cd1c7e0fb875237e46c51738a9bdc8df 100644 --- a/packages/rocketchat-authorization/package.js +++ b/packages/rocketchat-authorization/package.js @@ -16,13 +16,15 @@ Package.onUse(function(api) { api.use('templating', 'client'); - api.addFiles('lib/permissions.coffee', ['server', 'client']); api.addFiles('lib/rocketchat.coffee', ['server','client']); + api.addFiles('client/collection.coffee', ['server', 'client']); api.addFiles('client/startup.coffee', ['client']); api.addFiles('client/hasPermission.coffee', ['client']); api.addFiles('client/hasRole.coffee', ['client']); + api.addFiles('server/models/Permissions.coffee', ['server']); + api.addFiles('server/functions/addUsersToRoles.coffee', ['server']); api.addFiles('server/functions/getPermissionsForRole.coffee', ['server']); api.addFiles('server/functions/getRoles.coffee', ['server']); diff --git a/packages/rocketchat-authorization/server/functions/getPermissionsForRole.coffee b/packages/rocketchat-authorization/server/functions/getPermissionsForRole.coffee index f19203fe8c875a661059084b74c660b084c22504..aa68c55f26d01b81f76c369951c74136d5dc64c6 100644 --- a/packages/rocketchat-authorization/server/functions/getPermissionsForRole.coffee +++ b/packages/rocketchat-authorization/server/functions/getPermissionsForRole.coffee @@ -6,4 +6,4 @@ RocketChat.authz.getPermissionsForRole = (roleName) -> unless roleName in roleNames throw new Meteor.Error 'invalid-role' - return _.pluck(ChatPermissions.find({roles : roleName }).fetch(), '_id') \ No newline at end of file + return _.pluck(RocketChat.models.Permissions.findByRole( roleName ).fetch(), '_id') diff --git a/packages/rocketchat-authorization/server/models/Permissions.coffee b/packages/rocketchat-authorization/server/models/Permissions.coffee new file mode 100644 index 0000000000000000000000000000000000000000..27a781835544870144c6d287a5430ba7dc6b1335 --- /dev/null +++ b/packages/rocketchat-authorization/server/models/Permissions.coffee @@ -0,0 +1,11 @@ +RocketChat.models.Permissions = new class extends RocketChat.models._Base + constructor: -> + @_initModel 'permissions' + + + # FIND + findByRole: (role, options) -> + query = + role: role + + return @findOne query, options diff --git a/packages/rocketchat-authorization/server/publication.coffee b/packages/rocketchat-authorization/server/publication.coffee index 5cf4adef1df72ad69605fce232cd4328a3ef0034..8f6e008e14c17c2c5da24bd2c4b52071452e8fd6 100644 --- a/packages/rocketchat-authorization/server/publication.coffee +++ b/packages/rocketchat-authorization/server/publication.coffee @@ -1,3 +1,3 @@ Meteor.publish 'permissions', -> console.log '[publish] permissions'.green - return ChatPermissions.find {} \ No newline at end of file + return RocketChat.models.Permissions.find {} diff --git a/packages/rocketchat-authorization/server/startup.coffee b/packages/rocketchat-authorization/server/startup.coffee index c684bd25d86987a3da6c01bc1ee180ed1e777adc..a8072af4f3c23aecd1bf1253a9576de9b52ac8b5 100644 --- a/packages/rocketchat-authorization/server/startup.coffee +++ b/packages/rocketchat-authorization/server/startup.coffee @@ -78,7 +78,7 @@ Meteor.startup -> roles = _.pluck(Roles.getAllRoles().fetch(), 'name'); for permission in permissions - ChatPermissions.upsert( permission._id, {$setOnInsert : permission }) + RocketChat.models.Permissions.upsert( permission._id, {$setOnInsert : permission }) for role in permission.roles unless role in roles Roles.createRole role