123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package service
- import (
- "context"
- "sort"
- "go-common/library/log"
- model "go-common/app/admin/main/macross/model/manager"
- )
- // Role get role.
- func (s *Service) Role(c context.Context, system string) (res []*model.Role) {
- for _, role := range s.role[system] {
- if role == nil {
- continue
- }
- role.Auths = make(map[string]*model.Auth)
- if authIDs, ok := s.authRelation[role.RoleID]; ok {
- if auths, ok := s.auth[system]; ok {
- for _, authID := range authIDs {
- if auth, ok := auths[authID]; ok {
- role.Auths[auth.AuthFlag] = auth
- }
- }
- }
- }
- res = append(res, role)
- }
- sort.Sort(model.Roles(res))
- return
- }
- // SaveRole save role.
- func (s *Service) SaveRole(c context.Context, roleID int64, system, roleName string) (err error) {
- var rows int64
- if roleID == 0 {
- if rows, err = s.dao.AddRole(c, system, roleName); err != nil {
- log.Error("s.dao.AddRole(%s, %s) error(%v)", system, roleName, err)
- return
- }
- } else {
- if rows, err = s.dao.UpRole(c, roleName, roleID); err != nil {
- log.Error("s.dao.UpRole(%s, %d) error(%v)", roleName, roleID, err)
- return
- }
- }
- if rows != 0 {
- // update cache
- s.loadRoleCache()
- }
- return
- }
- // DelRole del role.
- func (s *Service) DelRole(c context.Context, roleID int64) (err error) {
- var rows int64
- if rows, err = s.dao.DelRole(c, roleID); err != nil {
- log.Error("s.dao.DelRole(%d) error(%s)", roleID, err)
- return
- } else if rows != 0 {
- // update cache
- s.loadRoleCache()
- if rows, err = s.dao.CleanAuthRelationByRole(c, roleID); err != nil {
- log.Error("s.dao.CleanAuthRelationByRole(%d) error(%s)", roleID, err)
- return
- } else if rows != 0 {
- s.loadAuthRelationCache()
- }
- }
- return
- }
|