user.graphql 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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. profile: UserProfile
  25. }
  26. # -----------------------------------------------
  27. # MUTATIONS
  28. # -----------------------------------------------
  29. type UserMutation {
  30. create(
  31. email: String!
  32. name: String!
  33. passwordRaw: String
  34. providerKey: String!
  35. groups: [Int]!
  36. mustChangePassword: Boolean
  37. sendWelcomeEmail: Boolean
  38. ): UserResponse @auth(requires: ["write:users", "manage:users", "manage:system"])
  39. update(
  40. id: Int!
  41. email: String
  42. name: String
  43. newPassword: String
  44. groups: [Int]
  45. location: String
  46. jobTitle: String
  47. timezone: String
  48. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  49. delete(
  50. id: Int!
  51. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  52. verify(
  53. id: Int!
  54. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  55. activate(
  56. id: Int!
  57. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  58. deactivate(
  59. id: Int!
  60. ): DefaultResponse @auth(requires: ["manage:users", "manage:system"])
  61. resetPassword(
  62. id: Int!
  63. ): DefaultResponse
  64. }
  65. # -----------------------------------------------
  66. # TYPES
  67. # -----------------------------------------------
  68. type UserResponse {
  69. responseResult: ResponseStatus!
  70. user: User
  71. }
  72. type UserMinimal {
  73. id: Int!
  74. name: String!
  75. email: String!
  76. providerKey: String!
  77. isSystem: Boolean!
  78. createdAt: Date!
  79. }
  80. type User {
  81. id: Int!
  82. name: String!
  83. email: String!
  84. providerKey: String!
  85. providerId: String
  86. isSystem: Boolean!
  87. isActive: Boolean!
  88. isVerified: Boolean!
  89. location: String!
  90. jobTitle: String!
  91. timezone: String!
  92. createdAt: Date!
  93. updatedAt: Date!
  94. groups: [Group]!
  95. }
  96. type UserProfile {
  97. id: Int!
  98. name: String!
  99. email: String!
  100. providerName: String
  101. isSystem: Boolean!
  102. isVerified: Boolean!
  103. location: String!
  104. jobTitle: String!
  105. timezone: String!
  106. createdAt: Date!
  107. updatedAt: Date!
  108. lastLoginOn: Date!
  109. groups: [String]!
  110. }