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