-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathserver_superadmin.go
More file actions
31 lines (27 loc) · 944 Bytes
/
server_superadmin.go
File metadata and controls
31 lines (27 loc) · 944 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package caskin
// AddSuperadmin
// add the user as superadmin role in superadmin domain
// 1. no permission checking
func (s *server) AddSuperadmin(user User) error {
return s.writeSuperadminUser(user, s.Enforcer.AddRoleForUserInDomain)
}
// DeleteSuperadmin
// delete a user from superadmin
// 1. no permission checking
func (s *server) DeleteSuperadmin(user User) error {
return s.writeSuperadminUser(user, s.Enforcer.RemoveRoleForUserInDomain)
}
// GetSuperadmin
// get all superadmin user
// 1. no permission checking
func (s *server) GetSuperadmin() ([]User, error) {
us := s.Enforcer.GetUsersForRoleInDomain(GetSuperadminRole(), GetSuperadminDomain())
id := ID(us)
return s.DB.GetUserByID(id)
}
func (s *server) writeSuperadminUser(user User, fn func(User, Role, Domain) error) error {
if err := s.IDInterfaceValidAndExistsCheck(user); err != nil {
return err
}
return fn(user, GetSuperadminRole(), GetSuperadminDomain())
}