|
@@ -28,6 +28,7 @@ import (
|
|
|
//定义项目用户Service接口
|
|
|
type ProjectAccountService interface {
|
|
|
ValidRule(ctx iris.Context) (viewmodels.ProjectAccount, error)
|
|
|
+ ValidRuleChangePassword(ctx iris.Context) (viewmodels.AccountPassword, error)
|
|
|
ValidRulePermission(ctx iris.Context) (viewmodels.Permission, error)
|
|
|
ValidRuleAccount(ctx iris.Context) (viewmodels.ProjectAccount, error)
|
|
|
|
|
@@ -43,6 +44,8 @@ type ProjectAccountService interface {
|
|
|
GetProjectInfo(id int) (viewmodels.ProjectInfo, error)
|
|
|
Delete(id int, projectId int) error
|
|
|
|
|
|
+ ChangePassword(AccountData viewmodels.AccountPassword, projectId int, projectAccountId int) error
|
|
|
+
|
|
|
SaveAuth(permission viewmodels.Permission, projectId int, accountId int) error
|
|
|
}
|
|
|
|
|
@@ -112,6 +115,25 @@ func (s *projectAccountService) ValidRule(ctx iris.Context) (viewmodels.ProjectA
|
|
|
return accountVaild, nil
|
|
|
}
|
|
|
|
|
|
+// 验证密码
|
|
|
+func (s *projectAccountService) ValidRuleChangePassword(ctx iris.Context) (viewmodels.AccountPassword, error) {
|
|
|
+ accountVaild := viewmodels.AccountPassword{}
|
|
|
+ err := ctx.ReadJSON(&accountVaild)
|
|
|
+ if err != nil {
|
|
|
+ log.Println("account-ValidRule-ReadForm转换异常, error=", err)
|
|
|
+ return accountVaild, err
|
|
|
+ }
|
|
|
+
|
|
|
+ err = accountVaild.ValidateChangePassword()
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ log.Println("权限验证, error=", err)
|
|
|
+ return accountVaild, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return accountVaild, nil
|
|
|
+}
|
|
|
+
|
|
|
// 用户规则验证
|
|
|
func (s *projectAccountService) ValidRulePermission(ctx iris.Context) (viewmodels.Permission, error) {
|
|
|
accountVaild := viewmodels.Permission{}
|
|
@@ -314,6 +336,31 @@ func (s *projectAccountService) ChangeAccount(id int, projectId int, viewAccount
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+// 更换密码
|
|
|
+func (s *projectAccountService) ChangePassword(AccountData viewmodels.AccountPassword, projectId int, projectAccountId int) error {
|
|
|
+ // 1.获得账号
|
|
|
+ accountData := s.dao.Get(projectAccountId, projectId)
|
|
|
+ // 2.比对密码
|
|
|
+ password := comm.CreatePasswordSign(AccountData.Password, accountData.Account)
|
|
|
+
|
|
|
+ if accountData.Password != password {
|
|
|
+ return errors.New("原密码输入不正确")
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3修改密码
|
|
|
+ field := []string{"Password"}
|
|
|
+ account := models.CmProjectAccount{}
|
|
|
+ account.Id = projectAccountId
|
|
|
+ account.ProjectId = projectId
|
|
|
+ account.Password = comm.CreatePasswordSign(AccountData.NewPassword, accountData.Account)
|
|
|
+
|
|
|
+ err := s.dao.Update(&account, field)
|
|
|
+ if err != nil {
|
|
|
+ return errors.New("密码更新失败")
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func (s *projectAccountService) GetProjectInfo(id int) (viewmodels.ProjectInfo, error) {
|
|
|
projectInfo, err := s.dao.FindById(id)
|
|
|
return projectInfo, err
|