|
@@ -90,54 +90,80 @@ func RoleDelete(param protocol.RequestRoleDelete) error { |
|
@@ -90,54 +90,80 @@ func RoleDelete(param protocol.RequestRoleDelete) error { |
90
|
return nil
|
90
|
return nil
|
91
|
}
|
91
|
}
|
92
|
|
92
|
|
|
|
93
|
+///编辑角色
|
93
|
func RoleEdit(param protocol.RequestRoleEdit) (*protocol.ResponseRoleInfo, error) {
|
94
|
func RoleEdit(param protocol.RequestRoleEdit) (*protocol.ResponseRoleInfo, error) {
|
94
|
var (
|
95
|
var (
|
95
|
- role *models.Role
|
|
|
96
|
- err error
|
96
|
+ roleinfo *models.Role
|
|
|
97
|
+ err error
|
97
|
)
|
98
|
)
|
98
|
- role, err = models.GetRoleById(param.ID)
|
99
|
+ roleinfo, err = models.GetRoleById(param.ID)
|
99
|
if err != nil {
|
100
|
if err != nil {
|
100
|
e := fmt.Errorf("GetRoleById err:%s", err)
|
101
|
e := fmt.Errorf("GetRoleById err:%s", err)
|
101
|
log.Error(e.Error())
|
102
|
log.Error(e.Error())
|
102
|
return nil, protocol.NewErrWithMessage("1", e)
|
103
|
return nil, protocol.NewErrWithMessage("1", e)
|
103
|
}
|
104
|
}
|
104
|
- if ok := role.IsDefaultRole(); ok && role.Types == models.ROLETYPES_ROLE {
|
|
|
105
|
- return nil, protocol.NewErrWithMessage("10006")
|
|
|
106
|
- }
|
|
|
107
|
-
|
|
|
108
|
- if role.CompanyId != param.CompanyID {
|
|
|
109
|
- e := fmt.Errorf("role.CompanyId(%d) != param.CompanyID(%d)", role.CompanyId, param.CompanyID)
|
105
|
+ if roleinfo.CompanyId != param.CompanyID {
|
|
|
106
|
+ e := fmt.Errorf("role.CompanyId(%d) != param.CompanyID(%d)", roleinfo.CompanyId, param.CompanyID)
|
110
|
log.Error(e.Error())
|
107
|
log.Error(e.Error())
|
111
|
return nil, protocol.NewErrWithMessage("1", e)
|
108
|
return nil, protocol.NewErrWithMessage("1", e)
|
112
|
}
|
109
|
}
|
113
|
- if role.Name != param.Name {
|
110
|
+ if ok := roleinfo.IsDefaultRole(); ok && roleinfo.Types == models.ROLETYPES_ROLE {
|
|
|
111
|
+ //默认角色不能编辑
|
|
|
112
|
+ return nil, protocol.NewErrWithMessage("10006")
|
|
|
113
|
+ }
|
|
|
114
|
+ if roleinfo.Name != param.Name {
|
114
|
ok := models.ExistRoleName(param.CompanyID, param.Name, param.Types)
|
115
|
ok := models.ExistRoleName(param.CompanyID, param.Name, param.Types)
|
115
|
if ok {
|
116
|
if ok {
|
116
|
return nil, protocol.NewErrWithMessage("10004")
|
117
|
return nil, protocol.NewErrWithMessage("10004")
|
117
|
}
|
118
|
}
|
118
|
- role.Name = param.Name
|
119
|
+ roleinfo.Name = param.Name
|
119
|
}
|
120
|
}
|
120
|
-
|
|
|
121
|
- role.Pid = param.Pid
|
|
|
122
|
- if _, err = role.ValidatePid(); err != nil {
|
|
|
123
|
- e := fmt.Errorf("ValidatePid err:%s", err)
|
|
|
124
|
- log.Error(e.Error())
|
|
|
125
|
- return nil, protocol.NewErrWithMessage("1", e)
|
121
|
+ if roleinfo.Pid != param.Pid {
|
|
|
122
|
+ newParent, err := models.GetRoleById(param.Pid)
|
|
|
123
|
+ if err != nil {
|
|
|
124
|
+ log.Error("获取新父级数据失败;%s", err)
|
|
|
125
|
+ return nil, protocol.NewErrWithMessage("1")
|
|
|
126
|
+ }
|
|
|
127
|
+ if newParent.Types != models.ROLETYPES_GROUP {
|
|
|
128
|
+ log.Error("不是角色组")
|
|
|
129
|
+ return nil, protocol.NewErrWithMessage("1")
|
|
|
130
|
+ }
|
|
|
131
|
+ if newParent.CompanyId != roleinfo.CompanyId {
|
|
|
132
|
+ log.Error("角色组公司不匹配")
|
|
|
133
|
+ return nil, protocol.NewErrWithMessage("1")
|
|
|
134
|
+ }
|
|
|
135
|
+ if yes := newParent.IsDefaultRole(); yes {
|
|
|
136
|
+ log.Error("非默认组成员不能进主管组")
|
|
|
137
|
+ return nil, protocol.NewErrWithMessage("10083")
|
|
|
138
|
+ }
|
|
|
139
|
+ //获取原来的父级
|
|
|
140
|
+ var oldParent *models.Role
|
|
|
141
|
+ oldParent, err = models.GetRoleById(param.Pid)
|
|
|
142
|
+ if err != nil {
|
|
|
143
|
+ log.Error("获取父级数据失败;%s", err)
|
|
|
144
|
+ return nil, protocol.NewErrWithMessage("1")
|
|
|
145
|
+ }
|
|
|
146
|
+ if yes := oldParent.IsDefaultRole(); yes {
|
|
|
147
|
+ log.Error("默认角色组成员不能移动")
|
|
|
148
|
+ return nil, protocol.NewErrWithMessage("10082")
|
|
|
149
|
+ }
|
126
|
}
|
150
|
}
|
127
|
- if err = models.UpdateRoleById(role, []string{"Descript", "Name", "Pid"}); err != nil {
|
151
|
+ roleinfo.Pid = param.Pid
|
|
|
152
|
+
|
|
|
153
|
+ if err = models.UpdateRoleById(roleinfo, []string{"Descript", "Name", "Pid"}); err != nil {
|
128
|
e := fmt.Errorf("UpdateRoleById err:%s", err)
|
154
|
e := fmt.Errorf("UpdateRoleById err:%s", err)
|
129
|
log.Error(e.Error())
|
155
|
log.Error(e.Error())
|
130
|
return nil, protocol.NewErrWithMessage("1", e)
|
156
|
return nil, protocol.NewErrWithMessage("1", e)
|
131
|
}
|
157
|
}
|
132
|
r := &protocol.ResponseRoleInfo{
|
158
|
r := &protocol.ResponseRoleInfo{
|
133
|
- ID: role.Id,
|
|
|
134
|
- Name: role.Name,
|
|
|
135
|
- Types: role.Types,
|
159
|
+ ID: roleinfo.Id,
|
|
|
160
|
+ Name: roleinfo.Name,
|
|
|
161
|
+ Types: roleinfo.Types,
|
136
|
}
|
162
|
}
|
137
|
return r, nil
|
163
|
return r, nil
|
138
|
}
|
164
|
}
|
139
|
|
165
|
|
140
|
-func RoleGroupEdit(id int64, name string) (*protocol.ResponseRoleInfo, error) {
|
166
|
+func RoleGroupEdit(companyid int64, id int64, name string) (*protocol.ResponseRoleInfo, error) {
|
141
|
var (
|
167
|
var (
|
142
|
err error
|
168
|
err error
|
143
|
roleinfo *models.Role
|
169
|
roleinfo *models.Role
|
|
@@ -147,6 +173,10 @@ func RoleGroupEdit(id int64, name string) (*protocol.ResponseRoleInfo, error) { |
|
@@ -147,6 +173,10 @@ func RoleGroupEdit(id int64, name string) (*protocol.ResponseRoleInfo, error) { |
147
|
log.Error("获取角色数据失败:%s", err)
|
173
|
log.Error("获取角色数据失败:%s", err)
|
148
|
return nil, protocol.NewErrWithMessage("1")
|
174
|
return nil, protocol.NewErrWithMessage("1")
|
149
|
}
|
175
|
}
|
|
|
176
|
+ if roleinfo.CompanyId != companyid {
|
|
|
177
|
+ log.Error("公司不一致")
|
|
|
178
|
+ return nil, protocol.NewErrWithMessage("1")
|
|
|
179
|
+ }
|
150
|
if roleinfo.Types != models.ROLETYPES_GROUP {
|
180
|
if roleinfo.Types != models.ROLETYPES_GROUP {
|
151
|
log.Error("不是角色组")
|
181
|
log.Error("不是角色组")
|
152
|
return nil, protocol.NewErrWithMessage("1")
|
182
|
return nil, protocol.NewErrWithMessage("1")
|