SAML; Dashboard

This commit is contained in:
garrettmills
2020-05-03 20:16:54 -05:00
parent e3ecfb0d37
commit c389e151b5
1778 changed files with 148410 additions and 82 deletions

View File

@@ -6,7 +6,7 @@ const auth_routes = {
],
get: {
'/mfa/enable/date': ['middleware::auth:UserOnly', 'controller::api:v1:Auth.get_mfa_enable_date'],
},
post: {
@@ -14,7 +14,16 @@ const auth_routes = {
'/attempt': [ 'controller::api:v1:Auth.attempt' ],
'/mfa/generate': ['middleware::auth:UserOnly', 'controller::api:v1:Auth.generate_mfa_key'],
'/mfa/attempt': ['middleware::auth:DMZOnly', 'controller::api:v1:Auth.attempt_mfa'],
'/mfa/enable': ['middleware::auth:UserOnly', 'controller::api:v1:Auth.enable_mfa'],
'/mfa/enable': [
'middleware::auth:UserOnly',
['middleware::auth:RequireTrust', { scope: 'mfa.enable', deplete: true }],
'controller::api:v1:Auth.enable_mfa'
],
'/mfa/disable': [
'middleware::auth:UserOnly',
['middleware::auth:RequireTrust', { scope: 'mfa.disable', deplete: true }],
'controller::api:v1:Auth.disable_mfa',
],
},
}

View File

@@ -0,0 +1,17 @@
const message_routes = {
prefix: '/api/v1/message',
middleware: [
'auth:UserOnly',
],
get: {
'/banners': ['controller::api:v1:Message.get_banners'],
},
post: {
'/banners/read/:banner_id': ['controller::api:v1:Message.read_banner'],
},
}
module.exports = exports = message_routes

View File

@@ -0,0 +1,26 @@
const password_routes = {
prefix: '/api/v1/password',
middleware: [
'auth:UserOnly',
],
get: {
'/resets': ['controller::api:v1:Password.get_resets'],
'/app_passwords': ['controller::api:v1:Password.get_app_passwords'],
},
post: {
'/app_passwords': ['controller::api:v1:Password.create_app_password'],
'/resets': [
['middleware::auth:RequireTrust', { scope: 'password.reset' }],
'controller::api:v1:Password.reset_password',
],
},
delete: {
'/app_passwords/:uuid': ['controller::api:v1:Password.delete_app_password'],
}
}
module.exports = exports = password_routes

View File

@@ -0,0 +1,21 @@
const profile_routes = {
prefix: '/api/v1/profile',
middleware: [
'auth:UserOnly',
],
get: {
'/:user_id': [ // user_id | 'me'
'controller::api:v1:Profile.fetch',
],
},
patch: {
'/:user_id': [ // user_id | 'me'
'controller::api:v1:Profile.update',
],
},
}
module.exports = exports = profile_routes

View File

@@ -8,12 +8,22 @@ const mfa_routes = {
get: {
'/setup': [
'middleware::auth:UserOnly',
['middleware::auth:RequireTrust', { scope: 'mfa.enable' }],
'controller::auth:MFA.setup',
],
'/challenge': [
'middleware::auth:DMZOnly',
'controller::auth:MFA.challenge',
],
'/disable': [
'middleware::auth:UserOnly',
'controller::auth:MFA.get_disable',
],
'/disable/process': [
'middleware::auth:UserOnly',
['middleware::auth:RequireTrust', { scope: 'mfa.disable' }],
'controller::auth:MFA.do_disable',
],
},
post: {

View File

@@ -0,0 +1,16 @@
const password_routes = {
prefix: '/password',
middleware: [
'auth:UserOnly',
],
get: {
'/reset': [
['middleware::auth:RequireTrust', { scope: 'password.reset' }],
'controller::auth:Password.get_reset',
],
},
}
module.exports = exports = password_routes

View File

@@ -0,0 +1,33 @@
const saml_routes = {
prefix: '/saml',
middleware: [
],
// TODO SLO
get: {
'/metadata.xml': ['controller::saml:SAML.get_metadata'],
'/sso': [
'middleware::SAMLRequest',
'middleware::auth:UserOnly',
'controller::saml:SAML.get_sso',
],
'/logout': [
'middleware::SAMLRequest',
'middleware::auth:UserOnly',
'controller::saml:SAML.get_logout',
],
},
post: {
'/logout': [
'middleware::SAMLRequest',
'middleware::auth:UserOnly',
'controller::saml:SAML.post_logout',
],
},
}
module.exports = exports = saml_routes

View File

@@ -0,0 +1,18 @@
const trust_routes = {
prefix: '/auth/trust',
middleware: [
'auth:UserOnly',
],
get: {
'/token/issue': ['controller::auth:Trust.get_issue'],
// '/token/continue': ['controller::auth:Trust.get_continue'],
},
post: {
},
}
module.exports = exports = trust_routes

View File

@@ -0,0 +1,13 @@
const groups_routes = {
prefix: '/dash/groups',
middleware: [
'auth:UserOnly',
],
get: {
'/': [ 'controller::dash:Groups.get_listing' ]
},
}
module.exports = exports = groups_routes

View File

@@ -0,0 +1,15 @@
const profile_routes = {
prefix: '/dash/profile',
middleware: ['auth:UserOnly'],
get: {
'/': ['controller::dash:Profile.get_page'],
},
post: {
},
}
module.exports = exports = profile_routes

View File

@@ -0,0 +1,13 @@
const groups_routes = {
prefix: '/dash/saml',
middleware: [
'auth:UserOnly',
],
get: {
'/service-providers': [ 'controller::dash:SAML.get_sp_listing' ]
},
}
module.exports = exports = groups_routes

View File

@@ -0,0 +1,13 @@
const user_routes = {
prefix: '/dash/users',
middleware: [
'auth:UserOnly',
],
get: {
'/': [ 'controller::dash:Users.get_listing' ]
},
}
module.exports = exports = user_routes

View File

@@ -44,9 +44,10 @@ const index = {
// Placeholder for auth dashboard. You'd replace this with
// your own route protected by 'middleware::auth:UserOnly'
'/dash': [ 'middleware::auth:UserOnly', 'controller::Home.welcome' ],
'/dash': [ 'middleware::auth:UserOnly', ['middleware::Redirect', {to: '/dash/profile'}] ],
'/tmpl': [ 'controller::Home.tmpl' ],
// TODO remove this
'/tmpl': [ 'middleware::auth:UserOnly', 'controller::Home.tmpl' ],
},
/*