83 lines
1.9 KiB
Go
83 lines
1.9 KiB
Go
package views
|
|
|
|
import (
|
|
"fmt"
|
|
"iris-test/app/lib/auth"
|
|
"iris-test/app/repository"
|
|
|
|
"github.com/kataras/iris/v12"
|
|
)
|
|
|
|
type editUserForm struct {
|
|
FirstName string `form:"first-name"`
|
|
LastName string `form:"last-name"`
|
|
Email string `form:"email"`
|
|
Password string `form:"password"`
|
|
}
|
|
|
|
func GetUsersPage(ctx iris.Context) {
|
|
userRepository := repository.Dao.UsersRepository
|
|
|
|
pagination := repository.NewPagination()
|
|
ordering := []repository.Ordering{
|
|
repository.NewOrdering("first_name", repository.ORDERING_ASC),
|
|
repository.NewOrdering("last_name", repository.ORDERING_ASC),
|
|
}
|
|
|
|
isActive := true
|
|
users := userRepository.List(&repository.UserFilter{IsActive: &isActive}, &pagination, &ordering)
|
|
|
|
ctx.ViewData("users", users)
|
|
|
|
if err := ctx.View("pages/users.jet"); err != nil {
|
|
showError(ctx, err)
|
|
return
|
|
}
|
|
}
|
|
|
|
func EditUserPage(ctx iris.Context) {
|
|
userId := ctx.Params().Get("userId")
|
|
userRepository := repository.Dao.UsersRepository
|
|
|
|
filter := repository.UserFilter{Id: &userId}
|
|
user := userRepository.Get(&filter)
|
|
|
|
ctx.ViewData("user", user)
|
|
ctx.ViewData("currentPath", ctx.Path())
|
|
|
|
if err := ctx.View("pages/user-edit.jet"); err != nil {
|
|
showError(ctx, err)
|
|
return
|
|
}
|
|
}
|
|
|
|
func SaveUserPage(ctx iris.Context) {
|
|
var form editUserForm
|
|
err := ctx.ReadForm(&form)
|
|
if err != nil {
|
|
ctx.StopWithError(iris.StatusBadRequest, err)
|
|
return
|
|
}
|
|
|
|
userId := ctx.Params().Get("userId")
|
|
userRepository := repository.Dao.UsersRepository
|
|
|
|
filter := repository.UserFilter{Id: &userId}
|
|
user := userRepository.Get(&filter)
|
|
|
|
user.FirstName = form.FirstName
|
|
user.LastName = form.LastName
|
|
user.Email = form.Email
|
|
|
|
if len(form.Password) > 0 {
|
|
user.SetPassword(form.Password)
|
|
fmt.Printf("Set password: %s\n", user.Password)
|
|
fmt.Printf("IsPasswordGoodEnough: %v\n", auth.IsPasswordGoodEnough(form.Password))
|
|
|
|
}
|
|
|
|
userRepository.Save(user)
|
|
|
|
ctx.Redirect("/users")
|
|
}
|