Documentation
¶
Index ¶
- Variables
- type MemoryStorage
- func (s *MemoryStorage) AddRolePermission(roleID, resource, action string) error
- func (s *MemoryStorage) AddUserRole(userID, roleID string) error
- func (s *MemoryStorage) CreateRole(role *Role) error
- func (s *MemoryStorage) DeleteRole(roleID string) error
- func (s *MemoryStorage) GetRole(roleID string) (*Role, error)
- func (s *MemoryStorage) GetUserRoles(userID string) ([]string, error)
- func (s *MemoryStorage) HasPermission(roleID, resource, action string) (bool, error)
- func (s *MemoryStorage) ListRoles() ([]*Role, error)
- func (s *MemoryStorage) RemoveRolePermission(roleID, resource string) error
- func (s *MemoryStorage) RemoveUserRole(userID, roleID string) error
- func (s *MemoryStorage) UpdateRole(role *Role) error
- type Role
- type Storage
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrRoleNotFound = errors.New("storage: role not found") ErrRoleAlreadyExists = errors.New("storage: role already exists") ErrUserAlreadyHasRole = errors.New("storage: user already has role") ErrUserDoesNotHaveRole = errors.New("storage: user does not have role") ErrPermissionNotFound = errors.New("storage: permission not found") )
Common errors
Functions ¶
This section is empty.
Types ¶
type MemoryStorage ¶
type MemoryStorage struct {
// contains filtered or unexported fields
}
MemoryStorage implements Storage interface using in-memory maps
func (*MemoryStorage) AddRolePermission ¶
func (s *MemoryStorage) AddRolePermission(roleID, resource, action string) error
func (*MemoryStorage) AddUserRole ¶
func (s *MemoryStorage) AddUserRole(userID, roleID string) error
func (*MemoryStorage) CreateRole ¶
func (s *MemoryStorage) CreateRole(role *Role) error
func (*MemoryStorage) DeleteRole ¶
func (s *MemoryStorage) DeleteRole(roleID string) error
func (*MemoryStorage) GetUserRoles ¶
func (s *MemoryStorage) GetUserRoles(userID string) ([]string, error)
func (*MemoryStorage) HasPermission ¶
func (s *MemoryStorage) HasPermission(roleID, resource, action string) (bool, error)
func (*MemoryStorage) ListRoles ¶
func (s *MemoryStorage) ListRoles() ([]*Role, error)
func (*MemoryStorage) RemoveRolePermission ¶
func (s *MemoryStorage) RemoveRolePermission(roleID, resource string) error
func (*MemoryStorage) RemoveUserRole ¶
func (s *MemoryStorage) RemoveUserRole(userID, roleID string) error
func (*MemoryStorage) UpdateRole ¶
func (s *MemoryStorage) UpdateRole(role *Role) error
type Role ¶
type Role struct { ID string Name string Description string Permissions map[string][]string // resource -> []actions CreatedAt time.Time UpdatedAt time.Time }
Role represents a role in the RBAC system.
type Storage ¶
type Storage interface { // Role management CreateRole(role *Role) error GetRole(roleID string) (*Role, error) UpdateRole(role *Role) error DeleteRole(roleID string) error ListRoles() ([]*Role, error) // User-Role management AddUserRole(userID, roleID string) error RemoveUserRole(userID, roleID string) error GetUserRoles(userID string) ([]string, error) // Permission management AddRolePermission(roleID, resource, action string) error RemoveRolePermission(roleID, resource string) error HasPermission(roleID, resource, action string) (bool, error) }
Storage defines the interface for persistence operations.
func NewMemoryStorage ¶
func NewMemoryStorage() Storage
NewMemoryStorage creates a new memory-based storage
Click to show internal directories.
Click to hide internal directories.