user.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package models
  2. import (
  3. "strings"
  4. "time"
  5. )
  6. // User 用户表
  7. type User struct {
  8. Id int `orm:"pk;auto" json:"id"`
  9. // 用户账号,唯一标识, Uid
  10. Account string `orm:"unique" json:"account"`
  11. Nickname string `json:"nickname"`
  12. Email string `json:"email"`
  13. // 用户角色,admin为管理员,多个使用逗号分割
  14. // 现在没多大用
  15. Roles string `json:"roles"`
  16. Password string `json:"password"`
  17. Remark string `json:"remark"`
  18. Source string `json:"source"` // 账号来源,默认或者自有账号
  19. TempCode string `json:"tempCode"` // 临时授权码,重置密码
  20. CreatedAt time.Time `orm:"auto_now_add;type(datetime);default(0001-01-01 00:00:00)" json:"createdAt"`
  21. Routes []SettingRoute `orm:"-" json:"routes"`
  22. }
  23. type UserRole struct {
  24. Id int `orm:"pk;auto" json:"id"`
  25. Code string `orm:"size(20)" json:"code"`
  26. Title string `orm:"size(255)" json:"title"`
  27. Brief string `orm:"size(255)" json:"brief"`
  28. Enable bool `orm:"default(true)" json:"enable"`
  29. RefCount int `orm:"default(0)" json:"refCount"` // 引用次数
  30. }
  31. func (u *User) IsAdmin() bool {
  32. if len(u.Roles) == 0 {
  33. return false
  34. }
  35. if strings.Index(strings.ToUpper(u.Roles), "ADMIN") > -1 {
  36. return true
  37. }
  38. return false
  39. }
  40. func (s *UserRole) UniqueClone() (*UserRole, string) {
  41. return &UserRole{
  42. Id: s.Id,
  43. }, "Id"
  44. }