Flesh out Cobalt, LDAP groups, &c.
This commit is contained in:
14
app/routing/middleware/api/Permission.middleware.js
Normal file
14
app/routing/middleware/api/Permission.middleware.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const { Middleware } = require('libflitter')
|
||||
|
||||
class PermissionMiddleware extends Middleware {
|
||||
async test(req, res, next, { check }) {
|
||||
if ( !req.user.can(check) )
|
||||
return res.status(401)
|
||||
.message('Insufficient permissions.')
|
||||
.api()
|
||||
|
||||
return next()
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = PermissionMiddleware
|
||||
@@ -7,6 +7,15 @@ const auth_routes = {
|
||||
|
||||
get: {
|
||||
'/mfa/enable/date': ['middleware::auth:UserOnly', 'controller::api:v1:Auth.get_mfa_enable_date'],
|
||||
|
||||
'/roles': [
|
||||
['middleware::api:Permission', { check: 'v1:auth:roles:list' }],
|
||||
'controller::api:v1:Auth.get_roles',
|
||||
],
|
||||
'/users': [
|
||||
['middleware::api:Permission', { check: 'v1:auth:users:list' }],
|
||||
'controller::api:v1:Auth.get_users',
|
||||
],
|
||||
},
|
||||
|
||||
post: {
|
||||
|
||||
61
app/routing/routers/api/v1/ldap.routes.js
Normal file
61
app/routing/routers/api/v1/ldap.routes.js
Normal file
@@ -0,0 +1,61 @@
|
||||
const ldap_routes = {
|
||||
prefix: '/api/v1/ldap',
|
||||
|
||||
middleware: [
|
||||
'auth:UserOnly',
|
||||
],
|
||||
|
||||
get: {
|
||||
'/clients': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:clients:list' }],
|
||||
'controller::api:v1:LDAP.get_clients',
|
||||
],
|
||||
'/clients/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:clients:get' }],
|
||||
'controller::api:v1:LDAP.get_client',
|
||||
],
|
||||
'/groups': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:groups:list' }],
|
||||
'controller::api:v1:LDAP.get_groups',
|
||||
],
|
||||
'/groups/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:groups:get' }],
|
||||
'controller::api:v1:LDAP.get_group',
|
||||
],
|
||||
},
|
||||
|
||||
post: {
|
||||
'/clients': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:clients:create' }],
|
||||
'controller::api:v1:LDAP.create_client',
|
||||
],
|
||||
'/groups': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:groups:create' }],
|
||||
'controller::api:v1:LDAP.create_group',
|
||||
],
|
||||
},
|
||||
|
||||
patch: {
|
||||
'/clients/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:clients:update' }],
|
||||
'controller::api:v1:LDAP.update_client',
|
||||
],
|
||||
'/groups/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:groups:update' }],
|
||||
'controller::api:v1:LDAP.update_group',
|
||||
],
|
||||
},
|
||||
|
||||
delete: {
|
||||
'/clients/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:clients:delete' }],
|
||||
'controller::api:v1:LDAP.delete_client',
|
||||
],
|
||||
'/groups/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:ldap:groups:delete' }],
|
||||
'controller::api:v1:LDAP.delete_group',
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
module.exports = exports = ldap_routes
|
||||
41
app/routing/routers/api/v1/saml.routes.js
Normal file
41
app/routing/routers/api/v1/saml.routes.js
Normal file
@@ -0,0 +1,41 @@
|
||||
const saml_routes = {
|
||||
prefix: '/api/v1/saml',
|
||||
|
||||
middleware: [
|
||||
'auth:UserOnly',
|
||||
],
|
||||
|
||||
get: {
|
||||
'/providers': [
|
||||
['middleware::api:Permission', { check: 'v1:saml:providers:list' }],
|
||||
'controller::api:v1:SAML.get_providers',
|
||||
],
|
||||
'/providers/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:saml:providers:get' }],
|
||||
'controller::api:v1:SAML.get_provider',
|
||||
],
|
||||
},
|
||||
|
||||
post: {
|
||||
'/providers': [
|
||||
['middleware::api:Permission', { check: 'v1:saml:providers:create' }],
|
||||
'controller::api:v1:SAML.create_provider',
|
||||
],
|
||||
},
|
||||
|
||||
patch: {
|
||||
'/providers/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:saml:providers:update' }],
|
||||
'controller::api:v1:SAML.update_provider',
|
||||
],
|
||||
},
|
||||
|
||||
delete: {
|
||||
'/providers/:id': [
|
||||
['middleware::api:Permission', { check: 'v1:saml:providers:delete' }],
|
||||
'controller::api:v1:SAML.delete_provider',
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
module.exports = exports = saml_routes
|
||||
18
app/routing/routers/dash/cobalt.routes.js
Normal file
18
app/routing/routers/dash/cobalt.routes.js
Normal file
@@ -0,0 +1,18 @@
|
||||
const cobalt_routes = {
|
||||
prefix: '/dash/c',
|
||||
|
||||
middleware: [
|
||||
'auth:UserOnly',
|
||||
],
|
||||
|
||||
get: {
|
||||
'/listing/:resource*': [
|
||||
'controller::Cobalt.listing',
|
||||
],
|
||||
'/form/:resource*': [
|
||||
'controller::Cobalt.form',
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
module.exports = exports = cobalt_routes
|
||||
Reference in New Issue
Block a user