PLT-2258 Unified login screen and related APIs (#2820)

* Unified login screen and related APIs

* Refactored login API call to be less convoluted

* Removed LDAP login prompt from invite process

* Fixed existing LDAP users being able to log in if LDAP was configured, but disabled

* Gofmt

* Future proofed login API

* Updated login APIs based on feedback

* Added additional auditing to login API

* Actually removed loginById
Этот коммит содержится в:
Harrison Healey
2016-05-03 14:10:36 -04:00
коммит произвёл Christopher Speller
родитель e76a30bca0
Коммит 87989b8afd
36 изменённых файлов: 630 добавлений и 1049 удалений

Просмотреть файл

@@ -355,51 +355,21 @@ func (c *Client) LoginById(id string, password string) (*Result, *AppError) {
return c.login(m)
}
func (c *Client) LoginByEmail(name string, email string, password string) (*Result, *AppError) {
func (c *Client) Login(loginId string, password string) (*Result, *AppError) {
m := make(map[string]string)
m["name"] = name
m["email"] = email
m["login_id"] = loginId
m["password"] = password
return c.login(m)
}
func (c *Client) LoginByUsername(name string, username string, password string) (*Result, *AppError) {
func (c *Client) LoginWithDevice(loginId string, password string, deviceId string) (*Result, *AppError) {
m := make(map[string]string)
m["name"] = name
m["username"] = username
m["password"] = password
return c.login(m)
}
func (c *Client) LoginByEmailWithDevice(name string, email string, password string, deviceId string) (*Result, *AppError) {
m := make(map[string]string)
m["name"] = name
m["email"] = email
m["login_id"] = loginId
m["password"] = password
m["device_id"] = deviceId
return c.login(m)
}
func (c *Client) LoginByLdap(userid string, password string, mfatoken string) (*Result, *AppError) {
m := make(map[string]string)
m["id"] = userid
m["password"] = password
m["token"] = mfatoken
if r, err := c.DoApiPost("/users/login_ldap", MapToJson(m)); err != nil {
return nil, err
} else {
c.AuthToken = r.Header.Get(HEADER_TOKEN)
c.AuthType = HEADER_BEARER
sessionToken := getCookie(SESSION_COOKIE_TOKEN, r)
if c.AuthToken != sessionToken.Value {
NewLocAppError("/users/login_ldap", "model.client.login.app_error", nil, "")
}
return &Result{r.Header.Get(HEADER_REQUEST_ID),
r.Header.Get(HEADER_ETAG_SERVER), MapFromJson(r.Body)}, nil
}
}
func (c *Client) login(m map[string]string) (*Result, *AppError) {
if r, err := c.DoApiPost("/users/login", MapToJson(m)); err != nil {
return nil, err
@@ -430,9 +400,8 @@ func (c *Client) Logout() (*Result, *AppError) {
}
}
func (c *Client) CheckMfa(method, loginId string) (*Result, *AppError) {
func (c *Client) CheckMfa(loginId string) (*Result, *AppError) {
m := make(map[string]string)
m["method"] = method
m["login_id"] = loginId
if r, err := c.DoApiPost("/users/mfa", MapToJson(m)); err != nil {