add api user role and fix api auth failure response
This commit is contained in:
@@ -19,6 +19,9 @@ __PACKAGE__->result_source_instance->view_definition(<<ENDSQL
|
|||||||
UNION
|
UNION
|
||||||
SELECT username, 'ldap' AS role FROM users
|
SELECT username, 'ldap' AS role FROM users
|
||||||
WHERE ldap
|
WHERE ldap
|
||||||
|
UNION
|
||||||
|
SELECT username, 'api', AS role FROM users
|
||||||
|
WHERE token AND token_from
|
||||||
ENDSQL
|
ENDSQL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,16 @@ hook 'before' => sub {
|
|||||||
};
|
};
|
||||||
|
|
||||||
get qr{^/(?:login(?:/denied)?)?} => sub {
|
get qr{^/(?:login(?:/denied)?)?} => sub {
|
||||||
template 'index', { return_url => param('return_url') };
|
if (param('return_url') and param('return_url') =~ m{^/api/}) {
|
||||||
|
status 403;
|
||||||
|
return to_json {
|
||||||
|
error => 'not authorized',
|
||||||
|
return_url => param('return_url'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
template 'index', { return_url => param('return_url') };
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
# override default login_handler so we can log access in the database
|
# override default login_handler so we can log access in the database
|
||||||
|
|||||||
Reference in New Issue
Block a user