✨ (auth): Añade permisos tipados
Sustituye las claves de permiso `&str` sueltas por el trait `Permission` (clave, etiqueta y grupo), y añade `require_permission()` para cortar un handler con `ErrorPage::AccessDenied` antes de construir nada. Para que `require_permission()` pueda fallar sin un `Context` previo, `ErrorPage` pasa a envolver `Option<HttpRequest>`, `Context::new()` recibe ahora `HttpRequest` sin `Option`, y se añade `Context::admin()` para la plantilla de administración.
This commit is contained in:
parent
ea0dc021ce
commit
747e64ce34
10 changed files with 297 additions and 120 deletions
|
|
@ -39,7 +39,7 @@ async fn current_user_propagates_from_request_extensions() {
|
|||
display_name: "Bob".to_owned(),
|
||||
})
|
||||
.to_http_request();
|
||||
let cx = Context::new(Some(req));
|
||||
let cx = Context::new(req);
|
||||
let user = cx.current_user();
|
||||
assert!(user.is_authenticated());
|
||||
assert_eq!(user.id(), Some(7));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue