auth

package
v0.0.0-...-92b63b8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2019 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ChangePasswordHandler = Required(func(w http.ResponseWriter, r *http.Request) {
	user, err := UserFromRequest(r)
	if err != nil {
		logrus.Errorf("Error while getting user from request context: %+v", err)
		utils.Error(w, utils.InternalErrorResponse("No authorized user for this request"))
		return
	}

	var form struct {
		OldPassword string `json:"old_password" validate:"required"`
		NewPassword string `json:"new_password" validate:"required,min=6"`
	}
	if err := utils.UnmarshalForm(w, r, &form); err != nil {
		return
	}

	if checkPassword(user, form.OldPassword) {
		err := setPassword(&user, form.NewPassword)
		if err != nil {
			logrus.Errorf("Cannot set new password for user: %s, error: %+v", user.Login, err)
			utils.Error(w, utils.InternalErrorResponse("Cannot store password"))
			return
		}
		err = store.Auth.UpdateUser(user)
		if err != nil {
			logrus.Errorf("Cannot save new password for user: %s, error: %+v", user.Login, err)
			utils.Error(w, utils.InternalErrorResponse("Cannot store password"))
			return
		}
		utils.Ok(w, nil)
	} else {
		logrus.Infof("Cannot change password for user %s: incorrect current password", user.Login)
		utils.Error(w, utils.JSONErrorResponse{
			Status:        http.StatusNotAcceptable,
			Message:       "Incorrect current password",
			ClientMessage: "Неправильный текущий пароль",
		})
	}
})

ChangePasswordHandler changes user password

View Source
var UserInfoHandler = Required(func(w http.ResponseWriter, r *http.Request) {
	u, err := UserFromRequest(r)
	if err != nil {
		logrus.Errorf("Error while getting user from request context: %+v", err)
		utils.Error(w, utils.InternalErrorResponse("No authorized user for this request"))
		return
	}
	utils.Ok(w, NewAPIUser(u))
})

UserInfoHandler returns info about user

Functions

func LoginHandler

func LoginHandler(w http.ResponseWriter, r *http.Request)

LoginHandler checks username and password and returns jwt on success

func Required

func Required(h http.HandlerFunc) http.HandlerFunc

AuthRequired checks jwt token and sets user_id value to request context

func SignUpHandler

func SignUpHandler(w http.ResponseWriter, r *http.Request)

SignUpHandler creates new user

func UserFromRequest

func UserFromRequest(r *http.Request) (store.User, error)

UserFromRequest extracts user with UserID, specified in request context

Types

type APIUser

type APIUser struct {
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
	Login     string `json:"username"`
}

APIUser represents api result struct

func NewAPIUser

func NewAPIUser(u store.User) APIUser

NewAPIUser creates new api user from store user

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL