Add default clients (#105)
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
* Add the possibility to create client enabled by default when creating new accounts * Can mark clients are granted for all users, regardless of users accounts grants Reviewed-on: #105
This commit is contained in:
@ -65,7 +65,7 @@ pub struct UpdateUserQuery {
|
||||
}
|
||||
|
||||
pub async fn users_route(
|
||||
user: CurrentUser,
|
||||
admin: CurrentUser,
|
||||
users: web::Data<Addr<UsersActor>>,
|
||||
update_query: Option<web::Form<UpdateUserQuery>>,
|
||||
logger: ActionLogger,
|
||||
@ -225,7 +225,7 @@ pub async fn users_route(
|
||||
|
||||
HttpResponse::Ok().body(
|
||||
UsersListTemplate {
|
||||
_p: BaseSettingsPage::get("Users list", &user, danger, success),
|
||||
_p: BaseSettingsPage::get("Users list", &admin, danger, success),
|
||||
users,
|
||||
}
|
||||
.render()
|
||||
@ -233,11 +233,22 @@ pub async fn users_route(
|
||||
)
|
||||
}
|
||||
|
||||
pub async fn create_user(user: CurrentUser, clients: web::Data<ClientManager>) -> impl Responder {
|
||||
pub async fn create_user(admin: CurrentUser, clients: web::Data<ClientManager>) -> impl Responder {
|
||||
let user = User {
|
||||
authorized_clients: Some(
|
||||
clients
|
||||
.get_default_clients()
|
||||
.iter()
|
||||
.map(|u| u.id.clone())
|
||||
.collect(),
|
||||
),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
HttpResponse::Ok().body(
|
||||
EditUserTemplate {
|
||||
_p: BaseSettingsPage::get("Create a new user", user.deref(), None, None),
|
||||
u: Default::default(),
|
||||
_p: BaseSettingsPage::get("Create a new user", admin.deref(), None, None),
|
||||
u: user,
|
||||
clients: clients.cloned(),
|
||||
}
|
||||
.render()
|
||||
@ -251,7 +262,7 @@ pub struct EditUserQuery {
|
||||
}
|
||||
|
||||
pub async fn edit_user(
|
||||
user: CurrentUser,
|
||||
admin: CurrentUser,
|
||||
clients: web::Data<ClientManager>,
|
||||
users: web::Data<Addr<UsersActor>>,
|
||||
query: web::Query<EditUserQuery>,
|
||||
@ -266,7 +277,7 @@ pub async fn edit_user(
|
||||
EditUserTemplate {
|
||||
_p: BaseSettingsPage::get(
|
||||
"Edit user account",
|
||||
user.deref(),
|
||||
admin.deref(),
|
||||
match edited_account.is_none() {
|
||||
true => Some("Could not find requested user!".to_string()),
|
||||
false => None,
|
||||
|
@ -164,7 +164,7 @@ pub async fn authorize(
|
||||
};
|
||||
|
||||
// Check if user is authorized to access the application
|
||||
if !user.can_access_app(&client.id) {
|
||||
if !user.can_access_app(&client) {
|
||||
return error_redirect(
|
||||
&query,
|
||||
"invalid_request",
|
||||
|
Reference in New Issue
Block a user