34 lines
1.2 KiB
Go
34 lines
1.2 KiB
Go
package usecase
|
|
|
|
import (
|
|
"backend/pkg/permission/domain/permission"
|
|
"context"
|
|
)
|
|
|
|
// RolePermissionUseCase 角色權限業務邏輯介面
|
|
type RolePermissionUseCase interface {
|
|
// GetByRoleUID 取得角色的所有權限
|
|
GetByRoleUID(ctx context.Context, roleUID string) (permission.Permissions, error)
|
|
// GetByUserUID 取得使用者的所有權限
|
|
GetByUserUID(ctx context.Context, userUID string) (*UserPermissionResponse, error)
|
|
// UpdateRolePermissions 更新角色權限
|
|
UpdateRolePermissions(ctx context.Context, roleUID string, permissions permission.Permissions) error
|
|
// CheckPermission 檢查角色是否有權限
|
|
CheckPermission(ctx context.Context, roleUID, path, method string) (*PermissionCheckResponse, error)
|
|
}
|
|
|
|
// UserPermissionResponse 使用者權限回應
|
|
type UserPermissionResponse struct {
|
|
UserUID string `json:"user_uid"`
|
|
RoleUID string `json:"role_uid"`
|
|
RoleName string `json:"role_name"`
|
|
Permissions permission.Permissions `json:"permissions"`
|
|
}
|
|
|
|
// PermissionCheckResponse 權限檢查回應
|
|
type PermissionCheckResponse struct {
|
|
Allowed bool `json:"allowed"`
|
|
PermissionName string `json:"permission_name,omitempty"`
|
|
PlainCode bool `json:"plain_code"`
|
|
}
|