diff --git a/commands/command.go b/commands/command.go index 558df139..5926f918 100644 --- a/commands/command.go +++ b/commands/command.go @@ -90,6 +90,8 @@ func RegisterModel() { new(models.DocumentHistory), new(models.Migration), new(models.Label), + new(models.MemberGroup), + new(models.MemberGroupMembers), ) //migrate.RegisterMigration() } @@ -136,6 +138,8 @@ func RegisterCommand() { } else if len(os.Args) >= 2 && os.Args[1] == "migrate" { ResolveCommand(os.Args[2:]) migrate.RunMigration() + } else if len(os.Args) >= 2 && os.Args[1] == "password" { + ResolveCommand(os.Args[2:]) } } @@ -185,6 +189,11 @@ func ResolveCommand(args []string) { flagSet.StringVar(&conf.ConfigurationFile, "config", "", "MinDoc configuration file.") flagSet.StringVar(&conf.WorkingDirectory, "dir", "", "MinDoc working directory.") flagSet.StringVar(&conf.LogFile, "log", "", "MinDoc log file path.") + var account string + var password string + + flagSet.StringVar(&account, "account", "", "Member account.") + flagSet.StringVar(&password, "password", "", "Member password.") flagSet.Parse(args) @@ -230,6 +239,10 @@ func ResolveCommand(args []string) { RegisterCache() RegisterModel() RegisterLogger(conf.LogFile) + //账号和密码需要解析参数后才能获取 + if len(os.Args) >= 2 && os.Args[1] == "password" { + ModifyPassword(account,password) + } } //注册缓存管道 diff --git a/commands/install.go b/commands/install.go index 347f61b5..8987af58 100644 --- a/commands/install.go +++ b/commands/install.go @@ -8,6 +8,7 @@ import ( "github.com/astaxie/beego/orm" "github.com/lifei6671/mindoc/conf" "github.com/lifei6671/mindoc/models" + "github.com/lifei6671/mindoc/utils" ) //系统安装. @@ -34,6 +35,44 @@ func Version() { } } +//修改用户密码 +func ModifyPassword(account,password string) { + if len(os.Args) < 2 { + fmt.Println("Parameter error.") + os.Exit(1) + } + + if account == "" { + fmt.Println("Account cannot be empty.") + os.Exit(1) + } + if password == "" { + fmt.Println("Password cannot be empty.") + os.Exit(1) + } + member,err := models.NewMember().FindByAccount(account) + + if err != nil { + fmt.Println("Failed to change password:",err) + os.Exit(1) + } + pwd,err := utils.PasswordHash(password) + + if err != nil { + fmt.Println("Failed to change password:",err) + os.Exit(1) + } + member.Password = pwd + + err = member.Update("password") + if err != nil { + fmt.Println("Failed to change password:",err) + os.Exit(1) + } + fmt.Println("Successfully modified.") + os.Exit(0) + +} //初始化数据 func initialization() { diff --git a/controllers/ManagerController.go b/controllers/ManagerController.go index a903b4ea..25c17820 100644 --- a/controllers/ManagerController.go +++ b/controllers/ManagerController.go @@ -34,6 +34,7 @@ func (c *ManagerController) Prepare() { } func (c *ManagerController) Index() { + c.Prepare() c.TplName = "manager/index.tpl" c.Data["Model"] = models.NewDashboard().Query() @@ -249,13 +250,13 @@ func (c *ManagerController) EditMember() { //删除一个用户,并将该用户的所有信息转移到超级管理员上. func (c *ManagerController) DeleteMember() { c.Prepare() - member_id, _ := c.GetInt("id", 0) + memberId, _ := c.GetInt("id", 0) - if member_id <= 0 { + if memberId <= 0 { c.JsonResult(404, "参数错误") } - member, err := models.NewMember().Find(member_id) + member, err := models.NewMember().Find(memberId) if err != nil { beego.Error(err) @@ -271,7 +272,7 @@ func (c *ManagerController) DeleteMember() { c.JsonResult(5001, "未能找到超级管理员") } - err = models.NewMember().Delete(member_id, superMember.MemberId) + err = models.NewMember().Delete(memberId, superMember.MemberId) if err != nil { beego.Error(err) @@ -657,12 +658,12 @@ func (c *ManagerController) AttachDetailed() { //删除附件. func (c *ManagerController) AttachDelete() { c.Prepare() - attach_id, _ := c.GetInt("attach_id") + attachId, _ := c.GetInt("attach_id") - if attach_id <= 0 { + if attachId <= 0 { c.Abort("404") } - attach, err := models.NewAttachment().Find(attach_id) + attach, err := models.NewAttachment().Find(attachId) if err != nil { beego.Error("AttachDelete => ", err) @@ -725,7 +726,7 @@ func (c *ManagerController) LabelDelete() { // 用户组列表 func (c *ManagerController) MemberGroupList() { c.Prepare() - c.TplName = "manager/member_group_list.gohtml" + c.TplName = "manager/member_group_list.tpl" pageIndex, _ := c.GetInt("page", 1) memberGroupList ,totalCount,err := models.NewMemberGroup().FindByPager(pageIndex,conf.PageSize) @@ -746,7 +747,7 @@ func (c *ManagerController) MemberGroupList() { //编辑或添加用户组 func (c *ManagerController) MemberGroupEdit() { c.Prepare() - c.TplName = "manager/member_group_edit.gohtml" + c.TplName = "manager/member_group_edit.tpl" if c.Ctx.Input.IsPost() { @@ -794,6 +795,9 @@ func (c *ManagerController) MemberGroupMemberList() { } +func (c *ManagerController) MemberGroupMemberEdit() { + c.Prepare() +} diff --git a/routers/router.go b/routers/router.go index b31ec54e..e624346e 100644 --- a/routers/router.go +++ b/routers/router.go @@ -35,6 +35,10 @@ func init() { beego.Router("/manager/attach/delete", &controllers.ManagerController{}, "post:AttachDelete") beego.Router("/manager/label/list", &controllers.ManagerController{},"get:LabelList") beego.Router("/manager/label/delete/:id", &controllers.ManagerController{},"post:LabelDelete") + beego.Router("/manager/user_groups", &controllers.ManagerController{},"*:MemberGroupList") + beego.Router("/manager/user_groups/edit/?:id", &controllers.ManagerController{},"*:MemberGroupEdit") + beego.Router("/manager/user_group_member", &controllers.ManagerController{},"*:MemberGroupMemberList") + beego.Router("/manager/user_group_member/edit/?:id", &controllers.ManagerController{},"*:MemberGroupMemberEdit") beego.Router("/setting", &controllers.SettingController{}, "*:Index") beego.Router("/setting/password", &controllers.SettingController{}, "*:Password") diff --git a/static/css/main.css b/static/css/main.css index 4be66ab8..247eb3a1 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -195,6 +195,11 @@ textarea{ .manual-body .page-left .menu li.active .item{ background-color: #DDB; } +.manual-body .page-left .menu li a>i{ + display: inline-block; + width: 14px; + text-align: center; +} .manual-body .page-right { padding: 15px 0 15px 24px; margin-left: 200px; diff --git a/views/manager/index.tpl b/views/manager/index.tpl index a2a6ccf2..be19f36c 100644 --- a/views/manager/index.tpl +++ b/views/manager/index.tpl @@ -26,14 +26,7 @@