Files
leanote/app/controllers/UserController.go

196 lines
4.5 KiB
Go
Raw Normal View History

2014-05-07 13:06:24 +08:00
package controllers
import (
"github.com/revel/revel"
// "encoding/json"
// "gopkg.in/mgo.v2/bson"
2014-05-07 13:06:24 +08:00
. "github.com/leanote/leanote/app/lea"
"github.com/leanote/leanote/app/info"
// "github.com/leanote/leanote/app/types"
// "io/ioutil"
2014-10-22 16:20:45 +08:00
// "fmt"
2014-05-07 13:06:24 +08:00
// "math"
// "os"
// "path"
"strconv"
)
type User struct {
BaseController
}
2014-10-22 16:20:45 +08:00
func (c User) Account(tab int) revel.Result {
userInfo := c.GetUserInfo()
c.RenderArgs["userInfo"] = userInfo
c.RenderArgs["tab"] = tab
c.SetLocale()
return c.RenderTemplate("user/account.html")
}
2014-05-07 13:06:24 +08:00
// 修改用户名, 需要重置session
func (c User) UpdateUsername(username string) revel.Result {
re := info.NewRe();
2014-10-22 16:20:45 +08:00
if(c.GetUsername() == "demo") {
re.Msg = "cannotUpdateDemo"
return c.RenderRe(re);
2014-05-07 13:06:24 +08:00
}
2014-10-22 16:20:45 +08:00
if re.Ok, re.Msg = Vd("username", username); !re.Ok {
return c.RenderRe(re);
2014-05-07 13:06:24 +08:00
}
re.Ok, re.Msg = userService.UpdateUsername(c.GetUserId(), username)
if(re.Ok) {
c.UpdateSession("Username", username)
}
2014-10-22 16:20:45 +08:00
return c.RenderRe(re);
2014-05-07 13:06:24 +08:00
}
// 修改密码
func (c User) UpdatePwd(oldPwd, pwd string) revel.Result {
re := info.NewRe();
2014-10-22 16:20:45 +08:00
if(c.GetUsername() == "demo") {
re.Msg = "cannotUpdateDemo"
return c.RenderRe(re);
2014-05-07 13:06:24 +08:00
}
2014-10-22 16:20:45 +08:00
if re.Ok, re.Msg = Vd("password", oldPwd); !re.Ok {
return c.RenderRe(re);
}
if re.Ok, re.Msg = Vd("password", pwd); !re.Ok {
return c.RenderRe(re);
2014-05-07 13:06:24 +08:00
}
re.Ok, re.Msg = userService.UpdatePwd(c.GetUserId(), oldPwd, pwd)
2014-10-22 16:20:45 +08:00
return c.RenderRe(re);
2014-05-07 13:06:24 +08:00
}
// 更新主题
func (c User) UpdateTheme(theme string) revel.Result {
re := info.NewRe();
re.Ok = userService.UpdateTheme(c.GetUserId(), theme)
if re.Ok {
c.UpdateSession("Theme", theme)
}
return c.RenderJson(re);
}
// 发送邀请链接
func (c User) SendRegisterEmail(content, toEmail string) revel.Result {
re := info.NewRe()
if content == "" || !IsEmail(toEmail) {
return c.RenderJson(re);
}
2014-10-22 16:20:45 +08:00
re.Ok = emailService.SendInviteEmail(c.GetUserInfo(), toEmail, content)
2014-05-07 13:06:24 +08:00
return c.RenderJson(re);
}
//---------------------------
// 重新发送激活邮件
func (c User) ReSendActiveEmail() revel.Result {
re := info.NewRe()
2014-10-22 16:20:45 +08:00
re.Ok = emailService.RegisterSendActiveEmail(c.GetUserInfo(), c.GetEmail())
2014-05-07 13:06:24 +08:00
return c.RenderJson(re)
}
// 修改Email发送激活邮箱
func (c User) UpdateEmailSendActiveEmail(email string) revel.Result {
re := info.NewRe()
2014-10-22 16:20:45 +08:00
if(c.GetUsername() == "demo") {
re.Msg = "cannotUpdateDemo"
return c.RenderJson(re);
}
if re.Ok, re.Msg = Vd("email", email); !re.Ok {
return c.RenderRe(re);
}
re.Ok, re.Msg = emailService.UpdateEmailSendActiveEmail(c.GetUserInfo(), email)
return c.RenderRe(re)
2014-05-07 13:06:24 +08:00
}
// 通过点击链接
// 修改邮箱
func (c User) UpdateEmail(token string) revel.Result {
c.SetUserInfo();
ok, msg, email := userService.UpdateEmail(token)
c.RenderArgs["title"] = "验证邮箱"
c.RenderArgs["ok"] = ok
c.RenderArgs["msg"] = msg
c.RenderArgs["email"] = email
// 修改session
if ok {
c.UpdateSession("Email", email)
}
return c.RenderTemplate("user/update_email.html")
}
// 注册后激活邮箱
func (c User) ActiveEmail(token string) revel.Result {
c.SetUserInfo();
ok, msg, email := userService.ActiveEmail(token)
// 需要修改session
if ok {
c.UpdateSession("Verified", "1");
}
c.RenderArgs["title"] = "验证邮箱"
c.RenderArgs["ok"] = ok
c.RenderArgs["msg"] = msg
c.RenderArgs["email"] = email
return c.RenderTemplate("user/active_email.html")
}
//------------
// 第三方账号添加leanote账号
func (c User) AddAccount(email, pwd string) revel.Result {
re := info.NewRe()
2014-10-22 16:20:45 +08:00
if re.Ok, re.Msg = Vd("email", email); !re.Ok {
return c.RenderRe(re);
}
if re.Ok, re.Msg = Vd("password", pwd); !re.Ok {
return c.RenderRe(re);
2014-05-07 13:06:24 +08:00
}
re.Ok, re.Msg = userService.ThirdAddUser(c.GetUserId(), email, pwd)
if re.Ok {
c.UpdateSession("Email", email);
}
2014-10-22 16:20:45 +08:00
return c.RenderRe(re)
2014-05-07 13:06:24 +08:00
}
//-----------------
// 用户偏爱
2014-10-22 16:20:45 +08:00
func (c User) UpdateColumnWidth(notebookWidth, noteListWidth, mdEditorWidth int) revel.Result {
2014-05-07 13:06:24 +08:00
re := info.NewRe()
2014-10-22 16:20:45 +08:00
re.Ok = userService.UpdateColumnWidth(c.GetUserId(), notebookWidth, noteListWidth, mdEditorWidth)
2014-05-07 13:06:24 +08:00
if re.Ok {
c.UpdateSession("NotebookWidth", strconv.Itoa(notebookWidth));
2014-10-22 16:20:45 +08:00
c.UpdateSession("NoteListWidth", strconv.Itoa(noteListWidth));
c.UpdateSession("MdEditorWidth", strconv.Itoa(mdEditorWidth));
LogJ(c.Session)
2014-05-07 13:06:24 +08:00
}
return c.RenderJson(re)
}
func (c User) UpdateLeftIsMin(leftIsMin bool) revel.Result {
re := info.NewRe()
re.Ok = userService.UpdateLeftIsMin(c.GetUserId(), leftIsMin)
if re.Ok {
if leftIsMin {
c.UpdateSession("LeftIsMin", "1");
} else {
c.UpdateSession("LeftIsMin", "0");
}
}
return c.RenderJson(re)
}