Documentation
¶
Index ¶
- type ACLRepository
- func (r *ACLRepository) AssignPermissionToRole(ctx context.Context, roleID, permissionID uuid.UUID) error
- func (r *ACLRepository) AssignPermissionToUser(ctx context.Context, userID, permissionID uuid.UUID) error
- func (r *ACLRepository) AssignRole(ctx context.Context, userID, roleID uuid.UUID) error
- func (r *ACLRepository) CreatePermission(ctx context.Context, codename, description string) (*models.Permission, error)
- func (r *ACLRepository) CreateRole(ctx context.Context, name, description string) (*models.Role, error)
- func (r *ACLRepository) DeletePermissionByCodename(ctx context.Context, codename string) error
- func (r *ACLRepository) DeleteRoleByName(ctx context.Context, name string) error
- func (r *ACLRepository) GetPermissionIDByCodename(ctx context.Context, codename string) (uuid.UUID, error)
- func (r *ACLRepository) GetRoleIDByName(ctx context.Context, name string) (uuid.UUID, error)
- func (r *ACLRepository) GetUserIDByEmail(ctx context.Context, email string) (uuid.UUID, error)
- func (r *ACLRepository) ListPermissions(ctx context.Context) ([]models.Permission, error)
- func (r *ACLRepository) ListRolePermissionCodenames(ctx context.Context, roleID uuid.UUID) ([]string, error)
- func (r *ACLRepository) ListRoles(ctx context.Context) ([]models.Role, error)
- func (r *ACLRepository) ListUserDirectPermissionCodenames(ctx context.Context, userID uuid.UUID) ([]string, error)
- func (r *ACLRepository) ListUserRoleNames(ctx context.Context, userID uuid.UUID) ([]string, error)
- func (r *ACLRepository) RevokePermissionFromRole(ctx context.Context, roleID, permissionID uuid.UUID) error
- func (r *ACLRepository) RevokePermissionFromUser(ctx context.Context, userID, permissionID uuid.UUID) error
- func (r *ACLRepository) RevokeRole(ctx context.Context, userID, roleID uuid.UUID) error
- func (r *ACLRepository) SetSuperuserByEmail(ctx context.Context, email string, super bool) error
- func (r *ACLRepository) UserEffectivePermissionCodenames(ctx context.Context, userID uuid.UUID) (map[string]struct{}, error)
- func (r *ACLRepository) UserHasRoleName(ctx context.Context, userID uuid.UUID, roleName string) (bool, error)
- func (r *ACLRepository) UserIsSuperuser(ctx context.Context, userID uuid.UUID) (bool, error)
- func (r *ACLRepository) UserRoleNames(ctx context.Context, userID uuid.UUID) ([]string, error)
- type BlogRepository
- func (r *BlogRepository) Create(ctx context.Context, m *models.Blog) error
- func (r *BlogRepository) Delete(ctx context.Context, id uuid.UUID) error
- func (r *BlogRepository) GetByID(ctx context.Context, id uuid.UUID) (*models.Blog, error)
- func (r *BlogRepository) List(ctx context.Context, limit, offset int) ([]*models.Blog, error)
- func (r *BlogRepository) ListByAuthor(ctx context.Context, authorID uuid.UUID, limit, offset int) ([]*models.Blog, error)
- func (r *BlogRepository) Update(ctx context.Context, m *models.Blog) error
- type UserRepository
- func (r *UserRepository) Create(ctx context.Context, u *models.User) error
- func (r *UserRepository) Delete(ctx context.Context, id uuid.UUID) error
- func (r *UserRepository) GetByEmail(ctx context.Context, email string) (*models.User, error)
- func (r *UserRepository) GetByID(ctx context.Context, id uuid.UUID) (*models.User, error)
- func (r *UserRepository) List(ctx context.Context, limit, offset int) ([]*models.User, error)
- func (r *UserRepository) Update(ctx context.Context, u *models.User) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ACLRepository ¶
type ACLRepository struct {
// contains filtered or unexported fields
}
ACLRepository manages permissions, roles, and assignments.
func NewACLRepository ¶
func NewACLRepository(db *pgxpool.Pool) *ACLRepository
NewACLRepository returns a new ACLRepository.
func (*ACLRepository) AssignPermissionToRole ¶
func (r *ACLRepository) AssignPermissionToRole(ctx context.Context, roleID, permissionID uuid.UUID) error
AssignPermissionToRole links permission to role.
func (*ACLRepository) AssignPermissionToUser ¶
func (r *ACLRepository) AssignPermissionToUser(ctx context.Context, userID, permissionID uuid.UUID) error
AssignPermissionToUser links permission directly to user.
func (*ACLRepository) AssignRole ¶
AssignRole links a user to a role.
func (*ACLRepository) CreatePermission ¶
func (r *ACLRepository) CreatePermission(ctx context.Context, codename, description string) (*models.Permission, error)
CreatePermission inserts a permission by codename.
func (*ACLRepository) CreateRole ¶
func (r *ACLRepository) CreateRole(ctx context.Context, name, description string) (*models.Role, error)
CreateRole inserts a role by name.
func (*ACLRepository) DeletePermissionByCodename ¶
func (r *ACLRepository) DeletePermissionByCodename(ctx context.Context, codename string) error
DeletePermissionByCodename removes a permission by codename.
func (*ACLRepository) DeleteRoleByName ¶
func (r *ACLRepository) DeleteRoleByName(ctx context.Context, name string) error
DeleteRoleByName removes a role by name.
func (*ACLRepository) GetPermissionIDByCodename ¶
func (r *ACLRepository) GetPermissionIDByCodename(ctx context.Context, codename string) (uuid.UUID, error)
GetPermissionIDByCodename returns permission id or ErrNoRows.
func (*ACLRepository) GetRoleIDByName ¶
GetRoleIDByName returns role id or ErrNoRows.
func (*ACLRepository) GetUserIDByEmail ¶
GetUserIDByEmail returns user id or ErrNoRows.
func (*ACLRepository) ListPermissions ¶
func (r *ACLRepository) ListPermissions(ctx context.Context) ([]models.Permission, error)
ListPermissions returns all permissions.
func (*ACLRepository) ListRolePermissionCodenames ¶
func (r *ACLRepository) ListRolePermissionCodenames(ctx context.Context, roleID uuid.UUID) ([]string, error)
ListRolePermissionCodenames returns permission codenames for a role.
func (*ACLRepository) ListUserDirectPermissionCodenames ¶
func (r *ACLRepository) ListUserDirectPermissionCodenames(ctx context.Context, userID uuid.UUID) ([]string, error)
ListUserDirectPermissionCodenames returns codenames granted directly to user.
func (*ACLRepository) ListUserRoleNames ¶
ListUserRoleNames returns role names for a user (for admin UI).
func (*ACLRepository) RevokePermissionFromRole ¶
func (r *ACLRepository) RevokePermissionFromRole(ctx context.Context, roleID, permissionID uuid.UUID) error
RevokePermissionFromRole removes link.
func (*ACLRepository) RevokePermissionFromUser ¶
func (r *ACLRepository) RevokePermissionFromUser(ctx context.Context, userID, permissionID uuid.UUID) error
RevokePermissionFromUser removes direct user permission.
func (*ACLRepository) RevokeRole ¶
RevokeRole removes user-role link.
func (*ACLRepository) SetSuperuserByEmail ¶
SetSuperuserByEmail sets is_superuser for a user identified by email.
func (*ACLRepository) UserEffectivePermissionCodenames ¶
func (r *ACLRepository) UserEffectivePermissionCodenames(ctx context.Context, userID uuid.UUID) (map[string]struct{}, error)
UserEffectivePermissionCodenames returns distinct permission codenames for a user (roles + direct).
func (*ACLRepository) UserHasRoleName ¶
func (r *ACLRepository) UserHasRoleName(ctx context.Context, userID uuid.UUID, roleName string) (bool, error)
UserHasRoleName checks if user has the named role.
func (*ACLRepository) UserIsSuperuser ¶
UserIsSuperuser returns the is_superuser flag for a user.
func (*ACLRepository) UserRoleNames ¶
UserRoleNames returns role names for a user, sorted.
type BlogRepository ¶
type BlogRepository struct {
// contains filtered or unexported fields
}
BlogRepository provides blog persistence.
func NewBlogRepository ¶
func NewBlogRepository(db *pgxpool.Pool) *BlogRepository
NewBlogRepository returns a new BlogRepository.
type UserRepository ¶
type UserRepository struct {
// contains filtered or unexported fields
}
UserRepository provides user persistence.
func NewUserRepository ¶
func NewUserRepository(db *pgxpool.Pool) *UserRepository
NewUserRepository returns a new UserRepository.
func (*UserRepository) Create ¶
Create inserts a user and sets ID (if not set), CreatedAt, UpdatedAt. ID is generated in the app so new rows never have NULL id regardless of DB default.
func (*UserRepository) GetByEmail ¶
GetByEmail returns a user by email.