Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context struct { ID int `json:"id" db:"id"` Name string `json:"name" db:"name"` Description string `json:"description" db:"description"` }
Context model for context-specific permissions
type Permission ¶
type Permission struct { ID int `json:"id" db:"id"` Name string `json:"name" db:"name"` Description string `json:"description" db:"description"` }
Permission model Permission model
type Resource ¶
type Resource struct { ID int `json:"id" db:"id"` Name string `json:"name" db:"name"` Description string `json:"description" db:"description"` }
Resource model
type Role ¶
type Role struct { ID int `json:"id" db:"id"` Name string `json:"name" db:"name"` Description string `json:"description" db:"description"` ParentRoleID *int `json:"parent_role_id,omitempty" db:"parent_role_id"` ParentRole *Role `json:"parent_role,omitempty"` ChildRoles []Role `json:"child_roles,omitempty"` Permissions []RolePermission `json:"permissions,omitempty"` }
Role model with hierarchical support
type RolePermission ¶
type RolePermission struct { RoleID int `json:"role_id" db:"role_id"` PermissionID int `json:"permission_id" db:"permission_id"` ResourceID int `json:"resource_id" db:"resource_id"` ContextID *int `json:"context_id,omitempty" db:"context_id"` Role *Role `json:"role,omitempty"` Permission *Permission `json:"permission,omitempty"` Resource *Resource `json:"resource,omitempty"` Context *Context `json:"context,omitempty"` }
Enhanced RolePermission with resource and context
type Session ¶
type Session struct { SessionID string `json:"session_id" redis:"session_id"` UserID int `json:"user_id" redis:"user_id"` }
Session model
type UploadInput ¶
type UploadInput struct { File io.Reader Name string Size int64 ContentType string BucketName string }
AWS Upload Input
type User ¶
type User struct { ID int `json:"id" db:"id"` Username string `json:"username" db:"username"` Email string `json:"email" db:"email"` Password string `json:"-" db:"password"` CreatedAt time.Time `json:"created_at" db:"created_at"` UpdatedAt time.Time `json:"updated_at" db:"updated_at"` LoginAt *time.Time `json:"login_at,omitempty" db:"login_at"` Roles []Role `json:"roles,omitempty"` Permissions []RolePermission `json:"permissions,omitempty"` }
User full model User model with enhanced fields
func (*User) ComparePasswords ¶
Compare user password and payload
type UserRole ¶
type UserRole struct { UserID int `json:"user_id" db:"user_id"` RoleID int `json:"role_id" db:"role_id"` }
UserRole junction table
type UserWithRole ¶
type UserWithToken ¶
Find user query
Click to show internal directories.
Click to hide internal directories.