2
3

role.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623
  1. package casbin
  2. import (
  3. "encoding/json"
  4. "strconv"
  5. "strings"
  6. "dashoo.cn/backend/api/business/role"
  7. . "dashoo.cn/backend/api/controllers"
  8. "dashoo.cn/business2/district"
  9. "dashoo.cn/business2/module"
  10. "dashoo.cn/business2/organize"
  11. "dashoo.cn/business2/permission"
  12. "dashoo.cn/business2/userRole"
  13. "dashoo.cn/utils"
  14. "github.com/astaxie/beego"
  15. )
  16. type RoleController struct {
  17. BaseController
  18. }
  19. type RolePowerAjaxModel struct {
  20. Module []module.ModuleSimplify
  21. Selectemodule []module.ModuleSimplify
  22. }
  23. type RolePerAjaxModel struct {
  24. Operation []permission.Base_Permissionstrtree
  25. Selecteoperation []permission.Base_Permissionstrtree
  26. }
  27. type OrganizeAjaxModel struct {
  28. Organize []organize.Base_Organizetree
  29. SelectedOrganize []organize.Base_Organizetree
  30. }
  31. type DistrictAjaxModel struct {
  32. District []district.Base_Districttree
  33. SelectedDistrict []district.Base_Districttree
  34. }
  35. // @Title 角色列表
  36. // @Description 获取角色列表
  37. // @Success 200 {object} controllers.Request
  38. // @router /list [get]
  39. func (this *RoleController) RoleList() {
  40. svc := role.GetRoleService(utils.DBE)
  41. var roles []userRole.Base_Role
  42. page := this.GetPageInfoForm()
  43. searchkey := this.GetString("keyword")
  44. where := "IsVisible=1"
  45. if searchkey != "" {
  46. where = where + " and Realname like '%" + searchkey + "%'"
  47. }
  48. svrUser := userRole.GetUserService(utils.DBE)
  49. rids := svrUser.GetUserRoleIds(this.User.Id)
  50. permisvc := permission.GetPermissionService(utils.DBE)
  51. if permisvc.IsAdmin(this.User.Id) == false{
  52. var roleofrole string
  53. for i:=0; i<len(rids); i++ {
  54. roleofrole += permisvc.GetManRoleForRole(rids[i])+ ","
  55. }
  56. roleofrole = strings.Trim(roleofrole, ",")
  57. where = where + " and Id in (" + roleofrole + ")"
  58. }
  59. total := svc.GetRoleList(page.CurrentPage, page.Size, "CreateOn", utils.ToStr(this.User.Id), &roles, where)
  60. var datainfo DataInfo
  61. datainfo.Items = roles
  62. datainfo.CurrentItemCount = total
  63. this.Data["json"] = &datainfo
  64. this.ServeJSON()
  65. }
  66. // @Title 角色列表
  67. // @Description 获取角色列表
  68. // @Success 200 {object} controllers.Request
  69. // @router /alllist [get]
  70. func (this *RoleController) RoleAllList() {
  71. svc := role.GetRoleService(utils.DBE)
  72. var roles []userRole.Base_Role
  73. page := this.GetPageInfoForm()
  74. searchkey := this.GetString("keyword")
  75. where := "IsVisible=1"
  76. if searchkey != "" {
  77. where = where + " and Realname like '%" + searchkey + "%'"
  78. }
  79. total := svc.GetRoleList(page.CurrentPage, page.Size, "CreateOn", utils.ToStr(this.User.Id), &roles, where)
  80. var datainfo DataInfo
  81. datainfo.Items = roles
  82. datainfo.CurrentItemCount = total
  83. this.Data["json"] = &datainfo
  84. this.ServeJSON()
  85. }
  86. // @Title 获得用户角色id
  87. // @Description 获得用户角色id
  88. // @Success 200 {object} controllers.Request
  89. // @router /getmanagerole/:id [get]
  90. func (this *RoleController) GetManRole() {
  91. userid := this.Ctx.Input.Param(":id")
  92. svc := permission.GetPermissionService(utils.DBE)
  93. roleofrole := svc.GetManRoleForRole("rid_"+userid)
  94. roleid := strings.Split(roleofrole, ",")
  95. this.Data["json"] = &roleid
  96. this.ServeJSON()
  97. }
  98. // @Title 权限
  99. // @Description 获取菜单操作权限
  100. // @Success 200 {object} controllers.Request
  101. // @router /getpower [get]
  102. func (this *RoleController) GetRolePowerAjax() {
  103. id := this.GetString("id")
  104. svc := permission.GetPermissionService(utils.DBE)
  105. currentuser := this.User
  106. userid := utils.ToStr(currentuser.Id)
  107. ztreecurrentusernodesmodu := svc.GetModuleAll(userid, "30")
  108. ztreeselectedusernodesmodu := svc.GetModuleTreeAllByRole(id, "30")
  109. rest := RolePowerAjaxModel{ztreecurrentusernodesmodu, ztreeselectedusernodesmodu}
  110. this.Data["json"] = &rest
  111. this.ServeJSON()
  112. }
  113. // @Title 获得部门
  114. // @Description 获得部门
  115. // @Success 200 {object} controllers.Request
  116. // @router /getdepartment [get]
  117. func (this *RoleController) DepartmentListGet() {
  118. id := this.GetString("id") //roleid
  119. svc := permission.GetPermissionService(utils.DBE)
  120. currentuser := this.User
  121. userid := utils.ToStr(currentuser.Id)
  122. organizemodu := svc.GetOrganizeTree(userid)
  123. organizeselectedmodu := svc.GetOrganizeTreeByRole(id)
  124. rest := OrganizeAjaxModel{organizemodu, organizeselectedmodu}
  125. this.Data["json"] = &rest
  126. this.ServeJSON()
  127. }
  128. // @Title 获得区域
  129. // @Description 获得区域
  130. // @Success 200 {object} controllers.Request
  131. // @router /getdistrict [get]
  132. func (this *RoleController) DistrictListGet() {
  133. id := this.GetString("id") //roleid
  134. svc := permission.GetPermissionService(utils.DBE)
  135. currentuser := this.User
  136. userid := utils.ToStr(currentuser.Id)
  137. districtmodu := svc.GetDistrictTree(userid)
  138. districtselectedmodu := svc.GetDistrictTreeByRole(id)
  139. rest := DistrictAjaxModel{districtmodu, districtselectedmodu}
  140. this.Data["json"] = &rest
  141. this.ServeJSON()
  142. }
  143. // @Title 保存操作权限
  144. // @Description 保存权限
  145. // @Success 200 {object} controllers.Request
  146. // @router /saveOperationPower [put]
  147. func (this *RoleController) RoleOperationPowerPost() {
  148. //svc := permission.GetPermissionService(utils.DBE)
  149. roleid := this.GetString("id")
  150. var errinfo ErrorInfo
  151. if roleid == "" {
  152. errinfo.Message = utils.AlertProcess("操作失败!请求信息不完整!")
  153. errinfo.Code = -2
  154. this.Data["json"] = &errinfo
  155. this.ServeJSON()
  156. return
  157. }
  158. //utils.RBAC.DeletePermissionsForUser("rid_" + roleid) //撤销角色的操作访问权限
  159. utils.RBAC.RemoveFilteredNamedPolicy("p", 0, "rid_"+roleid, utils.DOMAIN)
  160. operationids := strings.Split(this.GetString("operids"), ",")
  161. if this.GetString("operids") != "" {
  162. for i := 0; i < len(operationids); i++ {
  163. if strings.HasPrefix(operationids[i], "self_") {
  164. _operationid := []byte(operationids[i])[5:]
  165. operationid, _ := utils.StrTo(_operationid).Int()
  166. ret := utils.RBAC.AddPermissionForUser("rid_"+roleid, utils.DOMAIN, "pid_"+strconv.Itoa(operationid))
  167. if ret == false {
  168. beego.Debug("insert error:", ret)
  169. continue
  170. }
  171. } else {
  172. operationid, _ := utils.StrTo(operationids[i]).Int()
  173. ret := utils.RBAC.AddPermissionForUser("rid_"+roleid, utils.DOMAIN, "pid_"+strconv.Itoa(operationid))
  174. if ret == false {
  175. beego.Debug("insert error:", ret)
  176. continue
  177. }
  178. }
  179. }
  180. }
  181. errinfo.Message = utils.AlertProcess("权限保存成功!")
  182. errinfo.Code = 0
  183. this.Data["json"] = &errinfo
  184. this.ServeJSON()
  185. }
  186. // @Title 用户角色设置
  187. // @Description 用户角色设置
  188. // @Success 200 {object} controllers.Request
  189. // @router /setmanrole/:id [put]
  190. func (this *RoleController) SetManRole() {
  191. inputstr := this.Ctx.Input.Param(":id")
  192. serial := strings.Split(inputstr, "_")
  193. roleid := serial[0]
  194. var errinfo ErrorInfo
  195. if roleid == "" || roleid == "0" {
  196. errinfo.Message = "操作失败!请求信息不完整"
  197. errinfo.Code = -2
  198. this.Data["json"] = &errinfo
  199. this.ServeJSON()
  200. return
  201. }
  202. roleids := strings.Split(serial[1], ",")
  203. utils.RBAC.RemoveFilteredNamedGroupingPolicy("g5", 0, "rid_"+roleid, utils.DOMAIN)
  204. if len(roleids) > 0 {
  205. for i := 0; i < len(roleids); i++ {
  206. roids := utils.ToStr(roleids[i])
  207. utils.RBAC.AddNamedGroupingPolicy("g5", "rid_"+roleid, utils.DOMAIN, "rid_"+roids)
  208. }
  209. }
  210. var err error = nil
  211. //utils.RBAC.DeleteRolesForUser("uid_" + userid)
  212. //var err error = nil
  213. //for i := 0; i < len(roleids); i++ {
  214. // if roleids[i] != "0" && roleids[i] != "" {
  215. // //err = svc.AddUserToRole(userid, roleids[i], entity[0])
  216. // utils.RBAC.AddRoleForUserInDomain("uid_"+userid, "rid_"+roleids[i], utils.DOMAIN)
  217. // }
  218. //}
  219. if err == nil {
  220. errinfo.Message = utils.AlertProcess("管理角色调整成功!")
  221. errinfo.Code = 0
  222. this.Data["json"] = &errinfo
  223. this.ServeJSON()
  224. } else {
  225. errinfo.Message = utils.AlertProcess("管理角色调整失败!" + err.Error())
  226. errinfo.Code = -1
  227. this.Data["json"] = &errinfo
  228. this.ServeJSON()
  229. }
  230. }
  231. // @Title 保存资源权限 ---部门
  232. // @Description 保存权限
  233. // @Success 200 {object} controllers.Request
  234. // @router /savedepartmentmessageview [put]
  235. func (this *RoleController) OrganizePost() {
  236. roleid := this.GetString("id")
  237. var errinfo ErrorInfo
  238. if roleid == "" {
  239. errinfo.Message = utils.AlertProcess("操作失败!请求信息不完整!")
  240. errinfo.Code = -2
  241. this.Data["json"] = &errinfo
  242. this.ServeJSON()
  243. return
  244. }
  245. organizeids := strings.Split(this.GetString("organizeids"), ",")
  246. utils.RBAC.RemoveFilteredNamedGroupingPolicy("g3", 0, "rid_"+roleid, utils.DOMAIN)
  247. if this.GetString("organizeids") != "" {
  248. for j := 0; j < len(organizeids); j++ {
  249. organizeids := utils.ToStr(organizeids[j])
  250. utils.RBAC.AddNamedGroupingPolicy("g3", "rid_"+roleid, utils.DOMAIN, "oid_"+organizeids)
  251. }
  252. }
  253. //if this.GetString("organizeids") != "" {
  254. // for i := 0; i < len(organizeids); i++ {
  255. // if strings.HasPrefix(organizeids[i], "self_") {
  256. // _organizeids := []byte(organizeids[i])[5:]
  257. // organizeids, _ := utils.StrTo(_organizeids).Int()
  258. // ret := utils.RBAC.AddNamedGroupingPolicy("g3", "rid_"+roleid, utils.DOMAIN, "oid_"+strconv.Itoa(organizeids))
  259. // if ret == false {
  260. // beego.Debug("insert error:", ret)
  261. // continue
  262. // }
  263. // } else {
  264. // organizeids, _ := utils.StrTo(organizeids[i]).Int()
  265. // ret := utils.RBAC.AddNamedGroupingPolicy("g3", "rid_"+roleid, utils.DOMAIN, "oid_"+strconv.Itoa(organizeids))
  266. // if ret == false {
  267. // beego.Debug("insert error:", ret)
  268. // continue
  269. // }
  270. // }
  271. // }
  272. //}
  273. errinfo.Message = utils.AlertProcess("权限保存成功!")
  274. errinfo.Code = 0
  275. this.Data["json"] = &errinfo
  276. this.ServeJSON()
  277. }
  278. // @Title 保存资源权限 ---区域
  279. // @Description 保存权限
  280. // @Success 200 {object} controllers.Request
  281. // @router /savedistrict [put]
  282. func (this *RoleController) DistrictPost() {
  283. roleid := this.GetString("id")
  284. var errinfo ErrorInfo
  285. if roleid == "" {
  286. errinfo.Message = utils.AlertProcess("操作失败!请求信息不完整!")
  287. errinfo.Code = -2
  288. this.Data["json"] = &errinfo
  289. this.ServeJSON()
  290. return
  291. }
  292. districtids := strings.Split(this.GetString("districtids"), ",")
  293. utils.RBAC.RemoveFilteredNamedGroupingPolicy("g4", 0, "rid_"+roleid, utils.DOMAIN)
  294. if this.GetString("districtids") != "" {
  295. for j := 0; j < len(districtids); j++ {
  296. districtids := utils.ToStr(districtids[j])
  297. utils.RBAC.AddNamedGroupingPolicy("g4", "rid_"+roleid, utils.DOMAIN, "did_"+districtids)
  298. }
  299. }
  300. //if this.GetString("districtids") != "" {
  301. // for i := 0; i < len(districtids); i++ {
  302. // if strings.HasPrefix(districtids[i], "self_") {
  303. // _districtids := []byte(districtids[i])[5:]
  304. // districtids, _ := utils.StrTo(_districtids).Int()
  305. // ret := utils.RBAC.AddNamedGroupingPolicy("g4", "rid_"+roleid, utils.DOMAIN,"did_"+strconv.Itoa(districtids))
  306. // if ret == false {
  307. // beego.Debug("insert error:", ret)
  308. // continue
  309. // }
  310. // } else {
  311. // districtids, _ := utils.StrTo(districtids[i]).Int()
  312. // ret := utils.RBAC.AddNamedGroupingPolicy("g4", "rid_"+roleid, utils.DOMAIN,"did_"+strconv.Itoa(districtids))
  313. // if ret == false {
  314. // beego.Debug("insert error:", ret)
  315. // continue
  316. // }
  317. // }
  318. // }
  319. //}
  320. errinfo.Message = utils.AlertProcess("权限保存成功!")
  321. errinfo.Code = 0
  322. this.Data["json"] = &errinfo
  323. this.ServeJSON()
  324. }
  325. // @Title 权限
  326. // @Description 获取角色操作权限列表
  327. // @Success 200 {object} controllers.Request
  328. // @router /getItemPower [get]
  329. func (this *RoleController) GetRoleItemPowerAjax() {
  330. id := this.GetString("id")
  331. svc := permission.GetPermissionService(utils.DBE)
  332. currentuser := this.User
  333. userid := utils.ToStr(currentuser.Id)
  334. ztreecurrentusernodesope := svc.GetPermissionItemsByUserV2(userid, "0")
  335. ztreeselectedusernodesope := svc.GetPermissionItemsByRoleV2(id, "0")
  336. rest := RolePerAjaxModel{ztreecurrentusernodesope, ztreeselectedusernodesope}
  337. this.Data["json"] = &rest
  338. this.ServeJSON()
  339. }
  340. // @Title 保存权限
  341. // @Description 保存权限--菜单权限
  342. // @Success 200 {object} controllers.Request
  343. // @router /savepower [put]
  344. func (this *RoleController) RolePowerPost() {
  345. //svc := casbin.GetPermissionService(utils.DBE)
  346. roleid := this.GetString("id")
  347. var errinfo ErrorInfo
  348. if roleid == "" {
  349. errinfo.Message = utils.AlertProcess("操作失败!请求信息不完整!")
  350. errinfo.Code = -2
  351. this.Data["json"] = &errinfo
  352. this.ServeJSON()
  353. }
  354. //svc.RevokeRolePermission(roleid) //撤销角色的操作权限
  355. //svc.RevokeRoleModulePermission(roleid) //撤销角色的模块访问权限
  356. // operationids := strings.Split(this.GetString("operids"), ",")
  357. moduleids := strings.Split(this.GetString("moduleids"), ",")
  358. //uid, _ := utils.StrTo(this.User.Id).Int()
  359. // if this.GetString("operids") != "" {
  360. // for i := 0; i < len(operationids); i++ {
  361. // operationid, _ := utils.StrTo(operationids[i]).Int()
  362. // svc.GrantRolePermission(roleid, operationid, userRole.Base_User{Id: uid, Realname: this.User.Realname})
  363. // }
  364. // }
  365. utils.RBAC.RemoveFilteredNamedGroupingPolicy("g2", 0, "rid_"+roleid, utils.DOMAIN)
  366. //utils.RBAC.RemovePolicy("g2", "rid_"+roleid, "", utils.DOMAIN)
  367. if this.GetString("moduleids") != "" {
  368. for j := 0; j < len(moduleids); j++ {
  369. moduleid := utils.ToStr(moduleids[j])
  370. //utils.RBAC.DeletePermissionForUser("rid_"+roleid, "mid_"+moduleid)
  371. utils.RBAC.AddNamedGroupingPolicy("g2", "rid_"+roleid, utils.DOMAIN, "mid_"+moduleid)
  372. //utils.RBAC.AddPermissionForUser("rid_"+roleid, "mid_"+moduleid)
  373. //svc.GrantRoleModulePermission(roleid, moduleid, userRole.Base_User{Id: uid, Realname: this.User.Realname})
  374. }
  375. }
  376. errinfo.Message = utils.AlertProcess("权限保存成功!")
  377. errinfo.Code = 0
  378. this.Data["json"] = &errinfo
  379. this.ServeJSON()
  380. }
  381. // @Title 获取角色容器权限
  382. // @Description 获取角色容器权限
  383. // @Success 200 {object} controllers.Request
  384. // @router /getroleequidpower [get]
  385. func (this *RoleController) GetRoleEquidPowerAjax() {
  386. id := this.GetString("id")
  387. svc := permission.GetPermissionService(utils.DBE)
  388. eids := svc.GetEquipmentIdByByRole(id)
  389. this.Data["json"] = &eids
  390. this.ServeJSON()
  391. }
  392. // @Title 保存容器权限
  393. // @Description 保存容器权限
  394. // @Success 200 {object} controllers.Request
  395. // @router /saveequpipower [put]
  396. func (this *RoleController) SaveequpiPower() {
  397. roleid := this.GetString("id")
  398. var errinfo ErrorInfo
  399. if roleid == "" {
  400. errinfo.Message = utils.AlertProcess("操作失败!请求信息不完整!")
  401. errinfo.Code = -2
  402. this.Data["json"] = &errinfo
  403. this.ServeJSON()
  404. }
  405. selectedids := strings.Split(this.GetString("selectedids"), ",")
  406. utils.RBAC.RemoveFilteredNamedGroupingPolicy("g5", 0, "rid_"+roleid, utils.DOMAIN)
  407. if this.GetString("selectedids") != "" {
  408. for j := 0; j < len(selectedids); j++ {
  409. selectedid := utils.ToStr(selectedids[j])
  410. utils.RBAC.AddNamedGroupingPolicy("g5", "rid_"+roleid, utils.DOMAIN, "eid_"+selectedid)
  411. }
  412. }
  413. errinfo.Message = utils.AlertProcess("权限保存成功!")
  414. errinfo.Code = 0
  415. this.Data["json"] = &errinfo
  416. this.ServeJSON()
  417. }
  418. // @Title 权限
  419. // @Description 获取角色操作列表
  420. // @Success 200 {object} controllers.Request
  421. // @router /getusersforrole/:rid [get]
  422. func (this *RoleController) GetUsersForRole() {
  423. page := this.GetPageInfoForm()
  424. keyword := this.GetString("keyword")
  425. roleid := this.Ctx.Input.Param(":rid")
  426. svc := permission.GetPermissionService(utils.DBE)
  427. var users []userRole.Base_User
  428. where := "IsVisible=1"
  429. if keyword != "" {
  430. where = where + " and Realname like '%" + keyword + "%'"
  431. }
  432. total, users := svc.GetUserListForRole(page.CurrentPage, page.Size, roleid, "Id", where)
  433. var datainfo DataInfo
  434. datainfo.Items = users
  435. datainfo.CurrentItemCount = total
  436. this.Data["json"] = &datainfo
  437. this.ServeJSON()
  438. }
  439. // @Title 用户角色设置
  440. // @Description 用户角色设置
  441. // @Success 200 {object} controllers.Request
  442. // @router /setuserrole/:id [put]
  443. func (this *RoleController) UserRoleAddUser() {
  444. inputstr := this.Ctx.Input.Param(":id")
  445. serial := strings.Split(inputstr, "_")
  446. userids := strings.Split(serial[0], ",")
  447. var errinfo ErrorInfo
  448. roleid := serial[1]
  449. var err error = nil
  450. for i := 0; i < len(userids); i++ {
  451. if userids[i] != "0" && userids[i] != "" {
  452. //err = svc.AddUserToRole(userid, roleids[i], entity[0])
  453. utils.RBAC.DeleteRoleForUserInDomain("uid_"+userids[i], "rid_"+roleid, utils.DOMAIN)
  454. utils.RBAC.AddRoleForUserInDomain("uid_"+userids[i], "rid_"+roleid, utils.DOMAIN)
  455. }
  456. }
  457. if err == nil {
  458. errinfo.Message = utils.AlertProcess("用户角色调整成功!")
  459. errinfo.Code = 0
  460. this.Data["json"] = &errinfo
  461. this.ServeJSON()
  462. } else {
  463. errinfo.Message = utils.AlertProcess("用户角色调整失败!" + err.Error())
  464. errinfo.Code = -1
  465. this.Data["json"] = &errinfo
  466. this.ServeJSON()
  467. }
  468. }
  469. // @Description 删除用户
  470. // @Success 200 {object} controllers.Request
  471. // @router /deleteuser/:id [delete]
  472. func (this *RoleController) UserDelete() {
  473. inputstr := this.Ctx.Input.Param(":id")
  474. serial := strings.Split(inputstr, "_")
  475. id := serial[0]
  476. roleid := serial[1]
  477. utils.RBAC.DeleteRoleForUserInDomain("uid_"+id, "rid_"+roleid, utils.DOMAIN)
  478. var errinfo ErrorInfo
  479. var err error = nil
  480. if err == nil {
  481. errinfo.Message = utils.AlertProcess("删除用户成功!")
  482. errinfo.Code = 0
  483. this.Data["json"] = &errinfo
  484. this.ServeJSON()
  485. } else {
  486. errinfo.Message = utils.AlertProcess("删除用户失败!" + err.Error())
  487. errinfo.Code = -1
  488. this.Data["json"] = &errinfo
  489. this.ServeJSON()
  490. }
  491. }
  492. // @Description 删除所有用户
  493. // @Success 200 {object} controllers.Request
  494. // @router /deletealluser/:id [delete]
  495. func (this *RoleController) DeleteUserAll() {
  496. roleid := this.Ctx.Input.Param(":id")
  497. svc := permission.GetPermissionService(utils.DBE)
  498. var users []userRole.Base_User
  499. where := "IsVisible=1"
  500. _, users = svc.GetUserListForRole(0, 0, roleid, "Id", where)
  501. for i := 0; i < len(users); i++ {
  502. utils.RBAC.DeleteRoleForUserInDomain("uid_"+utils.ToStr(users[i].Id), "rid_"+roleid, utils.DOMAIN)
  503. }
  504. var errinfo ErrorInfo
  505. var err error = nil
  506. if err == nil {
  507. errinfo.Message = utils.AlertProcess("删除用户成功!")
  508. errinfo.Code = 0
  509. this.Data["json"] = &errinfo
  510. this.ServeJSON()
  511. } else {
  512. errinfo.Message = utils.AlertProcess("删除用户失败!" + err.Error())
  513. errinfo.Code = -1
  514. this.Data["json"] = &errinfo
  515. this.ServeJSON()
  516. }
  517. }
  518. //@Description 删除角色
  519. //@Success 200 {object} controllers.Request
  520. //@router /deleterole/:id [delete]
  521. func (this *RoleController) DeleteRole() {
  522. id := this.Ctx.Input.Param(":id")
  523. svc := userRole.GetRoleService(utils.DBE)
  524. err := svc.DeleteRole(id)
  525. var errinfo ErrorInfo
  526. if err == nil {
  527. errinfo.Message = utils.AlertProcess("删除角色成功!")
  528. errinfo.Code = 0
  529. this.Data["json"] = &errinfo
  530. this.ServeJSON()
  531. } else {
  532. errinfo.Message = utils.AlertProcess("删除角色失败!" + err.Error())
  533. errinfo.Code = -1
  534. this.Data["json"] = &errinfo
  535. this.ServeJSON()
  536. }
  537. }
  538. // @Title 创建角色
  539. // @Description 创建角色
  540. // @Success 200 {object} controllers.Request
  541. // @router / [post]
  542. func (this *RoleController) RoleAddPost() {
  543. var roleentity userRole.Base_Role
  544. var jsonblob = this.Ctx.Input.RequestBody
  545. json.Unmarshal(jsonblob, &roleentity)
  546. roleentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
  547. roleentity.CreateBy = this.User.Realname
  548. svc := userRole.GetRoleService(utils.DBE)
  549. err := svc.AddRole(&roleentity)
  550. var errinfo ErrorInfo
  551. if err == nil {
  552. errinfo.Message = utils.AlertProcess("创建角色成功!")
  553. errinfo.Code = 0
  554. this.Data["json"] = &errinfo
  555. this.ServeJSON()
  556. } else {
  557. errinfo.Message = utils.AlertProcess("创建角色失败!" + err.Error())
  558. errinfo.Code = -1
  559. this.Data["json"] = &errinfo
  560. this.ServeJSON()
  561. }
  562. }
  563. // @Title 编辑角色
  564. // @Description 编辑角色
  565. // @Success 200 {object} controllers.Request
  566. // @router /:id [put]
  567. func (this *RoleController) RoleEditPost() {
  568. id := this.Ctx.Input.Param(":id")
  569. var roleentity userRole.Base_Role
  570. var jsonblob = this.Ctx.Input.RequestBody
  571. json.Unmarshal(jsonblob, &roleentity)
  572. roleentity.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
  573. roleentity.ModifiedBy = this.User.Realname
  574. svc := userRole.GetRoleService(utils.DBE)
  575. var cols []string = []string{"Realname", "Category", "Description", "ModifiedUserId", "ModifiedBy"}
  576. _, err := svc.UpdateEntityByIdCols(id, &roleentity, cols)
  577. var errinfo ErrorInfo
  578. if err == nil {
  579. errinfo.Message = utils.AlertProcess("编辑角色成功!")
  580. errinfo.Code = 0
  581. this.Data["json"] = &errinfo
  582. this.ServeJSON()
  583. } else {
  584. errinfo.Message = utils.AlertProcess("编辑角色失败!" + err.Error())
  585. errinfo.Code = -1
  586. this.Data["json"] = &errinfo
  587. this.ServeJSON()
  588. }
  589. }