This commit is contained in:
2026-10-03 13:22:11 +07:00
parent 05090722a0
commit 2caa2c1a88
74 changed files with 44 additions and 676 deletions
-3
View File
@@ -1,7 +1,6 @@
// Package roles defines application roles and role checks.
package roles
// Роли пользователей системы.
const (
Admin = "admin"
Author = "author"
@@ -9,7 +8,6 @@ const (
User = "user"
)
// AllRoles — список всех ролей.
var AllRoles = []string{
Admin,
Author,
@@ -17,7 +15,6 @@ var AllRoles = []string{
User,
}
// IHasRole — контракт субъекта, у которого можно проверить наличие роли.
type IHasRole interface {
HasRole(role string) bool
}
-2
View File
@@ -1,7 +1,5 @@
package roles
// HasRole возвращает true, если у субъекта есть роль; администратор
// проходит проверку любой роли.
func HasRole(claims IHasRole, role string) bool {
if claims.HasRole(Admin) {
return true
-2
View File
@@ -2,7 +2,6 @@ package roles
import "slices"
// subject — реализация IHasRole: субъект с фиксированным набором ролей.
type subject struct {
roles []string
}
@@ -12,7 +11,6 @@ func NewSubject(roles ...string) IHasRole {
return &subject{roles: roles}
}
// HasRole возвращает true, если роль есть в наборе ролей субъекта.
func (s *subject) HasRole(role string) bool {
return slices.Contains(s.roles, role)
}