mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	系统用户增加是否允许登录选项
This commit is contained in:
		@@ -89,6 +89,7 @@ func (this *AdminDAO) CheckAdminPassword(tx *dbs.Tx, username string, encryptedP
 | 
				
			|||||||
		Attr("password", encryptedPassword).
 | 
							Attr("password", encryptedPassword).
 | 
				
			||||||
		Attr("state", AdminStateEnabled).
 | 
							Attr("state", AdminStateEnabled).
 | 
				
			||||||
		Attr("isOn", true).
 | 
							Attr("isOn", true).
 | 
				
			||||||
 | 
							Attr("canLogin", 1).
 | 
				
			||||||
		ResultPk().
 | 
							ResultPk().
 | 
				
			||||||
		FindInt64Col(0)
 | 
							FindInt64Col(0)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -122,11 +123,12 @@ func (this *AdminDAO) UpdateAdminPassword(tx *dbs.Tx, adminId int64, password st
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 创建管理员
 | 
					// 创建管理员
 | 
				
			||||||
func (this *AdminDAO) CreateAdmin(tx *dbs.Tx, username string, password string, fullname string, isSuper bool, modulesJSON []byte) (int64, error) {
 | 
					func (this *AdminDAO) CreateAdmin(tx *dbs.Tx, username string, canLogin bool, password string, fullname string, isSuper bool, modulesJSON []byte) (int64, error) {
 | 
				
			||||||
	op := NewAdminOperator()
 | 
						op := NewAdminOperator()
 | 
				
			||||||
	op.IsOn = true
 | 
						op.IsOn = true
 | 
				
			||||||
	op.State = AdminStateEnabled
 | 
						op.State = AdminStateEnabled
 | 
				
			||||||
	op.Username = username
 | 
						op.Username = username
 | 
				
			||||||
 | 
						op.CanLogin = canLogin
 | 
				
			||||||
	op.Password = stringutil.Md5(password)
 | 
						op.Password = stringutil.Md5(password)
 | 
				
			||||||
	op.Fullname = fullname
 | 
						op.Fullname = fullname
 | 
				
			||||||
	op.IsSuper = isSuper
 | 
						op.IsSuper = isSuper
 | 
				
			||||||
@@ -155,7 +157,7 @@ func (this *AdminDAO) UpdateAdminInfo(tx *dbs.Tx, adminId int64, fullname string
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// 修改管理员详细信息
 | 
					// 修改管理员详细信息
 | 
				
			||||||
func (this *AdminDAO) UpdateAdmin(tx *dbs.Tx, adminId int64, username string, password string, fullname string, isSuper bool, modulesJSON []byte, isOn bool) error {
 | 
					func (this *AdminDAO) UpdateAdmin(tx *dbs.Tx, adminId int64, username string, canLogin bool, password string, fullname string, isSuper bool, modulesJSON []byte, isOn bool) error {
 | 
				
			||||||
	if adminId <= 0 {
 | 
						if adminId <= 0 {
 | 
				
			||||||
		return errors.New("invalid adminId")
 | 
							return errors.New("invalid adminId")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -163,6 +165,7 @@ func (this *AdminDAO) UpdateAdmin(tx *dbs.Tx, adminId int64, username string, pa
 | 
				
			|||||||
	op.Id = adminId
 | 
						op.Id = adminId
 | 
				
			||||||
	op.Fullname = fullname
 | 
						op.Fullname = fullname
 | 
				
			||||||
	op.Username = username
 | 
						op.Username = username
 | 
				
			||||||
 | 
						op.CanLogin = canLogin
 | 
				
			||||||
	if len(password) > 0 {
 | 
						if len(password) > 0 {
 | 
				
			||||||
		op.Password = stringutil.Md5(password)
 | 
							op.Password = stringutil.Md5(password)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -242,7 +245,7 @@ func (this *AdminDAO) CountAllEnabledAdmins(tx *dbs.Tx) (int64, error) {
 | 
				
			|||||||
func (this *AdminDAO) ListEnabledAdmins(tx *dbs.Tx, offset int64, size int64) (result []*Admin, err error) {
 | 
					func (this *AdminDAO) ListEnabledAdmins(tx *dbs.Tx, offset int64, size int64) (result []*Admin, err error) {
 | 
				
			||||||
	_, err = this.Query(tx).
 | 
						_, err = this.Query(tx).
 | 
				
			||||||
		State(AdminStateEnabled).
 | 
							State(AdminStateEnabled).
 | 
				
			||||||
		Result("id", "isOn", "username", "fullname", "isSuper", "createdAt").
 | 
							Result("id", "isOn", "username", "fullname", "isSuper", "createdAt", "canLogin").
 | 
				
			||||||
		Offset(offset).
 | 
							Offset(offset).
 | 
				
			||||||
		Limit(size).
 | 
							Limit(size).
 | 
				
			||||||
		DescPk().
 | 
							DescPk().
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,6 +12,7 @@ type Admin struct {
 | 
				
			|||||||
	UpdatedAt uint64 `field:"updatedAt"` // 修改时间
 | 
						UpdatedAt uint64 `field:"updatedAt"` // 修改时间
 | 
				
			||||||
	State     uint8  `field:"state"`     // 状态
 | 
						State     uint8  `field:"state"`     // 状态
 | 
				
			||||||
	Modules   string `field:"modules"`   // 允许的模块
 | 
						Modules   string `field:"modules"`   // 允许的模块
 | 
				
			||||||
 | 
						CanLogin  uint8  `field:"canLogin"`  // 是否可以登录
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type AdminOperator struct {
 | 
					type AdminOperator struct {
 | 
				
			||||||
@@ -25,6 +26,7 @@ type AdminOperator struct {
 | 
				
			|||||||
	UpdatedAt interface{} // 修改时间
 | 
						UpdatedAt interface{} // 修改时间
 | 
				
			||||||
	State     interface{} // 状态
 | 
						State     interface{} // 状态
 | 
				
			||||||
	Modules   interface{} // 允许的模块
 | 
						Modules   interface{} // 允许的模块
 | 
				
			||||||
 | 
						CanLogin  interface{} // 是否可以登录
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewAdminOperator() *AdminOperator {
 | 
					func NewAdminOperator() *AdminOperator {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -181,6 +181,7 @@ func (this *AdminService) FindEnabledAdmin(ctx context.Context, req *pb.FindEnab
 | 
				
			|||||||
		IsSuper:  admin.IsSuper == 1,
 | 
							IsSuper:  admin.IsSuper == 1,
 | 
				
			||||||
		Modules:  pbModules,
 | 
							Modules:  pbModules,
 | 
				
			||||||
		OtpLogin: pbOtpAuth,
 | 
							OtpLogin: pbOtpAuth,
 | 
				
			||||||
 | 
							CanLogin: admin.CanLogin == 1,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return &pb.FindEnabledAdminResponse{Admin: result}, nil
 | 
						return &pb.FindEnabledAdminResponse{Admin: result}, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -206,7 +207,7 @@ func (this *AdminService) CreateOrUpdateAdmin(ctx context.Context, req *pb.Creat
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		return &pb.CreateOrUpdateAdminResponse{AdminId: adminId}, nil
 | 
							return &pb.CreateOrUpdateAdminResponse{AdminId: adminId}, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	adminId, err = models.SharedAdminDAO.CreateAdmin(tx, req.Username, req.Password, "管理员", true, nil)
 | 
						adminId, err = models.SharedAdminDAO.CreateAdmin(tx, req.Username, true, req.Password, "管理员", true, nil)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -312,7 +313,7 @@ func (this *AdminService) CreateAdmin(ctx context.Context, req *pb.CreateAdminRe
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	tx := this.NullTx()
 | 
						tx := this.NullTx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	adminId, err := models.SharedAdminDAO.CreateAdmin(tx, req.Username, req.Password, req.Fullname, req.IsSuper, req.ModulesJSON)
 | 
						adminId, err := models.SharedAdminDAO.CreateAdmin(tx, req.Username, req.CanLogin, req.Password, req.Fullname, req.IsSuper, req.ModulesJSON)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -331,7 +332,7 @@ func (this *AdminService) UpdateAdmin(ctx context.Context, req *pb.UpdateAdminRe
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	tx := this.NullTx()
 | 
						tx := this.NullTx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = models.SharedAdminDAO.UpdateAdmin(tx, req.AdminId, req.Username, req.Password, req.Fullname, req.IsSuper, req.ModulesJSON, req.IsOn)
 | 
						err = models.SharedAdminDAO.UpdateAdmin(tx, req.AdminId, req.Username, req.CanLogin, req.Password, req.Fullname, req.IsSuper, req.ModulesJSON, req.IsOn)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -399,6 +400,7 @@ func (this *AdminService) ListEnabledAdmins(ctx context.Context, req *pb.ListEna
 | 
				
			|||||||
			IsSuper:   admin.IsSuper == 1,
 | 
								IsSuper:   admin.IsSuper == 1,
 | 
				
			||||||
			CreatedAt: int64(admin.CreatedAt),
 | 
								CreatedAt: int64(admin.CreatedAt),
 | 
				
			||||||
			OtpLogin:  pbOtpAuth,
 | 
								OtpLogin:  pbOtpAuth,
 | 
				
			||||||
 | 
								CanLogin:  admin.CanLogin == 1,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user