| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | # ===============================================# USERS# ===============================================extend type Query {  users: UserQuery}extend type Mutation {  users: UserMutation}# -----------------------------------------------# QUERIES# -----------------------------------------------type UserQuery {  list(    filter: String    orderBy: String  ): [UserMinimal] @auth(requires: ["write:users", "manage:users", "manage:system"])  search(    query: String!  ): [UserMinimal] @auth(requires: ["write:groups", "manage:groups", "write:users", "manage:users", "manage:system"])  single(    id: Int!  ): User @auth(requires: ["manage:users", "manage:system"])  profile: UserProfile  lastLogins: [UserLastLogin] @auth(requires: ["write:groups", "manage:groups", "write:users", "manage:users", "manage:system"])}# -----------------------------------------------# MUTATIONS# -----------------------------------------------type UserMutation {  create(    email: String!    name: String!    passwordRaw: String    providerKey: String!    groups: [Int]!    mustChangePassword: Boolean    sendWelcomeEmail: Boolean  ): UserResponse @auth(requires: ["write:users", "manage:users", "manage:system"])  update(    id: Int!    email: String    name: String    newPassword: String    groups: [Int]    location: String    jobTitle: String    timezone: String  ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])  delete(    id: Int!  ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])  verify(    id: Int!  ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])  activate(    id: Int!  ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])  deactivate(    id: Int!  ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])  resetPassword(    id: Int!  ): DefaultResponse  updateProfile(    name: String!    location: String!    jobTitle: String!    timezone: String!  ): UserTokenResponse  changePassword(    current: String!    new: String!  ): UserTokenResponse}# -----------------------------------------------# TYPES# -----------------------------------------------type UserResponse {  responseResult: ResponseStatus!  user: User}type UserLastLogin {  id: Int!  name: String!  lastLoginAt: Date!}type UserMinimal {  id: Int!  name: String!  email: String!  providerKey: String!  isSystem: Boolean!  createdAt: Date!}type User {  id: Int!  name: String!  email: String!  providerKey: String!  providerId: String  isSystem: Boolean!  isActive: Boolean!  isVerified: Boolean!  location: String!  jobTitle: String!  timezone: String!  createdAt: Date!  updatedAt: Date!  lastLoginAt: Date  groups: [Group]!}type UserProfile {  id: Int!  name: String!  email: String!  providerKey: String  providerName: String  isSystem: Boolean!  isVerified: Boolean!  location: String!  jobTitle: String!  timezone: String!  createdAt: Date!  updatedAt: Date!  lastLoginAt: Date  groups: [String]!  pagesTotal: Int!}type UserTokenResponse {  responseResult: ResponseStatus!  jwt: String}
 |