| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | 
							- # ===============================================
 
- # GROUPS
 
- # ===============================================
 
- extend type Query {
 
-   groups: GroupQuery
 
- }
 
- extend type Mutation {
 
-   groups: GroupMutation
 
- }
 
- # -----------------------------------------------
 
- # QUERIES
 
- # -----------------------------------------------
 
- type GroupQuery {
 
-   list(
 
-     filter: String
 
-     orderBy: String
 
-   ): [GroupMinimal] @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 
-   single(
 
-     id: Int!
 
-   ): Group @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 
- }
 
- # -----------------------------------------------
 
- # MUTATIONS
 
- # -----------------------------------------------
 
- type GroupMutation {
 
-   create(
 
-     name: String!
 
-   ): GroupResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 
-   update(
 
-     id: Int!
 
-     name: String!
 
-     redirectOnLogin: String!
 
-     permissions: [String]!
 
-     pageRules: [PageRuleInput]!
 
-   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 
-   delete(
 
-     id: Int!
 
-   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 
-   assignUser(
 
-     groupId: Int!
 
-     userId: Int!
 
-   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 
-   unassignUser(
 
-     groupId: Int!
 
-     userId: Int!
 
-   ): DefaultResponse @auth(requires: ["write:groups", "manage:groups", "manage:system"])
 
- }
 
- # -----------------------------------------------
 
- # TYPES
 
- # -----------------------------------------------
 
- type GroupResponse {
 
-   responseResult: ResponseStatus!
 
-   group: Group
 
- }
 
- type GroupMinimal {
 
-   id: Int!
 
-   name: String!
 
-   isSystem: Boolean!
 
-   userCount: Int
 
-   createdAt: Date!
 
-   updatedAt: Date!
 
- }
 
- type Group {
 
-   id: Int!
 
-   name: String!
 
-   isSystem: Boolean!
 
-   redirectOnLogin: String
 
-   permissions: [String]!
 
-   pageRules: [PageRule]
 
-   users: [UserMinimal]
 
-   createdAt: Date!
 
-   updatedAt: Date!
 
- }
 
- type PageRule {
 
-   id: String!
 
-   deny: Boolean!
 
-   match: PageRuleMatch!
 
-   roles: [String]!
 
-   path: String!
 
-   locales: [String]!
 
- }
 
- input PageRuleInput {
 
-   id: String!
 
-   deny: Boolean!
 
-   match: PageRuleMatch!
 
-   roles: [String]!
 
-   path: String!
 
-   locales: [String]!
 
- }
 
- enum PageRuleMatch {
 
-   START
 
-   EXACT
 
-   END
 
-   REGEX
 
-   TAG
 
- }
 
 
  |