You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wiki/server/graph/schemas/group.graphql

111 lines
1.7 KiB

# ===============================================
# GROUPS
# ===============================================
extend type Query {
groups(
filter: String
orderBy: String
): [Group]
groupById(
id: UUID!
): Group
}
extend type Mutation {
createGroup(
name: String!
): GroupResponse
updateGroup(
id: UUID!
name: String!
redirectOnLogin: String!
permissions: [String]!
rules: [GroupRuleInput]!
): DefaultResponse
deleteGroup(
id: UUID!
): DefaultResponse
assignUserToGroup(
groupId: UUID!
userId: UUID!
): DefaultResponse
unassignUserFromGroup(
groupId: UUID!
userId: UUID!
): DefaultResponse
}
# -----------------------------------------------
# TYPES
# -----------------------------------------------
type GroupResponse {
operation: Operation
group: Group
}
type Group {
id: UUID
name: String
isSystem: Boolean
redirectOnLogin: String
redirectOnFirstLogin: String
redirectOnLogout: String
permissions: [String]
rules: [GroupRule]
users(
page: Int
pageSize: Int
orderBy: UserOrderBy
orderByDirection: OrderByDirection
# Filter by name / email
filter: String
): [UserMinimal]
userCount: Int
createdAt: Date
updatedAt: Date
}
type GroupRule {
id: UUID
name: String
mode: GroupRuleMode
match: GroupRuleMatch
roles: [String]
path: String
locales: [String]
sites: [UUID]
}
input GroupRuleInput {
id: UUID!
name: String!
mode: GroupRuleMode!
match: GroupRuleMatch!
roles: [String]!
path: String!
locales: [String]!
sites: [UUID]
}
enum GroupRuleMode {
ALLOW
DENY
FORCEALLOW
}
enum GroupRuleMatch {
START
EXACT
END
REGEX
TAG
TAGALL
}