mirror of
https://github.com/cuigh/swirl
synced 2024-12-30 15:53:24 +00:00
63 lines
1.7 KiB
Go
63 lines
1.7 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/cuigh/auxo/net/web"
|
|
"github.com/cuigh/swirl/biz"
|
|
"github.com/cuigh/swirl/model"
|
|
)
|
|
|
|
// ProfileController is a controller of user profile
|
|
type ProfileController struct {
|
|
Index web.HandlerFunc `path:"/" name:"profile.info" authorize:"?" desc:"profile info page"`
|
|
ModifyInfo web.HandlerFunc `path:"/" method:"post" name:"profile.info.modify" authorize:"?" desc:"modify info"`
|
|
Password web.HandlerFunc `path:"/password" name:"profile.password" authorize:"?" desc:"profile password page"`
|
|
ModifyPassword web.HandlerFunc `path:"/password" method:"post" name:"profile.password.modify" authorize:"?" desc:"modify password"`
|
|
}
|
|
|
|
// Profile creates an instance of ProfileController
|
|
func Profile() (c *ProfileController) {
|
|
return &ProfileController{
|
|
Index: profileIndex,
|
|
ModifyInfo: profileModifyInfo,
|
|
Password: profilePassword,
|
|
ModifyPassword: profileModifyPassword,
|
|
}
|
|
}
|
|
|
|
func profileIndex(ctx web.Context) error {
|
|
user, err := biz.User.GetByID(ctx.User().ID())
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
m := newModel(ctx).Set("User", user)
|
|
return ctx.Render("profile/index", m)
|
|
}
|
|
|
|
func profileModifyInfo(ctx web.Context) error {
|
|
user := &model.User{}
|
|
err := ctx.Bind(user)
|
|
if err == nil {
|
|
user.ID = ctx.User().ID()
|
|
err = biz.User.UpdateInfo(user)
|
|
}
|
|
return ajaxResult(ctx, err)
|
|
}
|
|
|
|
func profilePassword(ctx web.Context) error {
|
|
user, err := biz.User.GetByID(ctx.User().ID())
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
m := newModel(ctx).Set("User", user)
|
|
return ctx.Render("profile/password", m)
|
|
}
|
|
|
|
func profileModifyPassword(ctx web.Context) error {
|
|
oldPwd := ctx.F("password_old")
|
|
newPwd := ctx.F("password")
|
|
err := biz.User.UpdatePassword(ctx.User().ID(), oldPwd, newPwd)
|
|
return ajaxResult(ctx, err)
|
|
}
|