Skip to content
Snippets Groups Projects
Commit 7ec70185 authored by Diego Sampaio's avatar Diego Sampaio
Browse files

permissions manager page

parent ddd1794d
No related branches found
No related tags found
No related merge requests found
FlowRouter.route '/admin/permissions',
name: 'rocket-permissions'
action: (params) ->
BlazeLayout.render 'main',
center: 'pageContainer'
pageTitle: 'Permissions'
pageTemplate: 'permissions'
RocketChat.authz.subscription = Meteor.subscribe 'permissions'
RocketChat.AdminBox.addOption
href: 'rocket-permissions'
i18nLabel: 'Rocket_Permissions'
permissionGranted: ->
return RocketChat.authz.hasAllPermission('access-rocket-permissions')
Template.permissions.helpers
role: ->
return Roles.getAllRoles()
permission: ->
return ChatPermissions.find()
granted: (roles) ->
if roles?
return 'YES' if roles.indexOf(@name) isnt -1
Template.permissions.onCreated ->
# @roles = []
# @permissions = []
# @permissionByRole = {}
@subscribe 'roles'
# ChatPermissions
<template name="permissions">
<h1>permission</h1>
<table border="1">
<tr>
<td>&nbsp;</td>
{{#each role}}
<td>{{name}}</td>
{{/each}}
</tr>
{{#each permission}}
<tr>
<td>{{_id}}</td>
{{#each role}}
<td>{{granted ../roles ../_id}}</td>
{{/each}}
</tr>
{{/each}}
</table>
</template>
......@@ -15,6 +15,9 @@ Package.onUse(function(api) {
'alanning:roles@1.2.12'
]);
api.use('mongo', 'client');
api.use('kadira:flow-router', 'client');
api.use('templating', 'client');
api.addFiles('lib/rocketchat.coffee', ['server','client']);
......@@ -23,6 +26,12 @@ Package.onUse(function(api) {
api.addFiles('client/hasPermission.coffee', ['client']);
api.addFiles('client/hasRole.coffee', ['client']);
api.addFiles('client/route.coffee', ['client']);
// views
api.addFiles('client/views/permissions.html', ['client']);
api.addFiles('client/views/permissions.coffee', ['client']);
api.addFiles('server/models/Permissions.coffee', ['server']);
......@@ -35,6 +44,7 @@ Package.onUse(function(api) {
api.addFiles('server/functions/hasRole.coffee', ['server']);
api.addFiles('server/functions/removeUsersFromRoles.coffee', ['server']);
api.addFiles('server/publications/roles.coffee', 'server');
api.addFiles('server/publication.coffee', ['server']);
api.addFiles('server/startup.coffee', ['server']);
});
Meteor.publish 'roles', ->
unless @userId
return @ready()
# @TODO validate permission
return RocketChat.authz.getRoles()
......@@ -86,6 +86,9 @@ Meteor.startup ->
{ _id: 'view-d-room',
roles : ['admin', 'site-moderator', 'user']}
{ _id: 'access-rocket-permissions',
roles : ['admin']}
]
#alanning:roles
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment