support user role attachment

This commit is contained in:
yanghao05
2023-02-05 13:30:43 +08:00
parent 285e1f1c51
commit ee631b9714
17 changed files with 518 additions and 50 deletions

39
modules/auth/service/user.go Executable file
View File

@@ -0,0 +1,39 @@
package service
import (
"atom/modules/auth/dao"
"context"
)
type UserService interface {
AttachRole(context.Context, int, int) error
}
type userService struct {
userRoleDao dao.UserRoleDao
userDao dao.UserDao
}
func NewUserService(
userRoleDao dao.UserRoleDao,
userDao dao.UserDao,
) UserService {
return &userService{
userRoleDao: userRoleDao,
userDao: userDao,
}
}
func (svc *userService) AttachRole(ctx context.Context, userID, roleID int) error {
if svc.userRoleDao.Exists(ctx, userID) {
return svc.userRoleDao.Update(ctx, userID, roleID)
}
return svc.userRoleDao.Create(ctx, userID, roleID)
}
func (svc *userService) DetachRole(ctx context.Context, userID, roleID int) error {
if !svc.userRoleDao.Exists(ctx, userID) {
return nil
}
return svc.userRoleDao.Delete(ctx, userID, roleID)
}