initial commit
This commit is contained in:
60
internal/repository/rbac_repository.go
Normal file
60
internal/repository/rbac_repository.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"git.kirlllll.ru/volontery/backend/internal/database"
|
||||
)
|
||||
|
||||
// RBACRepository предоставляет методы для работы с RBAC
|
||||
type RBACRepository struct {
|
||||
queries *database.Queries
|
||||
}
|
||||
|
||||
// NewRBACRepository создает новый RBACRepository
|
||||
func NewRBACRepository(queries *database.Queries) *RBACRepository {
|
||||
return &RBACRepository{queries: queries}
|
||||
}
|
||||
|
||||
// GetUserRoles получает роли пользователя
|
||||
func (r *RBACRepository) GetUserRoles(ctx context.Context, userID int64) ([]database.Role, error) {
|
||||
return r.queries.GetUserRoles(ctx, userID)
|
||||
}
|
||||
|
||||
// AssignRoleToUser назначает роль пользователю
|
||||
func (r *RBACRepository) AssignRoleToUser(ctx context.Context, params database.AssignRoleToUserParams) (*database.UserRole, error) {
|
||||
result, err := r.queries.AssignRoleToUser(ctx, params)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// GetRoleByName получает роль по имени
|
||||
func (r *RBACRepository) GetRoleByName(ctx context.Context, name string) (*database.Role, error) {
|
||||
result, err := r.queries.GetRoleByName(ctx, name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// UserHasRole проверяет наличие роли у пользователя
|
||||
func (r *RBACRepository) UserHasRole(ctx context.Context, params database.UserHasRoleParams) (bool, error) {
|
||||
return r.queries.UserHasRole(ctx, params)
|
||||
}
|
||||
|
||||
// UserHasRoleByName проверяет наличие роли по имени
|
||||
func (r *RBACRepository) UserHasRoleByName(ctx context.Context, params database.UserHasRoleByNameParams) (bool, error) {
|
||||
return r.queries.UserHasRoleByName(ctx, params)
|
||||
}
|
||||
|
||||
// GetUserPermissions получает все разрешения пользователя
|
||||
func (r *RBACRepository) GetUserPermissions(ctx context.Context, userID int64) ([]database.GetUserPermissionsRow, error) {
|
||||
return r.queries.GetUserPermissions(ctx, userID)
|
||||
}
|
||||
|
||||
// UserHasPermission проверяет наличие разрешения у пользователя
|
||||
func (r *RBACRepository) UserHasPermission(ctx context.Context, params database.UserHasPermissionParams) (bool, error) {
|
||||
return r.queries.UserHasPermission(ctx, params)
|
||||
}
|
||||
Reference in New Issue
Block a user