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.

112 lines
2.3 KiB

  1. # ===============================================
  2. # USERS
  3. # ===============================================
  4. extend type Query {
  5. users: UserQuery
  6. }
  7. extend type Mutation {
  8. users: UserMutation
  9. }
  10. # -----------------------------------------------
  11. # QUERIES
  12. # -----------------------------------------------
  13. type UserQuery {
  14. list(
  15. filter: String
  16. orderBy: String
  17. ): [UserMinimal] @auth(requires: ["write:users", "manage:users", "manage:system"])
  18. search(
  19. query: String!
  20. ): [UserMinimal] @auth(requires: ["write:groups", "manage:groups", "write:users", "manage:users", "manage:system"])
  21. single(
  22. id: Int!
  23. ): User @auth(requires: ["manage:users", "manage:system"])
  24. }
  25. # -----------------------------------------------
  26. # MUTATIONS
  27. # -----------------------------------------------
  28. type UserMutation {
  29. create(
  30. email: String!
  31. name: String!
  32. passwordRaw: String
  33. providerKey: String!
  34. groups: [Int]!
  35. mustChangePassword: Boolean
  36. sendWelcomeEmail: Boolean
  37. ): UserResponse @auth(requires: ["write:users", "manage:users", "manage:system"])
  38. update(
  39. id: Int!
  40. email: String
  41. name: String
  42. newPassword: String
  43. groups: [Int]
  44. location: String
  45. jobTitle: String
  46. timezone: String
  47. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  48. delete(
  49. id: Int!
  50. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  51. verify(
  52. id: Int!
  53. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  54. activate(
  55. id: Int!
  56. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  57. deactivate(
  58. id: Int!
  59. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  60. resetPassword(
  61. id: Int!
  62. ): DefaultResponse
  63. }
  64. # -----------------------------------------------
  65. # TYPES
  66. # -----------------------------------------------
  67. type UserResponse {
  68. responseResult: ResponseStatus!
  69. user: User
  70. }
  71. type UserMinimal {
  72. id: Int!
  73. name: String!
  74. email: String!
  75. providerKey: String!
  76. isSystem: Boolean!
  77. createdAt: Date!
  78. }
  79. type User {
  80. id: Int!
  81. name: String!
  82. email: String!
  83. providerKey: String!
  84. providerId: String
  85. isSystem: Boolean!
  86. isActive: Boolean!
  87. isVerified: Boolean!
  88. location: String!
  89. jobTitle: String!
  90. timezone: String!
  91. createdAt: Date!
  92. updatedAt: Date!
  93. groups: [Group]!
  94. }