* feat: multiple auth instances * fix: auth setup + strategy initialization * feat: admin auth - add strategy * feat: redirect on login - group setting * feat: oauth2 generic - props definitions * feat: new login UI (wip) * feat: new login UI (wip) * feat: admin security login settings * feat: tabset editor indicators + print view improvements * fix: code styling
		
			
				
	
	
		
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			GraphQL
		
	
	
	
	
	
# ===============================================
 | 
						|
# 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
 | 
						|
}
 |