acl

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 25, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultPermissions

func DefaultPermissions() []models.Permission

DefaultPermissions returns default system permissions

func DefaultRoles

func DefaultRoles() []models.Role

DefaultRoles returns default system roles

Types

type RBAC

type RBAC struct {
	// contains filtered or unexported fields
}

RBAC manages role-based access control

func NewRBAC

func NewRBAC(db *gorm.DB) *RBAC

NewRBAC creates a new RBAC instance

func (*RBAC) AssignPermissionToRole

func (r *RBAC) AssignPermissionToRole(roleID, permissionID string) error

AssignPermissionToRole assigns a permission to a role

func (*RBAC) AssignRoleToUser

func (r *RBAC) AssignRoleToUser(userID, roleID string) error

AssignRoleToUser assigns a role to a user

func (*RBAC) CreatePermission

func (r *RBAC) CreatePermission(permission *models.Permission) error

CreatePermission creates a new permission

func (*RBAC) CreateRole

func (r *RBAC) CreateRole(role *models.Role) error

CreateRole creates a new role

func (*RBAC) DeletePermission

func (r *RBAC) DeletePermission(id string) error

DeletePermission deletes a permission

func (*RBAC) DeleteRole

func (r *RBAC) DeleteRole(id string) error

DeleteRole deletes a role

func (*RBAC) GetPermissionByID

func (r *RBAC) GetPermissionByID(id string) (*models.Permission, error)

GetPermissionByID retrieves a permission by its ID

func (*RBAC) GetPermissionBySlug

func (r *RBAC) GetPermissionBySlug(slug string) (*models.Permission, error)

GetPermissionBySlug retrieves a permission by its slug

func (*RBAC) GetRoleByID

func (r *RBAC) GetRoleByID(id string) (*models.Role, error)

GetRoleByID retrieves a role by its ID

func (*RBAC) GetRoleBySlug

func (r *RBAC) GetRoleBySlug(slug string) (*models.Role, error)

GetRoleBySlug retrieves a role by its slug

func (*RBAC) GetUserPermissions

func (r *RBAC) GetUserPermissions(userID string) ([]string, error)

GetUserPermissions returns all permissions (direct + from roles) for a user

func (*RBAC) GetUserRoles

func (r *RBAC) GetUserRoles(userID string) ([]models.Role, error)

GetUserRoles returns all roles assigned to a user

func (*RBAC) GivePermissionToUser

func (r *RBAC) GivePermissionToUser(userID, permissionID string) error

GivePermissionToUser gives a direct permission to a user

func (*RBAC) ListPermissions

func (r *RBAC) ListPermissions() ([]models.Permission, error)

ListPermissions lists all permissions

func (*RBAC) ListRoles

func (r *RBAC) ListRoles() ([]models.Role, error)

ListRoles lists all roles

func (*RBAC) RemovePermissionFromRole

func (r *RBAC) RemovePermissionFromRole(roleID, permissionID string) error

RemovePermissionFromRole removes a permission from a role

func (*RBAC) RemoveRoleFromUser

func (r *RBAC) RemoveRoleFromUser(userID, roleID string) error

RemoveRoleFromUser removes a role from a user

func (*RBAC) RevokePermissionFromUser

func (r *RBAC) RevokePermissionFromUser(userID, permissionID string) error

RevokePermissionFromUser revokes a direct permission from a user

func (*RBAC) SeedDefaultData

func (r *RBAC) SeedDefaultData() error

SeedDefaultData creates default roles and permissions

func (*RBAC) UpdatePermission

func (r *RBAC) UpdatePermission(permission *models.Permission) error

UpdatePermission updates a permission

func (*RBAC) UpdateRole

func (r *RBAC) UpdateRole(role *models.Role) error

UpdateRole updates a role

func (*RBAC) UserHasPermission

func (r *RBAC) UserHasPermission(userID, permissionSlug string) (bool, error)

UserHasPermission checks if a user has a specific permission

func (*RBAC) UserHasRole

func (r *RBAC) UserHasRole(userID, roleSlug string) (bool, error)

UserHasRole checks if a user has a specific role

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL