2021-11-10 01:44:22 +00:00
|
|
|
package usermngmt
|
|
|
|
|
2021-11-10 02:54:49 +00:00
|
|
|
import (
|
2021-11-11 08:16:17 +00:00
|
|
|
"github.com/Selly-Modules/usermngmt/cache"
|
2021-11-10 04:01:39 +00:00
|
|
|
"github.com/Selly-Modules/usermngmt/model"
|
2021-11-10 09:06:33 +00:00
|
|
|
"github.com/Selly-Modules/usermngmt/permission"
|
2021-11-10 04:42:23 +00:00
|
|
|
"github.com/Selly-Modules/usermngmt/role"
|
|
|
|
"github.com/Selly-Modules/usermngmt/user"
|
2021-11-10 02:54:49 +00:00
|
|
|
)
|
2021-11-10 01:44:22 +00:00
|
|
|
|
2021-11-10 05:07:58 +00:00
|
|
|
//
|
|
|
|
// User
|
|
|
|
//
|
|
|
|
|
|
|
|
// user methods
|
|
|
|
|
|
|
|
// CreateUser ...
|
2021-11-16 04:11:04 +00:00
|
|
|
func (s Service) CreateUser(payload model.UserCreateOptions) (id string, err error) {
|
2021-11-10 04:42:23 +00:00
|
|
|
return user.Create(payload)
|
2021-11-10 01:44:22 +00:00
|
|
|
}
|
|
|
|
|
2021-11-19 02:59:33 +00:00
|
|
|
// FindUser ...
|
|
|
|
func (s Service) FindUser(userID string) (model.User, error) {
|
|
|
|
return user.FindUser(userID)
|
|
|
|
}
|
|
|
|
|
2021-11-10 05:07:58 +00:00
|
|
|
// UpdateUser ...
|
|
|
|
func (s Service) UpdateUser(userID string, payload model.UserUpdateOptions) error {
|
2021-11-10 04:42:23 +00:00
|
|
|
return user.UpdateByUserID(userID, payload)
|
2021-11-10 01:44:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ChangeUserPassword ...
|
2021-11-10 02:54:49 +00:00
|
|
|
func (s Service) ChangeUserPassword(userID string, payload model.ChangePasswordOptions) error {
|
2021-11-10 04:42:23 +00:00
|
|
|
return user.ChangeUserPassword(userID, payload)
|
2021-11-10 01:44:22 +00:00
|
|
|
}
|
|
|
|
|
2021-11-10 04:42:23 +00:00
|
|
|
// ChangeUserStatus ...
|
2021-11-10 01:44:22 +00:00
|
|
|
func (s Service) ChangeUserStatus(userID, newStatus string) error {
|
2021-11-10 04:42:23 +00:00
|
|
|
return user.ChangeUserStatus(userID, newStatus)
|
2021-11-10 01:44:22 +00:00
|
|
|
}
|
|
|
|
|
2021-11-10 09:53:31 +00:00
|
|
|
// GetAllUsers ...
|
|
|
|
func (s Service) GetAllUsers(query model.UserAllQuery) model.UserAll {
|
2021-11-10 04:42:23 +00:00
|
|
|
return user.All(query)
|
2021-11-10 01:44:22 +00:00
|
|
|
}
|
|
|
|
|
2021-11-19 04:00:18 +00:00
|
|
|
// CountAllUsers ...
|
|
|
|
func (s Service) CountAllUsers(query model.UserCountQuery) int64 {
|
|
|
|
return user.Count(query)
|
|
|
|
}
|
|
|
|
|
2021-11-10 07:50:43 +00:00
|
|
|
// ChangeAllUsersStatus ...
|
|
|
|
func (s Service) ChangeAllUsersStatus(roleID, status string) error {
|
|
|
|
return user.ChangeAllUsersStatus(roleID, status)
|
|
|
|
}
|
|
|
|
|
2021-11-10 09:06:33 +00:00
|
|
|
// LoginWithEmailAndPassword ...
|
|
|
|
func (s Service) LoginWithEmailAndPassword(email, password string) (model.User, error) {
|
|
|
|
return user.LoginWithEmailAndPassword(email, password)
|
|
|
|
}
|
|
|
|
|
2021-11-10 10:02:16 +00:00
|
|
|
// HasPermission ...
|
|
|
|
func (s Service) HasPermission(userID, permission string) bool {
|
|
|
|
return user.HasPermission(userID, permission)
|
2021-11-10 09:53:31 +00:00
|
|
|
}
|
|
|
|
|
2021-11-17 06:32:29 +00:00
|
|
|
// UpdateUserAvatar ...
|
|
|
|
func (s Service) UpdateUserAvatar(userID, avatar string) error {
|
|
|
|
return user.UpdateAvatar(userID, avatar)
|
|
|
|
}
|
|
|
|
|
|
|
|
// DeleteUser ...
|
|
|
|
func (s Service) DeleteUser(userID string) error {
|
|
|
|
return user.Delete(userID)
|
|
|
|
}
|
|
|
|
|
2021-11-10 05:07:58 +00:00
|
|
|
//
|
|
|
|
// Role
|
|
|
|
//
|
|
|
|
|
|
|
|
// role methods
|
|
|
|
|
|
|
|
// CreateRole ...
|
2021-11-16 04:11:04 +00:00
|
|
|
func (s Service) CreateRole(payload model.RoleCreateOptions) (id string, err error) {
|
|
|
|
id, err = role.Create(payload)
|
|
|
|
if err != nil {
|
|
|
|
return
|
2021-11-11 03:20:08 +00:00
|
|
|
}
|
2021-11-16 04:11:04 +00:00
|
|
|
|
2021-11-11 08:16:17 +00:00
|
|
|
cache.Roles()
|
2021-11-16 04:11:04 +00:00
|
|
|
return
|
2021-11-10 01:44:22 +00:00
|
|
|
}
|
2021-11-10 07:50:43 +00:00
|
|
|
|
|
|
|
// UpdateRole ...
|
|
|
|
func (s Service) UpdateRole(roleID string, payload model.RoleUpdateOptions) error {
|
|
|
|
return role.Update(roleID, payload)
|
|
|
|
}
|
|
|
|
|
2021-11-10 08:00:36 +00:00
|
|
|
// GetAllRoles ...
|
|
|
|
func (s Service) GetAllRoles(query model.RoleAllQuery) model.RoleAll {
|
2021-11-10 07:50:43 +00:00
|
|
|
return role.All(query)
|
|
|
|
}
|
2021-11-10 09:06:33 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
// Permission
|
|
|
|
//
|
|
|
|
|
|
|
|
// permission methods
|
|
|
|
|
|
|
|
// CreatePermission ...
|
2021-11-16 04:11:04 +00:00
|
|
|
func (s Service) CreatePermission(payload model.PermissionCreateOptions) (id string, err error) {
|
|
|
|
id, err = permission.Create(payload)
|
|
|
|
if err != nil {
|
|
|
|
return
|
2021-11-11 03:20:08 +00:00
|
|
|
}
|
2021-11-16 05:16:06 +00:00
|
|
|
|
2021-11-11 08:16:17 +00:00
|
|
|
cache.Roles()
|
2021-11-16 04:11:04 +00:00
|
|
|
return
|
2021-11-10 09:06:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// UpdatePermission ...
|
|
|
|
func (s Service) UpdatePermission(permissionID string, payload model.PermissionUpdateOptions) error {
|
2021-11-11 08:16:17 +00:00
|
|
|
if err := permission.Update(permissionID, payload); err != nil {
|
|
|
|
return err
|
2021-11-11 03:20:08 +00:00
|
|
|
}
|
2021-11-11 08:16:17 +00:00
|
|
|
cache.Roles()
|
|
|
|
return nil
|
2021-11-10 09:06:33 +00:00
|
|
|
}
|
|
|
|
|
2021-11-16 08:34:56 +00:00
|
|
|
// DeletePermission ...
|
|
|
|
func (s Service) DeletePermission(permissionID string) error {
|
|
|
|
if err := permission.Delete(permissionID); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
cache.Roles()
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2021-11-10 09:06:33 +00:00
|
|
|
// GetAllPermissions ...
|
|
|
|
func (s Service) GetAllPermissions(query model.PermissionAllQuery) model.PermissionAll {
|
|
|
|
return permission.All(query)
|
|
|
|
}
|