Expand description
§Reinhardt Auth
Authentication and authorization system for Reinhardt framework.
§Features
- DjangoModelPermissions: Django-style model permissions with
app_label.action_modelformat - DjangoModelPermissionsOrAnonReadOnly: Anonymous read access for unauthenticated users
- Object-Level Permissions: Fine-grained access control on individual objects
- User Management: CRUD operations for users with password hashing
- Group Management: User groups and permission assignment
- REST API Authentication: Multiple authentication backends (JWT, Token, Session, OAuth2)
- Standard Permissions: Permission classes for common authorization scenarios
- createsuperuser Command: CLI tool for creating admin users
§Security Note: Client-Side vs Server-Side Checks
Authentication state exposed via reinhardt_http::AuthState (e.g.,
is_authenticated(), is_admin()) is populated by server-side
middleware and stored in request extensions. When this state is
forwarded to client-side code (e.g., via WASM or JSON responses),
it must only be used for UI display purposes (showing/hiding
elements). All authorization decisions must be enforced server-side
through middleware and permission classes provided by this crate.
Re-exports§
pub use current_user::CurrentUser;pub use core::AllowAny;pub use core::AnonymousUser;pub use core::AuthBackend;pub use core::BaseUser;pub use core::CompositeAuthBackend;pub use core::FullUser;pub use core::IsActiveUser;pub use core::IsAdminUser;pub use core::IsAuthenticated;pub use core::IsAuthenticatedOrReadOnly;pub use core::PasswordHasher;pub use core::Permission;pub use core::PermissionContext;pub use core::PermissionsMixin;pub use core::SimpleUser;pub use core::User;pub use core::permission_operators;pub use advanced_permissions::ObjectPermission as AdvancedObjectPermission;pub use advanced_permissions::RoleBasedPermission;pub use base_user_manager::BaseUserManager;pub use basic::BasicAuthentication as HttpBasicAuth;pub use group_management::CreateGroupData;pub use group_management::Group;pub use group_management::GroupManagementError;pub use group_management::GroupManagementResult;pub use group_management::GroupManager;pub use ip_permission::CidrRange;pub use ip_permission::IpBlacklistPermission;pub use ip_permission::IpWhitelistPermission;pub use mfa::MFAAuthentication as MfaManager;pub use model_permissions::DjangoModelPermissions;pub use model_permissions::DjangoModelPermissionsOrAnonReadOnly;pub use model_permissions::ModelPermission;pub use object_permissions::ObjectPermission;pub use object_permissions::ObjectPermissionChecker;pub use object_permissions::ObjectPermissionManager;pub use permission_operators::AndPermission;pub use permission_operators::NotPermission;pub use permission_operators::OrPermission;pub use remote_user::RemoteUserAuthentication as RemoteUserAuth;pub use rest_authentication::BasicAuthConfig;pub use rest_authentication::CompositeAuthentication;pub use rest_authentication::RemoteUserAuthentication;pub use rest_authentication::RestAuthentication;pub use rest_authentication::SessionAuthConfig;pub use rest_authentication::SessionAuthentication;pub use rest_authentication::TokenAuthConfig;pub use rest_authentication::TokenAuthentication;pub use time_based_permission::DateRange;pub use time_based_permission::TimeBasedPermission;pub use time_based_permission::TimeWindow;pub use user_management::CreateUserData;pub use user_management::UpdateUserData;pub use user_management::UserManagementError;pub use user_management::UserManagementResult;pub use user_management::UserManager;
Modules§
- advanced_
permissions - Advanced Permission System
- base_
user_ manager - basic
- HTTP Basic Authentication
- core
- reinhardt-core-auth
- current_
user - CurrentUser Injectable for dependency injection
- default_
user - default_
user_ manager - group_
management - Group Management
- ip_
permission - IP-based access control permissions
- mfa
- Multi-Factor Authentication (MFA)
- model_
permissions - Model-based Permissions
- object_
permissions - Object-Level Permissions
- remote_
user - Remote User Authentication
- rest_
authentication - REST API Authentication
- sessions
- Reinhardt Sessions
- time_
based_ permission - Time-based access control permissions
- user_
management - User Management
Enums§
- Authentication
Error - Authentication errors
Traits§
- Authentication
Backend - Authentication backend trait