MCPcopy Index your code
hub / github.com/TruthHun/BookStack / Login

Method Login

models/member.go:66–103  ·  view source on GitHub ↗

Login 用户登录.

(account string, password string)

Source from the content-addressed store, hash-verified

64
65// Login 用户登录.
66func (m *Member) Login(account string, password string) (*Member, error) {
67 var err error
68 o := orm.NewOrm()
69
70 member := &Member{}
71 if strings.Contains(account, "@") {
72 err = o.QueryTable(m.TableNameWithPrefix()).Filter("email", account).Filter("status", 0).One(member)
73 }
74
75 if err != nil || member.MemberId == 0 {
76 err = o.QueryTable(m.TableNameWithPrefix()).Filter("account", account).Filter("status", 0).One(member)
77 }
78
79 if err != nil {
80 beego.Error("用户登录 => " + err.Error())
81 if beego.AppConfig.DefaultBool("ldap_enable", false) == true {
82 logs.Info("转入LDAP登陆")
83 return member.ldapLogin(account, password)
84 }
85 return member, ErrMemberNoExist
86 }
87
88 switch member.AuthMethod {
89 case "":
90 case "local":
91 ok, err := utils.PasswordVerify(member.Password, password)
92 if ok && err == nil {
93 m.ResolveRoleName()
94 return member, nil
95 }
96 case "ldap":
97 return member.ldapLogin(account, password)
98 default:
99 return member, ErrMemberAuthMethodInvalid
100 }
101
102 return member, ErrorMemberPasswordError
103}
104
105//ldapLogin 通过LDAP登陆
106func (m *Member) ldapLogin(account string, password string) (*Member, error) {

Callers

nothing calls this directly

Calls 4

TableNameWithPrefixMethod · 0.95
ldapLoginMethod · 0.95
ResolveRoleNameMethod · 0.95
PasswordVerifyFunction · 0.92

Tested by

no test coverage detected