代码拉取完成,页面将自动刷新
同步操作将从 进击的皇虫/DocHub 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package AdminControllers
import (
"html/template"
"time"
"github.com/TruthHun/DocHub/helper"
"github.com/TruthHun/DocHub/models"
"github.com/astaxie/beego/orm"
)
type LoginController struct {
BaseController
}
//重置prepare方法,移除模板继承
func (this *LoginController) Prepare() {
this.EnableXSRF = false
//设置默认模板
TplTheme := "default"
this.TplPrefix = "Admin/" + TplTheme + "/Login/"
this.Layout = ""
//当前模板静态文件
this.Data["TplStatic"] = "/static/Admin/" + TplTheme
this.AdminId = helper.Interface2Int(this.GetSession("AdminId"))
}
//登录后台
func (this *LoginController) Login() {
this.EnableXSRF = true
this.Data["Sys"], _ = models.NewSys().Get()
if this.Ctx.Request.Method == "GET" {
this.Xsrf()
this.TplName = "index.html"
} else {
var (
msg string = "登录失败,用户名或密码不正确"
admin models.Admin
)
this.ParseForm(&admin)
if admin, err := models.NewAdmin().Login(admin.Username, admin.Password, admin.Code); err == nil && admin.Id > 0 {
this.SetSession("AdminId", admin.Id)
this.ResponseJson(true, "登录成功")
} else {
this.ResponseJson(false, msg)
}
}
}
//更新登录密码
func (this *LoginController) UpdatePwd() {
if this.AdminId > 0 {
PwdOld := this.GetString("password_old")
PwdNew := this.GetString("password_new")
PwdEnsure := this.GetString("password_ensure")
if PwdOld == PwdNew || PwdNew != PwdEnsure {
this.ResponseJson(false, "新密码不能与原密码相同,且确认密码必须与新密码一致")
} else {
var admin = models.Admin{Password: helper.MD5Crypt(PwdOld)}
if orm.NewOrm().Read(&admin, "Password"); admin.Id > 0 {
admin.Password = helper.MD5Crypt(PwdNew)
if rows, err := orm.NewOrm().Update(&admin); rows > 0 {
this.ResponseJson(true, "密码更新成功")
} else {
this.ResponseJson(false, "密码更新失败:"+err.Error())
}
} else {
this.ResponseJson(false, "原密码不正确")
}
}
} else {
this.Error404()
}
}
//更新管理员信息
func (this *LoginController) UpdateAdmin() {
if this.AdminId > 0 {
code := this.GetString("code")
if code == "" {
this.ResponseJson(false, "登录验证码不能为空")
}
username := this.GetString("username")
if username == "" {
this.ResponseJson(false, "登录用户名不能为空")
}
email := this.GetString("email")
admin := models.Admin{
Id: this.AdminId,
Username: username,
Code: code,
Email: email,
}
if _, err := orm.NewOrm().Update(&admin, "Code", "Email", "Username"); err == nil {
this.ResponseJson(true, "资料更新成功")
} else {
this.ResponseJson(false, "资料更新失败:"+err.Error())
}
} else {
this.Error404()
}
}
//退出登录
func (this *LoginController) Logout() {
this.DelSession("AdminId")
this.Redirect("/admin/login?t="+time.Now().String(), 302)
}
//防止跨站攻击,在有表单的控制器中调用
func (this *LoginController) Xsrf() {
//使用的时候,直接在模板表单添加{{.xsrfdata}}
this.Data["xsrfdata"] = template.HTML(this.XSRFFormHTML())
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。