123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- package controllers
- import (
- "github.com/astaxie/beego"
- // "log"
- "fmt"
- "box-gm/models"
- )
- type RoleController struct {
- beego.Controller
- }
- func (c *RoleController) Get() {
- userinfo := c.GetSession("user")
- if userinfo == nil {
- c.Ctx.Redirect(302, "/accountlogin")
- return
- }
- c.Data["username"] = userinfo.(*LoginInfo).Username
- c.Data["token"] = models.GetToken()
- userPermission := models.GetPermission(userinfo.(*LoginInfo).Username)
- if (userPermission & (1 << uint(models.ModelUser))) == 0 {
- c.Ctx.Redirect(302, "/index")
- return
- }
- roles, _ := models.GetRolelist()
- permission := models.GetPermissions()
- c.Data["permissions"] = permission
- c.Data["roles"] = roles
- // log.Printf("RoleController get Data[%v]", c.Data)
- c.TplName = "role.tpl"
- }
- func (c *RoleController) Post() {
- if !models.CheckToken(c.GetString("token")) {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "操作失败,请重新刷新界面"}
- c.ServeJSON()
- return
- }
- userinfo := c.GetSession("user")
- if userinfo == nil {
- c.Ctx.Redirect(302, "/accountlogin")
- return
- }
- if !models.CheckPermission(userinfo.(*LoginInfo).Username, models.ModelUser) {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "没有操作权限"}
- c.ServeJSON()
- return
- }
- r := new(models.Role)
- r.Name = c.GetString("name")
- i, _ := c.GetInt("permission")
- r.Permission = int64(i)
-
- // log.Printf("RoleController post Name[%s] Permission[%d]", r.Name, r.Permission)
- _, err := models.AddRole(r)
- if err != nil {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": err}
- c.ServeJSON()
- return
- }
- c.Data["json"] = &map[string]interface{}{"status": true, "info": "创建角色成功"}
- c.ServeJSON()
- go models.SaveLog(userinfo.(*LoginInfo).Username, "创建角色", &map[string]interface{}{"name": r.Name, "permission": i})
- }
- func (c *RoleController) Put() {
- if !models.CheckToken(c.GetString("token")) {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "操作失败,请重新刷新界面"}
- c.ServeJSON()
- return
- }
- userinfo := c.GetSession("user")
- if userinfo == nil {
- c.Ctx.Redirect(302, "/accountlogin")
- return
- }
- if !models.CheckPermission(userinfo.(*LoginInfo).Username, models.ModelUser) {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "没有操作权限"}
- c.ServeJSON()
- return
- }
- id, _ := c.GetInt64("id")
- role := models.GetRoleById(id)
- if role == nil {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": fmt.Sprintf("角色[%d]不存在", id)}
- c.ServeJSON()
- return
- }
- if role.Id == 1 {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": fmt.Sprintf("该用户[%s]不能修改", role.Name)}
- c.ServeJSON()
- return
- }
- r := new(models.Role)
- r.Id = role.Id
- r.Name = c.GetString("name")
- i, _ := c.GetInt64("permission")
- r.Permission = i
-
- // log.Printf("RoleController Put Name[%s] Permission[%d]", r.Name, r.Permission)
- _, err := models.UpdateRole(r)
- if err != nil {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": err}
- c.ServeJSON()
- return
- }
- c.Data["json"] = &map[string]interface{}{"status": true, "info": "更新角色成功"}
- c.ServeJSON()
- go models.SaveLog(userinfo.(*LoginInfo).Username, "修改角色", &map[string]interface{}{"name": r.Name, "permission": i})
- }
- func (c *RoleController) Delete() {
- if !models.CheckToken(c.GetString("token")) {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "操作失败,请重新刷新界面"}
- c.ServeJSON()
- return
- }
- userinfo := c.GetSession("user")
- if userinfo == nil {
- c.Ctx.Redirect(302, "/accountlogin")
- return
- }
- if !models.CheckPermission(userinfo.(*LoginInfo).Username, models.ModelUser) {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": "没有操作权限"}
- c.ServeJSON()
- return
- }
- id, _ := c.GetInt64("id")
- role := models.GetRoleById(id)
- if role == nil {
- c.Data["json"] = &map[string]interface{}{"status": false, "info": fmt.Sprintf("角色[%d]不存在", id)}
- c.ServeJSON()
- return
- }
- models.DelRoleById(id)
- c.Data["json"] = &map[string]interface{}{"status": true, "info": "删除角色成功"}
- c.ServeJSON()
- go models.SaveLog(userinfo.(*LoginInfo).Username, "删除角色", &map[string]interface{}{"ids": id})
- }
|