Start implementation of flitter-i18n
This commit is contained in:
@@ -10,7 +10,7 @@ class IAMController extends Controller {
|
||||
|
||||
if ( !req.body.entity_id && !req.body.target_id )
|
||||
return res.status(400)
|
||||
.message('Missing one or more required fields: entity_id, target_id')
|
||||
.message(`${req.T('api:missing_field', true)} entity_id, target_id`)
|
||||
.api()
|
||||
|
||||
return res.api(await Policy.check_entity_access(req.body.entity_id, req.body.target_id))
|
||||
@@ -22,7 +22,7 @@ class IAMController extends Controller {
|
||||
|
||||
if ( !req.body.target_id )
|
||||
return res.status(400)
|
||||
.message('Missing required field: target_id')
|
||||
.message(`${req.T('api:missing_field')} target_id`)
|
||||
.api()
|
||||
|
||||
let user = req.user
|
||||
@@ -31,12 +31,12 @@ class IAMController extends Controller {
|
||||
|
||||
if ( !user )
|
||||
return res.status(404)
|
||||
.message('User not found with that ID.')
|
||||
.message(req.T('api:user_not_found'))
|
||||
.api()
|
||||
|
||||
if ( !req.user.can(`auth:user:${user.id}:view`) )
|
||||
return res.status(401)
|
||||
.message('Insufficient permissions.')
|
||||
.message(req.T('api:insufficient_permissions'))
|
||||
.api()
|
||||
|
||||
return res.api(await Policy.check_user_access(user, req.body.target_id))
|
||||
@@ -62,12 +62,12 @@ class IAMController extends Controller {
|
||||
|
||||
if ( !policy )
|
||||
return res.status(404)
|
||||
.message('Policy not found with that ID.')
|
||||
.message(req.T('iam:policy_not_found'))
|
||||
.api()
|
||||
|
||||
if ( !req.user.can(`iam:policy:${policy.id}:view`) )
|
||||
return res.status(401)
|
||||
.message('Insufficient permissions.')
|
||||
.message(req.T('api:insufficient_permissions'))
|
||||
.api()
|
||||
|
||||
return res.api(await policy.to_api())
|
||||
@@ -80,13 +80,13 @@ class IAMController extends Controller {
|
||||
for ( const field of required_fields ) {
|
||||
if ( !req.body[field] )
|
||||
return res.status(400)
|
||||
.message(`Missing required field: ${field}`)
|
||||
.message(`${req.T('api:missing_field')} ${field}`)
|
||||
.api()
|
||||
}
|
||||
|
||||
if ( !['user', 'group'].includes(req.body.entity_type) )
|
||||
return res.status(400)
|
||||
.message('Invalid entity_type. Must be one of: user, group.')
|
||||
.message(`${req.T('iam:invalid_entity')} user, group`)
|
||||
.api()
|
||||
|
||||
// Make sure the entity_id is valid
|
||||
@@ -95,25 +95,25 @@ class IAMController extends Controller {
|
||||
const user = await User.findById(req.body.entity_id)
|
||||
if ( !user || !req.user.can(`auth:user:${user.id}:view`) )
|
||||
return res.status(400)
|
||||
.message('Invalid entity_id.')
|
||||
.message(`${req.T('common:invalid')} entity_id.`)
|
||||
.api()
|
||||
} else if ( req.body.entity_type === 'group' ) {
|
||||
const Group = this.models.get('auth:Group')
|
||||
const group = await Group.findById(req.body.entity_id)
|
||||
if ( !group || !group.active || !req.user.can(`auth:group:${group.id}:view`) )
|
||||
return res.status(400)
|
||||
.message('Invalid entity_id.')
|
||||
.message(`${req.T('common:invalid')} entity_id.`)
|
||||
.api()
|
||||
}
|
||||
|
||||
if ( !['allow', 'deny'].includes(req.body.access_type) )
|
||||
return res.status(400)
|
||||
.message('Invalid access_type. Must be one of: allow, deny.')
|
||||
.message(`${req.T('common:invalid')} access_type. ${req.T('api:must_one')} allow, deny.`)
|
||||
.api()
|
||||
|
||||
if ( !['application', 'api_scope'].includes(req.body.target_type) )
|
||||
return res.status(400)
|
||||
.message('Invalid target_type. Must be one of: application.')
|
||||
.message(`${req.T('common:invalid')} target_type. ${req.T('api:must_one')} application, api_scope.`)
|
||||
.api()
|
||||
|
||||
// Make sure the target_id is valid
|
||||
@@ -122,13 +122,13 @@ class IAMController extends Controller {
|
||||
const app = await Application.findById(req.body.target_id)
|
||||
if ( !app || !app.active || !req.user.can(`app:${app.id}:view`) )
|
||||
return res.status(400)
|
||||
.message('Invalid target_id.')
|
||||
.message(`${req.T('common:invalid')} target_id.`)
|
||||
.api()
|
||||
} else if ( req.body.target_type === 'api_scope' ) {
|
||||
const api_scopes = this.canon.get('controller::api:v1:Reflect.api_scopes')()
|
||||
if ( !api_scopes.includes(req.body.target_id) )
|
||||
return res.status(400)
|
||||
.message('Invalid target_id.')
|
||||
.message(`${req.T('common:invalid')} target_id.`)
|
||||
.api()
|
||||
}
|
||||
|
||||
@@ -152,25 +152,25 @@ class IAMController extends Controller {
|
||||
|
||||
if ( !policy || !policy.active )
|
||||
return res.status(404)
|
||||
.message('Policy not found with that ID.')
|
||||
.message(req.T('iam:policy_not_found'))
|
||||
.api()
|
||||
|
||||
if ( !req.user.can(`iam:policy:${policy.id}:update`) )
|
||||
return res.status(401)
|
||||
.message('Insufficient permissions.')
|
||||
.message(req.T('api:insufficient_permissions'))
|
||||
.api()
|
||||
|
||||
const required_fields = ['entity_type', 'entity_id', 'access_type', 'target_type', 'target_id']
|
||||
for ( const field of required_fields ) {
|
||||
if ( !req.body[field] )
|
||||
return res.status(400)
|
||||
.message(`Missing required field: ${field}`)
|
||||
.message(`${req.T('api:missing_field')} ${field}`)
|
||||
.api()
|
||||
}
|
||||
|
||||
if ( !['user', 'group'].includes(req.body.entity_type) )
|
||||
return res.status(400)
|
||||
.message('Invalid entity_type. Must be one of: user, group.')
|
||||
.message(`${req.T('common:invalid')} entity_type. ${req.T('api:must_one')} user, group.`)
|
||||
.api()
|
||||
|
||||
// Make sure the entity_id is valid
|
||||
@@ -179,25 +179,25 @@ class IAMController extends Controller {
|
||||
const user = await User.findById(req.body.entity_id)
|
||||
if ( !user || !req.user.can(`auth:user:${user.id}:view`) )
|
||||
return res.status(400)
|
||||
.message('Invalid entity_id.')
|
||||
.message(`${req.T('common:invalid')} entity_id.`)
|
||||
.api()
|
||||
} else if ( req.body.entity_type === 'group' ) {
|
||||
const Group = this.models.get('auth:Group')
|
||||
const group = await Group.findById(req.body.entity_id)
|
||||
if ( !group || !group.active || !req.user.can(`auth:group:${group.id}:view`) )
|
||||
return res.status(400)
|
||||
.message('Invalid entity_id.')
|
||||
.message(`${req.T('common:invalid')} entity_id.`)
|
||||
.api()
|
||||
}
|
||||
|
||||
if ( !['allow', 'deny'].includes(req.body.access_type) )
|
||||
return res.status(400)
|
||||
.message('Invalid access_type. Must be one of: allow, deny.')
|
||||
.message(`${req.T('common:invalid')} access_type. ${req.T('api:must_one')} allow, deny.`)
|
||||
.api()
|
||||
|
||||
if ( !['application', 'api_scope'].includes(req.body.target_type) )
|
||||
return res.status(400)
|
||||
.message('Invalid target_type. Must be one of: application.')
|
||||
.message(`${req.T('common:invalid')} target_type. ${req.T('api:must_one')} application, api_scope.`)
|
||||
.api()
|
||||
|
||||
// Make sure the target_id is valid
|
||||
@@ -206,13 +206,13 @@ class IAMController extends Controller {
|
||||
const app = await Application.findById(req.body.target_id)
|
||||
if ( !app || !app.active || !req.user.can(`app:${app.id}:view`) )
|
||||
return res.status(400)
|
||||
.message('Invalid target_id.')
|
||||
.message(`${req.T('common:invalid')} target_id.`)
|
||||
.api()
|
||||
} else if ( req.body.target_type === 'api_scope' ) {
|
||||
const api_scopes = this.canon.get('controller::api:v1:Reflect.api_scopes')()
|
||||
if ( !api_scopes.includes(req.body.target_id) )
|
||||
return res.status(400)
|
||||
.message('Invalid target_id.')
|
||||
.message(`${req.T('common:invalid')} target_id.`)
|
||||
.api()
|
||||
}
|
||||
|
||||
@@ -231,12 +231,12 @@ class IAMController extends Controller {
|
||||
|
||||
if ( !policy || !policy.active )
|
||||
return res.status(404)
|
||||
.message('Policy not found with that ID.')
|
||||
.message(req.T('iam:policy_not_found'))
|
||||
.api()
|
||||
|
||||
if ( !req.user.can(`iam:policy:${policy.id}:delete`) )
|
||||
return res.status(401)
|
||||
.message('Insufficient permissions.')
|
||||
.message(req.T('api:insufficient_permissions'))
|
||||
.api()
|
||||
|
||||
policy.active = false
|
||||
|
||||
Reference in New Issue
Block a user