ldap.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package models
  2. import "time"
  3. // LdapServer LDAP 服务配置表
  4. type LdapServer struct {
  5. Id int `orm:"pk;auto" json:"id"`
  6. // 用户账号,唯一标识, Uid
  7. Uid string `orm:"size(100)" json:"uid"`
  8. Name string `orm:"size(255)" json:"name"`
  9. Key string `orm:"unique" json:"key"`
  10. Url string `json:"url"`
  11. Active bool `json:"active"` // 是否激活可用
  12. UserName string `json:"userName"` // 直接存储JSON数据,数组格式,多个
  13. Password string `json:"password"`
  14. BaseDN string `orm:"size(255);column(base_dn)" json:"baseDN"`
  15. Filter string `orm:"size(255)" json:"filter"`
  16. Remark string `json:"remark"`
  17. OrganizeClass string `orm:"size(255)" json:"organizeClass"` // 组织的objectClass
  18. }
  19. // LdapUser User 用户表
  20. // https://blog.csdn.net/wzjking0929/article/details/81153206
  21. type LdapUser struct {
  22. Id int `orm:"pk;auto" json:"id"`
  23. Uid string `json:"uid"`
  24. // 用户账号,唯一标识, Uid
  25. Account string `orm:"unique" json:"account"` // 即DN,eg. cn=test,dc=xxxx,dc=cn
  26. UserName string `json:"userName"`
  27. Mail string `json:"mail"`
  28. DN string `orm:"unique;column(db)" json:"dn"`
  29. Attributes string `orm:"null;type(text)" json:"attributes"` // 直接存储JSON数据,数组格式,多个
  30. SignType string `json:"signType"` // 密码加密方式
  31. Password string `json:"password"`
  32. Remark string `json:"remark"`
  33. ServerKey string `json:"serverKey"`
  34. LastSyncDate time.Time `orm:"null;type(datetime)" json:"lastSyncDate"` // 最后一次同步的时间
  35. Organize string `orm:"default('');type(text)" json:"organize"`
  36. }
  37. type LdapOrganize struct {
  38. Id int `orm:"pk;auto" json:"id"`
  39. ServerKey string `orm:"size(255)" json:"serverKey"`
  40. DN string `orm:"unique;column(dn)" json:"dn"`
  41. ObjectClass string `orm:"size(255)" json:"objectClass"`
  42. Name string `orm:"size(255)" json:"name"`
  43. Remark string `orm:"null;type(text)" json:"remark"`
  44. }
  45. func (s *LdapServer) UniqueClone() (*LdapServer, string) {
  46. return &LdapServer{
  47. Url: s.Url,
  48. }, "Url"
  49. }
  50. func (s *LdapUser) UniqueClone() (*LdapUser, string) {
  51. return &LdapUser{
  52. DN: s.DN,
  53. Account: s.Account,
  54. }, "DN"
  55. }
  56. func (s *LdapOrganize) UniqueClone() (*LdapOrganize, string) {
  57. return &LdapOrganize{
  58. DN: s.DN,
  59. }, "DN"
  60. }