diff --git a/src/adonisjs/app/Controllers/Http/PermissionController.js b/src/adonisjs/app/Controllers/Http/PermissionController.js
new file mode 100644
index 0000000..8d93f1c
--- /dev/null
+++ b/src/adonisjs/app/Controllers/Http/PermissionController.js
@@ -0,0 +1,37 @@
+'use strict'
+
+const uuidv4 = require('uuid/v4')
+
+
+const Permission = use('App/Models/v1/Permission')
+const Environment = use('App/Models/Environment')
+
+
+class PermissionController {
+ async store ({ request, response }) {
+ try {
+ let permission = new Permission()
+ permission.id = await uuidv4()
+
+ permission.clearance = request.input('clearance')
+ permission.subject_grade = request.input('subject_grade')
+ permission.resource = request.input('resource')
+ permission.resource_id = request.input('resource_id')
+
+
+ let environment = await Environment.findBy('name', request.input('environment'))
+ permission.environment_id = environment.id
+
+
+
+ await permission.save()
+
+ response.json('permission successfully created')
+ } catch (e) {
+ console.log(e)
+ return response.status(500).json({ message: e.message })
+ }
+ }
+}
+
+module.exports = PermissionController
diff --git a/src/adonisjs/app/Controllers/Http/v1/CaseController.js b/src/adonisjs/app/Controllers/Http/v1/CaseController.js
index 8769ba8..97cf7b6 100644
--- a/src/adonisjs/app/Controllers/Http/v1/CaseController.js
+++ b/src/adonisjs/app/Controllers/Http/v1/CaseController.js
@@ -129,12 +129,10 @@ class CaseController {
}
/** * Update case details. PUT or PATCH case/:id */
- async update ({ request, response }) {
+ async update ({ params, request, response }) {
const trx = await Database.beginTransaction()
-
try {
- const c = await Case.find(request.input('caseId'))
-
+ const c = await Case.find(params.id)
if (c != null) {
c.title = request.input('title') || null
c.description = request.input('description')|| null
@@ -150,33 +148,38 @@ class CaseController {
cv.source = request.input('source')
cv.id = await uuidv4()
await c.versions().save(cv)
-
const institutionAcronym = request.input('institution')
if (institutionAcronym != null){
let institution = await Institution.findBy('acronym', institutionAcronym)
await c.institution().associate(institution)
}
- const permission = new Permission()
- permission.id = await uuidv4()
- permission.entity = request.input('permissionEntity')
- permission.subject = request.input('permissionSubjectId')
- permission.clearance = request.input('permissionClearance')
- permission.table = 'cases'
- permission.table_id = c.id
- permission.save(trx)
+ // const permission = new Permission()
+ // permission.id = await uuidv4()
+ // permission.entity = request.input('permissionEntity')
+ // permission.subject = request.inpuission = new Permission()
+ // permission.id = await uuidv4()
+ // permission.entity = request.input('permissionEntity')
+ // permission.subject = request.input('permissionSubjectId')
+ // permission.clearance = request.input('permissionClearance')
+ // permission.table = 'cases'
+ // permission.table_id = c.id
+ // permission.t('permissionSubjectId')
+ // permission.clearance = request.input('permissionClearance')
+ // permission.table = 'cases'
+ // permission.table_id = c.id
+ // permission.save(trx)
await c.save()
trx.commit()
-
return response.json(c)
} else return response.status(500).json('case not found')
} catch (e) {
trx.rollback()
console.log(e)
- return response.status(500).json({ message: e })
+ return response.status(500).json({ message: e.message })
}
}
diff --git a/src/adonisjs/app/Controllers/Http/v1/UserController.js b/src/adonisjs/app/Controllers/Http/v1/UserController.js
index abd372b..7db9759 100644
--- a/src/adonisjs/app/Controllers/Http/v1/UserController.js
+++ b/src/adonisjs/app/Controllers/Http/v1/UserController.js
@@ -219,7 +219,7 @@ class UserController {
THEN 'Feedback complete' ELSE case_properties.value END AS ?`,[propertyFilter])])
.distinct('cases.id')
.from('cases')
- .leftJoin('permissions', 'cases.id', 'permissions.table_id')
+ // .leftJoin('permissions', 'cases.id', 'permissions.table_id')
.join('case_properties', 'case_properties.case_id', 'cases.id')
.join('properties', 'properties.id', 'case_properties.property_id')
.join('users', 'users.id', 'cases.author_id')
@@ -234,21 +234,21 @@ class UserController {
this.where('cases.specialty', 'like', specialtyFilter)
})
- .where(function(){
- this
- .where('cases.author_id', user.id)
- .orWhere(function () {
- this
- .where('permissions.entity', 'institution')
- .where('permissions.subject', user.institution_id)
- .where('permissions.clearance', '>=', clearance)
- .where(function(){
- this
- .whereNull('permissions.subject_grade')
- .orWhere('permissions.subject_grade', user.grade)
- })
- })
- })
+ // .where(function(){
+ // this
+ // .where('cases.author_id', user.id)
+ // .orWhere(function () {
+ // this
+ // .where('permissions.resource', 'cases')
+ // .where('permissions.resource_id', user.institution_id)
+ // .where('permissions.clearance', '>=', clearance)
+ // .where(function(){
+ // this
+ // .whereNull('permissions.subject_grade')
+ // .orWhere('permissions.subject_grade', user.grade)
+ // })
+ // })
+ // })
.orderBy('cases.created_at', 'desc')
}else{
@@ -260,7 +260,7 @@ class UserController {
'institutions.country AS institution_country', 'cases.created_at'])
.distinct('cases.id')
.from('cases')
- .leftJoin('permissions', 'cases.id', 'permissions.table_id')
+ // .leftJoin('permissions', 'cases.id', 'permissions.table_id')
.join('users', 'users.id', 'cases.author_id')
.join('institutions', 'users.institution_id', 'institutions.id')
.where('cases.published', '>=', publishedFilter)
@@ -271,21 +271,21 @@ class UserController {
this.where('cases.specialty', 'like', specialtyFilter)
})
- .where(function(){
- this
- .where('cases.author_id', user.id)
- .orWhere(function () {
- this
- .where('permissions.entity', 'institution')
- .where('permissions.subject', user.institution_id)
- .where('permissions.clearance', '>=', clearance)
- .where(function(){
- this
- .whereNull('permissions.subject_grade')
- .orWhere('permissions.subject_grade', user.grade)
- })
- })
- })
+ // .where(function(){
+ // this
+ // .where('cases.author_id', user.id)
+ // .orWhere(function () {
+ // this
+ // .where('permissions.entity', 'institution')
+ // .where('permissions.subject', user.institution_id)
+ // .where('permissions.clearance', '>=', clearance)
+ // .where(function(){
+ // this
+ // .whereNull('permissions.subject_grade')
+ // .orWhere('permissions.subject_grade', user.grade)
+ // })
+ // })
+ // })
.orderBy('cases.created_at', 'desc')
}
diff --git a/src/adonisjs/app/Middleware/CheckCasePermission.js b/src/adonisjs/app/Middleware/CheckCasePermission.js
index 5b670a8..f9222a7 100644
--- a/src/adonisjs/app/Middleware/CheckCasePermission.js
+++ b/src/adonisjs/app/Middleware/CheckCasePermission.js
@@ -13,6 +13,7 @@ class CheckPermissionForGivenCase {
*/
async handle ({ params, request, response, auth }, next, properties) {
try {
+ console.log('kokokok')
const loggedUserId = auth.user.id
let sqlQuery = ''
let caseId = ''
diff --git a/src/adonisjs/app/Middleware/CheckPermission.js b/src/adonisjs/app/Middleware/CheckPermission.js
new file mode 100644
index 0000000..be05c2f
--- /dev/null
+++ b/src/adonisjs/app/Middleware/CheckPermission.js
@@ -0,0 +1,64 @@
+'use strict'
+/** @typedef {import('@adonisjs/framework/src/Request')} Request */
+/** @typedef {import('@adonisjs/framework/src/Response')} Response */
+/** @typedef {import('@adonisjs/framework/src/View')} View */
+
+const Database = use('Database')
+
+class CheckPermission {
+ /**
+ * @param {object} ctx
+ * @param {Request} ctx.request
+ * @param {Function} next
+ */
+ async handle ({ params, request, response, auth }, next, properties) {
+ try {
+ let resourceId = params.id
+ if (resourceId == undefined){
+ resourceId = request.input('caseId')
+ }
+ const user = await auth.user
+ const resource = properties[0]
+ const clearance = properties[1]
+ // console.log(user.environment_id)
+ const environment = await user.environment
+ // const environment = await user.environment().fetch()
+
+ // c.versions = await c.versions().fetch()
+ console.log('clearance: '+clearance )
+ console.log('resource: '+resource)
+ console.log('resourceId: '+resourceId)
+ console.log('environment: '+user.environment_id)
+
+ let queryResult
+ const clearances = ['read', 'comment', 'share', 'write', 'delete']
+ const clearanceIindex = clearances.indexOf(clearance)
+ // console.log('clearance '+ clearanceIindex)
+
+ queryResult = await Database
+ .from('permissions')
+ .leftJoin('environments', 'environments.id', 'permissions.environment_id')
+ // .where('environments.id', environment.id)
+
+ .leftJoin('users', 'users.environment_id', 'environments.id')
+ .where('users.environment_id', user.environment_id)
+ .where('permissions.clearance', '>=', clearanceIindex)
+ .where('permissions.resource', resource)
+ .where('permissions.resource_id', resourceId)
+ .count()
+
+ console.log('queryResult '+queryResult[0]['count(*)'])
+ if (queryResult[0]['count(*)'] === 0) {
+ return response.status(500).json('you dont have permission to ' + clearance + ' such ' + resource)
+ } else {
+ await next()
+ }
+
+ } catch (e) {
+ console.log(e)
+ return response.status(500).json(e)
+ }
+ }
+}
+
+module.exports = CheckPermission
diff --git a/src/adonisjs/app/Models/Environment.js b/src/adonisjs/app/Models/Environment.js
new file mode 100644
index 0000000..c9146c3
--- /dev/null
+++ b/src/adonisjs/app/Models/Environment.js
@@ -0,0 +1,12 @@
+'use strict'
+
+/** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */
+const Model = use('Model')
+
+class Environment extends Model {
+ static get incrementing () {
+ return false
+ }
+}
+
+module.exports = Environment
diff --git a/src/adonisjs/app/Models/v1/Permission.js b/src/adonisjs/app/Models/v1/Permission.js
index 90f70a6..58a9d18 100644
--- a/src/adonisjs/app/Models/v1/Permission.js
+++ b/src/adonisjs/app/Models/v1/Permission.js
@@ -7,6 +7,10 @@ class Permission extends Model {
static get incrementing () {
return false
}
+
+ environment () {
+ return this.belongsTo('App/Models/Environment')
+ }
}
module.exports = Permission
diff --git a/src/adonisjs/app/Models/v1/User.js b/src/adonisjs/app/Models/v1/User.js
index e4fad65..3b55c64 100644
--- a/src/adonisjs/app/Models/v1/User.js
+++ b/src/adonisjs/app/Models/v1/User.js
@@ -4,9 +4,11 @@
const Hash = use('Hash')
/** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */
const Model = use('Model')
-
const Database = use('Database')
+const Environment = use('App/Models/Environment')
+
+
class User extends Model {
static get incrementing () {
return false
@@ -26,6 +28,61 @@ class User extends Model {
.withTimestamps()
}
+ environment () {
+ return this.belongsTo('App/Models/Environment')
+ }
+ // environment () {
+ // return this.belongsTo('App/Models/Environment')
+ // }
+ // environment () {
+ // return this
+ // .belongsToMany('App/Models/Group')
+ // .pivotTable('users_groups')
+ // .withTimestamps()
+ // }
+
+// async environment (){
+// let queryResult = await Database
+// .from('environments')
+// .leftJoin('users', 'users.environment_id', 'environments.id')
+// .where('users.id', this.id)
+// // .where('users_environments.environment_id', caseId)
+// // .whereIn('users_cases.permission', ['share', 'write', 'delete'])
+// // .count()
+// queryResult
+// const result = JSON.stringify(queryResult)
+// // console.log(queryResult[0]['id'])
+// // console.log(queryResult[0]['name'])
+//
+// // for (var r in result) {
+// // console.log(r)
+// //
+// // }
+// // result.forEach((item, i) => {
+// // console.log(r)
+// // });
+// console.log('result '+result)
+// if (result.length==0){
+// console.log('aquiiiiiiiiiiiiiii')
+// // let environment
+// // environment.name = 'public'
+// return 'unicamp'
+// }
+// console.log(queryResult)
+// if (queryResult[0]['count(*)'] === 0) {
+// return response.status(500).json('you dont have permission to ' + properties[0] + ' such case')
+// } else {
+// const environment = new Environment()
+// // environment.
+// const environmet = Environment
+// // console.log(result[0])
+// return queryResult[0]['name']
+// // await next()
+// }
+// return queryResult
+//
+// }
+
artifacts () {
return this.hasMany('App/Models/v1/Artifact')
}
diff --git a/src/adonisjs/database/migrations/1616133252647_drop_users_groups_schema.js b/src/adonisjs/database/migrations/1616133252647_drop_users_groups_schema.js
new file mode 100644
index 0000000..f3fa7e1
--- /dev/null
+++ b/src/adonisjs/database/migrations/1616133252647_drop_users_groups_schema.js
@@ -0,0 +1,22 @@
+'use strict'
+
+/** @type {import('@adonisjs/lucid/src/Schema')} */
+const Schema = use('Schema')
+
+class DropUsersGroupsSchema extends Schema {
+ up () {
+ this.dropIfExists('users_groups')
+ }
+
+ down () {
+ this.create('users_groups', (table) => {
+ table.uuid('user_id').references('id').inTable('users').index('user_id')
+ table.uuid('group_id').references('id').inTable('groups').index('group_id')
+ table.primary(['group_id', 'user_id'])
+
+ table.timestamps()
+ })
+ }
+}
+
+module.exports = DropUsersGroupsSchema
diff --git a/src/adonisjs/database/migrations/1616133614175_drop_groups_schema.js b/src/adonisjs/database/migrations/1616133614175_drop_groups_schema.js
new file mode 100644
index 0000000..4eb059a
--- /dev/null
+++ b/src/adonisjs/database/migrations/1616133614175_drop_groups_schema.js
@@ -0,0 +1,21 @@
+'use strict'
+
+/** @type {import('@adonisjs/lucid/src/Schema')} */
+const Schema = use('Schema')
+
+class DropGroupSchema extends Schema {
+ up () {
+ this.dropIfExists('groups')
+ }
+
+ down () {
+ this.create('groups', (table) => {
+ table.uuid('id')
+ table.primary('id')
+ table.string('title')
+ table.timestamps()
+ })
+ }
+}
+
+module.exports = DropGroupSchema
diff --git a/src/adonisjs/database/migrations/1616133798887_environment_schema.js b/src/adonisjs/database/migrations/1616133798887_environment_schema.js
new file mode 100644
index 0000000..a83b6f6
--- /dev/null
+++ b/src/adonisjs/database/migrations/1616133798887_environment_schema.js
@@ -0,0 +1,24 @@
+'use strict'
+
+/** @type {import('@adonisjs/lucid/src/Schema')} */
+const Schema = use('Schema')
+
+class EnvironmentSchema extends Schema {
+ up () {
+ this.dropIfExists('environments')
+
+ this.create('environments', (table) => {
+ table.uuid('id')
+ table.primary('id')
+ table.string('name')
+ table.timestamps()
+ })
+
+ }
+
+ down () {
+ this.drop('environments')
+ }
+}
+
+module.exports = EnvironmentSchema
diff --git a/src/adonisjs/database/migrations/1616135847286_refact_permissions_schema.js b/src/adonisjs/database/migrations/1616135847286_refact_permissions_schema.js
new file mode 100644
index 0000000..0f0b091
--- /dev/null
+++ b/src/adonisjs/database/migrations/1616135847286_refact_permissions_schema.js
@@ -0,0 +1,42 @@
+'use strict'
+
+/** @type {import('@adonisjs/lucid/src/Schema')} */
+const Schema = use('Schema')
+
+class UpdatePermissionSchema extends Schema {
+ up () {
+ this.table('permissions', (table) => {
+ // alter table
+ // table.dropColumn('environment_id')
+ // table.dropForeign('environment_id')
+ // table.dropColumn('environment_id')
+ table.uuid('environment_id').references('id').inTable('environments').index('environment_id')
+
+ table.string('resource')
+ table.uuid('resource_id')
+
+ table.dropColumn('entity')
+ table.dropColumn('subject')
+ table.dropColumn('table')
+ table.dropColumn('table_id')
+
+ })
+ }
+
+ down () {
+ this.table('permissions', (table) => {
+ // reverse alternations
+ table.dropForeign('environment_id')
+ table.dropColumn('environment_id')
+ table.dropColumn('resource_id')
+ table.dropColumn('resource')
+
+ table.string('entity')
+ table.string('subject')
+ table.string('table')
+ table.uuid('table_id')
+ })
+ }
+}
+
+module.exports = UpdatePermissionSchema
diff --git a/src/adonisjs/database/migrations/1616137109878_update_users_add_env_attr_schema.js b/src/adonisjs/database/migrations/1616137109878_update_users_add_env_attr_schema.js
new file mode 100644
index 0000000..f81382d
--- /dev/null
+++ b/src/adonisjs/database/migrations/1616137109878_update_users_add_env_attr_schema.js
@@ -0,0 +1,21 @@
+'use strict'
+
+/** @type {import('@adonisjs/lucid/src/Schema')} */
+const Schema = use('Schema')
+
+class UpdateUsersAddEnvAttrSchema extends Schema {
+ up () {
+ this.table('users', (table) => {
+ table.uuid('environment_id').references('id').inTable('environments').index('environment_id')
+ })
+ }
+
+ down () {
+ this.table('users', (table) => {
+ table.dropForeign('environment_id')
+ table.dropColumn('environment_id')
+ })
+ }
+}
+
+module.exports = UpdateUsersAddEnvAttrSchema
diff --git a/src/adonisjs/database/schema_designs/v1_2_1/class_diagram.drawio b/src/adonisjs/database/schema_designs/v1_2_1/class_diagram.drawio
new file mode 100644
index 0000000..31ba1dc
--- /dev/null
+++ b/src/adonisjs/database/schema_designs/v1_2_1/class_diagram.drawio
@@ -0,0 +1 @@
+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
\ No newline at end of file
diff --git a/src/adonisjs/database/schema_designs/v2_0_0/class_diagram.drawio b/src/adonisjs/database/schema_designs/v2_0_0/class_diagram.drawio
new file mode 100644
index 0000000..4f9a941
--- /dev/null
+++ b/src/adonisjs/database/schema_designs/v2_0_0/class_diagram.drawio
@@ -0,0 +1 @@
+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
\ No newline at end of file
diff --git a/src/adonisjs/database/schema_designs/v2_0_0/class_diagram.jpg b/src/adonisjs/database/schema_designs/v2_0_0/class_diagram.jpg
new file mode 100644
index 0000000..80c014e
Binary files /dev/null and b/src/adonisjs/database/schema_designs/v2_0_0/class_diagram.jpg differ
diff --git a/src/adonisjs/database/seeds/InitialSeeder.js b/src/adonisjs/database/seeds/InitialSeeder.js
index 97e3c91..7e4fafd 100644
--- a/src/adonisjs/database/seeds/InitialSeeder.js
+++ b/src/adonisjs/database/seeds/InitialSeeder.js
@@ -23,6 +23,8 @@ const User = use('App/Models/v1/User')
const Quest = use('App/Models/v1/Quest')
const Artifact = use('App/Models/v1/Artifact')
const Role = use('App/Models/v1/Role')
+const Environment = use('App/Models/Environment')
+const Permission = use('App/Models/v1/Permission')
const fs = require('fs')
const uuidv4 = require('uuid/v4')
@@ -44,6 +46,8 @@ class UserSeeder {
const user = await this.seed_default_users(trx)
+ const environment = await this.seed_environment(user, trx)
+
const institution = await this.seed_institution(user, trx)
// console.log(institution)
await user.save(trx)
@@ -90,6 +94,50 @@ class UserSeeder {
}
}
+ async seed_environment(user, trx) {
+ try {
+ const environment = new Environment()
+ environment.id = await uuidv4()
+ environment.name = 'Harena'
+
+ const environment2 = new Environment()
+ environment2.id = await uuidv4()
+ environment2.name = 'Jacinto'
+
+ const environment3 = new Environment()
+ environment3.id = await uuidv4()
+ environment3.name = 'unicamp'
+
+ const environment4 = new Environment()
+ environment4.id = await uuidv4()
+ environment4.name = 'ResidĂȘncia da Tarde'
+
+ const environment5 = new Environment()
+ environment5.id = await uuidv4()
+ environment5.name = 'PĂșblico'
+
+
+ await environment.save(trx)
+ await environment2.save(trx)
+ await environment3.save(trx)
+ await environment4.save(trx)
+ await environment5.save(trx)
+
+
+ await user.environment().associate(environment, trx)
+
+ // const permission = new Permission()
+ // permission.id = await uuidv4()
+ // permission.clearance = 4
+ // permission.subject_grade = 'admin'
+ // permission.resource = 'cases'
+ // permission.resource_id =
+ return environment
+ } catch (e) {
+ console.log(e)
+ }
+ }
+
async seed_institution(user, trx) {
try {
const institution = new Institution()
@@ -161,7 +209,7 @@ class UserSeeder {
console.log('user---------------'+user)
console.log(cv)
- await c.versions().save([cv.id], trx)
+ await c.versions().save(cv, trx)
console.log('salvoooooooooooooooooooooooooooooooooooooooooooooooou version')
await c.institution().associate(institution, trx)
console.log('c2--------------'+c)
diff --git a/src/adonisjs/start/kernel.js b/src/adonisjs/start/kernel.js
index c3f0ee3..2d56fb7 100644
--- a/src/adonisjs/start/kernel.js
+++ b/src/adonisjs/start/kernel.js
@@ -18,7 +18,7 @@ const globalMiddleware = [
'Adonis/Middleware/Shield',
'Adonis/Middleware/AuthInit',
'App/Middleware/ConvertEmptyStringsToNull',
- 'Adonis/Acl/Init'
+ 'Adonis/Acl/Init',
]
/*
@@ -43,8 +43,10 @@ const namedMiddleware = {
guest: 'Adonis/Middleware/AllowGuestOnly',
is: 'Adonis/Acl/Is',
can: 'Adonis/Acl/Can',
- case_permission: 'App/Middleware/CheckCasePermission',
- quest_permission: 'App/Middleware/CheckQuestPermission'
+ permission: 'App/Middleware/CheckPermission',
+
+ // case_permission: 'App/Middleware/CheckCasePermission',
+ // quest_permission: 'App/Middleware/CheckQuestPermission'
}
/*
diff --git a/src/adonisjs/start/routes.js b/src/adonisjs/start/routes.js
index e41166a..1870883 100644
--- a/src/adonisjs/start/routes.js
+++ b/src/adonisjs/start/routes.js
@@ -65,15 +65,23 @@ Route.group(() => {
|----------------------------------------------------------------------------------------------
*/
Route.group(() => {
+ // Route.put( ':id', 'v1/CaseController.update').middleware(['permission:cases'])
+
Route.post( '', 'v1/CaseController.store')
- Route.put( '', 'v1/CaseController.update').middleware(['case_permission:write'])
- Route.delete('', 'v1/CaseController.destroy').middleware(['case_permission:delete'])
+
+ Route.put( ':id', 'v1/CaseController.update').middleware(['permission:cases,write'])
+ // Route.put( '', 'v1/CaseController.update').middleware(['case_permission:write'])
+
+ Route.delete('', 'v1/CaseController.destroy').middleware(['permission:cases,delete'])
+ // Route.delete('', 'v1/CaseController.destroy').middleware(['case_permission:delete'])
+
Route.post('share', 'v1/CaseController.share').middleware(['case_permission:share'])
Route.post('property', 'v1/CaseController.storeProperty').middleware(['auth', 'case_permission:write'])
Route.put('property', 'v1/CaseController.updateProperty').middleware(['auth', 'case_permission:write'])
}).prefix('/api/v1/case').middleware(['auth', 'is:author'])
-Route.get( '/api/v1/case', 'v1/CaseController.show').middleware(['auth', 'case_permission:read'])
+// Route.get( '/api/v1/case', 'v1/CaseController.show').middleware(['auth', 'case_permission:read'])
+Route.get( '/api/v1/case', 'v1/CaseController.show').middleware(['auth', 'permission:cases,read'])
/*
@@ -200,6 +208,10 @@ Route.group(() => {
Route.post( 'institution', 'v1/InstitutionController.store')
+ Route.post( 'permission', 'PermissionController.store')
+
+
+
Route.post( 'revoke_tokens', 'v1/AdminController.revoke_tokens')
Route.put( 'user/:id', 'v1/AdminController.updateUser')