|  | @@ -27,6 +27,8 @@ import (
 | 
	
		
			
				|  |  |  //定义项目用户Service接口
 | 
	
		
			
				|  |  |  type ProjectAccountService interface {
 | 
	
		
			
				|  |  |  	ValidRule(ctx iris.Context) (viewmodels.ProjectAccount, error)
 | 
	
		
			
				|  |  | +	ValidRulePermission(ctx iris.Context) (viewmodels.Permission, error)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	Get(accountId int, projectId int) *viewmodels.ProjectAccount
 | 
	
		
			
				|  |  |  	GetAll(projectId int) []viewmodels.ProjectAccount
 | 
	
		
			
				|  |  |  	GetBidAccount(bidsectionId int, projectId int, projectAccountId int) []viewmodels.ProjectAccount
 | 
	
	
		
			
				|  | @@ -37,6 +39,8 @@ type ProjectAccountService interface {
 | 
	
		
			
				|  |  |  	ChangeAccount(id int, projectId int, viewAccount viewmodels.ProjectAccount) error
 | 
	
		
			
				|  |  |  	GetProjectInfo(id int) (viewmodels.ProjectInfo, error)
 | 
	
		
			
				|  |  |  	Delete(id int, projectId int) error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	SaveAuth(permission viewmodels.Permission, projectId int) error
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //返回service操作类
 | 
	
	
		
			
				|  | @@ -53,8 +57,8 @@ func NewProjectAccountService() ProjectAccountService {
 | 
	
		
			
				|  |  |  	return &projectAccountService{
 | 
	
		
			
				|  |  |  		dao:           dao.NewProjectAccountDao(datasource.InstanceDbMaster()),
 | 
	
		
			
				|  |  |  		bidAccountDao: dao.NewBidAccountDao(datasource.InstanceDbMaster()),
 | 
	
		
			
				|  |  | -		validSave:     "/api/projectSetting/account/create",
 | 
	
		
			
				|  |  | -		validAdd:      "/api/projectSetting/account/add",
 | 
	
		
			
				|  |  | +		validSave:     "/api/projectSetting/account/save",
 | 
	
		
			
				|  |  | +		validAdd:      "/api/projectSetting/account/create",
 | 
	
		
			
				|  |  |  		validPassword: "/api/projectSetting/account/change",
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -105,6 +109,25 @@ func (s *projectAccountService) ValidRule(ctx iris.Context) (viewmodels.ProjectA
 | 
	
		
			
				|  |  |  	return accountVaild, nil
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// 用户规则验证
 | 
	
		
			
				|  |  | +func (s *projectAccountService) ValidRulePermission(ctx iris.Context) (viewmodels.Permission, error) {
 | 
	
		
			
				|  |  | +	accountVaild := viewmodels.Permission{}
 | 
	
		
			
				|  |  | +	err := ctx.ReadJSON(&accountVaild)
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		log.Println("account-ValidRule-ReadForm转换异常, error=", err)
 | 
	
		
			
				|  |  | +		return accountVaild, err
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	err = accountVaild.Validate()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		log.Println("权限验证, error=", err)
 | 
	
		
			
				|  |  | +		return accountVaild, err
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	return accountVaild, nil
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // 获得一个项目用户
 | 
	
		
			
				|  |  |  func (s *projectAccountService) Get(id int, projectId int) *viewmodels.ProjectAccount {
 | 
	
		
			
				|  |  |  	modelsAccount := s.dao.Get(id, projectId)
 | 
	
	
		
			
				|  | @@ -257,6 +280,27 @@ func (s *projectAccountService) ChangeAccount(id int, projectId int, viewAccount
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (s *projectAccountService) GetProjectInfo(id int) (viewmodels.ProjectInfo, error) {
 | 
	
		
			
				|  |  |  	projectInfo, err := s.dao.FindById(id)
 | 
	
		
			
				|  |  | -	// return new errors("啊啊啊")
 | 
	
		
			
				|  |  |  	return projectInfo, err
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 保存权限设置
 | 
	
		
			
				|  |  | +func (s *projectAccountService) SaveAuth(permission viewmodels.Permission, projectId int) error {
 | 
	
		
			
				|  |  | +	// 1.构造权限字符串
 | 
	
		
			
				|  |  | +	// contractPermission := map[string]int{
 | 
	
		
			
				|  |  | +	// 	"add":    permission.ContractAdd,
 | 
	
		
			
				|  |  | +	// 	"delete": permission.ContractDelete,
 | 
	
		
			
				|  |  | +	// 	"access": permission.ContractAccess,
 | 
	
		
			
				|  |  | +	// }
 | 
	
		
			
				|  |  | +	// safePermission := map[string]int{
 | 
	
		
			
				|  |  | +	// 	"add":    permission.SafeAdd,
 | 
	
		
			
				|  |  | +	// 	"delete": permission.SafeDelete,
 | 
	
		
			
				|  |  | +	// 	"access": permission.SafeAccess,
 | 
	
		
			
				|  |  | +	// }
 | 
	
		
			
				|  |  | +	// qualityPermission := map[string]int{
 | 
	
		
			
				|  |  | +	// 	"add":    permission.QualityAdd,
 | 
	
		
			
				|  |  | +	// 	"delete": permission.QualityDelete,
 | 
	
		
			
				|  |  | +	// 	"access": permission.QualityAccess,
 | 
	
		
			
				|  |  | +	// }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	return nil
 | 
	
		
			
				|  |  | +}
 |