1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package userGroupRelate
- import (
- "errors"
- "github.com/baiy/Cadmin-server-go/models"
- "github.com/baiy/Cadmin-server-go/utils/set"
- "github.com/doug-martin/goqu/v9"
- )
- type Model struct {
- models.Model
- AdminUserGroupId string `json:"admin_user_group_id"`
- AdminAuthId string `json:"admin_auth_id"`
- }
- func AuthIds(userGroupIds []int) []int {
- ids := make([]int, 0)
- _ = models.Db.From("admin_user_group_relate").Select("admin_auth_id").Where(goqu.Ex{
- "admin_user_group_id": userGroupIds,
- }).ScanVals(&ids)
- return ids
- }
- func UserGroupIds(authIds []int) []int {
- ids := make([]int, 0)
- _ = models.Db.From("admin_user_group_relate").Select("admin_user_group_id").Where(goqu.Ex{
- "admin_auth_id": authIds,
- }).ScanVals(&ids)
- return ids
- }
- // 用户分组权限检查
- func Check(authIds []int, userGroupIds []int) bool {
- if len(authIds) == 0 || len(userGroupIds) == 0 {
- return false
- }
- existAuthIds := AuthIds(userGroupIds)
- if len(existAuthIds) == 0 {
- return false
- }
- return len(set.IntSliceIntersect(existAuthIds, authIds)) != 0
- }
- func Add(userGroupId, authId int) error {
- _, err := models.Db.Insert("admin_user_group_relate").Rows(
- goqu.Record{"admin_user_group_id": userGroupId, "admin_auth_id": authId},
- ).Executor().Exec()
- return err
- }
- func Remove(userGroupId, authId int) error {
- if userGroupId == 0 && authId == 0 {
- return errors.New("参数错误")
- }
- where := make(goqu.Ex)
- if userGroupId != 0 {
- where["admin_user_group_id"] = userGroupId
- }
- if authId != 0 {
- where["admin_auth_id"] = authId
- }
- _, err := models.Db.Delete("admin_user_group_relate").Where(where).Executor().Exec()
- return err
- }
|