role.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package models
  2. import (
  3. "errors"
  4. "github.com/astaxie/beego/orm"
  5. "github.com/astaxie/beego/validation"
  6. "log"
  7. )
  8. type Role struct {
  9. Id int64 `form:"id"`
  10. Name string `orm:"size(32)" form:"name" valid:"Required;MaxSize(32);MinSize(6)"`
  11. Permission int64 `form:"permission"`
  12. }
  13. func init() {
  14. orm.RegisterModel(new(Role))
  15. }
  16. func (r *Role) TableName() string {
  17. return "tb_role"
  18. }
  19. func checkRole(r *Role) (err error) {
  20. valid := validation.Validation{}
  21. b, _ := valid.Valid(&r)
  22. if !b {
  23. for _, err := range valid.Errors {
  24. log.Println(err.Key, err.Message)
  25. return errors.New(err.Message)
  26. }
  27. }
  28. return nil
  29. }
  30. func GetRolelist() (roles []orm.Params, count int64) {
  31. o := orm.NewOrm()
  32. role := new(Role)
  33. qs := o.QueryTable(role)
  34. qs.Values(&roles)
  35. count, _ = qs.Count()
  36. return roles, count
  37. }
  38. //添加权限组
  39. func AddRole(r *Role) (int64, error) {
  40. if err := checkRole(r); err != nil {
  41. return 0, err
  42. }
  43. o := orm.NewOrm()
  44. role := new(Role)
  45. role.Name = r.Name
  46. role.Permission = r.Permission
  47. id, err := o.Insert(role)
  48. return id, err
  49. }
  50. //更新用户
  51. func UpdateRole(r *Role) (int64, error) {
  52. if err := checkRole(r); err != nil {
  53. return 0, err
  54. }
  55. o := orm.NewOrm()
  56. role := make(orm.Params)
  57. if len(r.Name) > 0 {
  58. role["Name"] = r.Name
  59. }
  60. if r.Permission != 0 {
  61. role["Permission"] = r.Permission
  62. }
  63. if len(role) == 0 {
  64. return 0, errors.New("update field is empty")
  65. }
  66. var table Role
  67. num, err := o.QueryTable(table).Filter("Id", r.Id).Update(role)
  68. return num, err
  69. }
  70. func DelRoleById(Id int64) (int64, error) {
  71. o := orm.NewOrm()
  72. status, err := o.Delete(&Role{Id: Id})
  73. return status, err
  74. }
  75. func GetRoleById(id int64) (role *Role) {
  76. role = &Role{Id: id}
  77. o := orm.NewOrm()
  78. err := o.Read(role, "Id")
  79. if err != nil {
  80. return nil
  81. }
  82. return role
  83. }