init push

This commit is contained in:
2026-05-21 19:52:45 +08:00
commit e3f75311ab
1280 changed files with 179173 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
package pg
import (
"context"
"github.com/chaitin/panda-wiki/consts"
"github.com/chaitin/panda-wiki/domain"
)
func (r *NodeRepository) GetNodeGroupsByGroupIdsPerm(ctx context.Context, authGroupIds []uint, perm consts.NodePermName) ([]domain.NodeAuthGroup, error) {
nodeGroups := make([]domain.NodeAuthGroup, 0)
if err := r.db.WithContext(ctx).
Model(&domain.NodeAuthGroup{}).
Where("auth_group_id in (?) and perm = ?", authGroupIds, perm).Find(&nodeGroups).Error; err != nil {
return nil, err
}
return nodeGroups, nil
}
// GetNodeAuthGroupIdsByNodeId 查询该node下的用户组非部分开放的情况下无返回
func (r *NodeRepository) GetNodeAuthGroupIdsByNodeId(ctx context.Context, nodeId string, perm consts.NodePermName) ([]int, error) {
node, err := r.GetNodeByID(ctx, nodeId)
if err != nil {
return nil, err
}
switch node.Permissions.Answerable {
case consts.NodeAccessPermOpen:
return nil, nil
case consts.NodeAccessPermPartial:
authGroupIds := make([]int, 0)
if err := r.db.WithContext(ctx).
Model(&domain.NodeAuthGroup{}).
Joins("left join nodes on nodes.id = node_auth_groups.node_id").
Where("nodes.permissions->>'answerable' = ?", consts.NodeAccessPermPartial).
Where("node_auth_groups.node_id = ? and node_auth_groups.perm = ?", nodeId, perm).
Pluck("node_auth_groups.auth_group_id", &authGroupIds).Error; err != nil {
return nil, err
}
return authGroupIds, nil
case consts.NodeAccessPermClosed:
return make([]int, 0), nil
}
return nil, nil
}