| 
					
				 | 
			
			
				@@ -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 
			 |