61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package service
|
|
|
|
import (
|
|
"github.com/google/uuid"
|
|
"mangezmieux-backend/internal/acl/model"
|
|
"mangezmieux-backend/internal/acl/sql"
|
|
model2 "mangezmieux-backend/internal/users/model"
|
|
)
|
|
|
|
type service struct {
|
|
dao sql.Dao
|
|
}
|
|
|
|
func (s service) GetRoleForCurrentUser(user *model2.User) (*model.UserRight, error) {
|
|
userId, err := uuid.Parse(user.ID.String())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
userRole, err := s.GetUserRoleByUser(userId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
userRight := &model.UserRight{
|
|
UserRole: userRole,
|
|
}
|
|
return userRight, nil
|
|
}
|
|
|
|
func (s service) GetAllRole() ([]*model.Role, error) {
|
|
roles, err := s.dao.GetAllRole()
|
|
return roles, err
|
|
}
|
|
|
|
func (s service) GetUserRoleByUser(id uuid.UUID) ([]*model.UserRole, error) {
|
|
userRoles, err := s.dao.GetUserRoleByUser(id)
|
|
return userRoles, err
|
|
}
|
|
|
|
func (s service) GetRole(id uuid.UUID) (*model.Role, error) {
|
|
role, err := s.dao.GetRole(id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return role, nil
|
|
}
|
|
|
|
type Service interface {
|
|
GetAllRole() ([]*model.Role, error)
|
|
GetRoleForCurrentUser(user *model2.User) (*model.UserRight, error)
|
|
GetUserRoleByUser(id uuid.UUID) ([]*model.UserRole, error)
|
|
}
|
|
|
|
func NewService(dao sql.Dao) Service {
|
|
return &service{
|
|
dao: dao,
|
|
}
|
|
}
|