Use when configuring authorization and permissions in reinhardt-web applications - covers Permission trait, Guard types, guard! macro, model/object permissions, and auth extractors
How this skill is triggered — by the user, by Claude, or both
Slash command
/reinhardt-agents-plugin:authorizationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guide developers through authorization setup using reinhardt-auth, including permission classes, guard types, the `guard!` macro, and auth extractors.
Guide developers through authorization setup using reinhardt-auth, including permission classes, guard types, the guard! macro, and auth extractors.
#[permission_required] attributeGuard<P>, AuthInfo, or AuthUser<T>references/guards.md for Guard types and guard! macroreferences/permissions.mdGuard<P> in handler parameters (DI) or #[permission_required] attributeguard! macro for combining permissions (&, |, !)references/extractors.md for AuthInfo and AuthUser<T>AuthInfo for lightweight access (reads request extensions, no DB query)AuthUser<T> for full user model (loads from DB)#[inject] — requires params featurereferences/permissions.md for the Permission traitasync fn has_permission(&self, context: &PermissionContext<'_>) -> boolreferences/permissions.md (Object Permissions section)ObjectPermissionChecker traitObjectPermission<T> wrapper to create Permission implObjectPermissionManagerGuard<P> is the primary mechanism for DI-based permission checks (returns 403 on failure)Public guard always succeeds (equivalent to AllowAny in guard context)guard! macro precedence: ! > & > | — use parentheses for clarityAuthInfo is lightweight (no DB query) — use when you only need auth stateAuthUser<T> loads from DB — use when you need user model fieldsCurrentUser<T> is DEPRECATED — use AuthUser<T> instead#[permission_required] is for attribute-based access control on viewsget_permissions_for_action()../authentication/SKILL.md../dependency-injection/references/di-patterns.md../api-development/references/auth-config.mdFor the latest authorization API:
reinhardt/crates/reinhardt-auth/src/core/permission.rs for Permission traitreinhardt/crates/reinhardt-auth/src/guard.rs for Guard, Public, All, Any, Notreinhardt/crates/reinhardt-auth/macros/src/lib.rs for guard! macroreinhardt/crates/reinhardt-auth/src/model_permissions.rs for DjangoModelPermissionsreinhardt/crates/reinhardt-auth/src/object_permissions.rs for ObjectPermissionreinhardt/crates/reinhardt-auth/src/advanced_permissions.rs for RoleBasedPermissionreinhardt/crates/reinhardt-auth/src/ip_permission.rs for IP-based permissionsreinhardt/crates/reinhardt-auth/src/time_based_permission.rs for time-based permissionsreinhardt/crates/reinhardt-auth/src/rate_limit_permission.rs for rate limitingnpx claudepluginhub kent8192/reinhardt-agents-plugin --plugin reinhardt-agents-pluginProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.