| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | 
							- # ===============================================
 
- # USERS
 
- # ===============================================
 
- extend type Query {
 
-   users (
 
-     page: Int
 
-     pageSize: Int
 
-     orderBy: UserOrderBy
 
-     orderByDirection: OrderByDirection
 
-     # Filter by name / email
 
-     filter: String
 
-   ): [UserMinimal]
 
-   userById(
 
-     id: UUID!
 
-   ): User
 
-   lastLogins: [UserLastLogin]
 
- }
 
- extend type Mutation {
 
-   createUser(
 
-     email: String!
 
-     name: String!
 
-     password: String!
 
-     groups: [UUID]!
 
-     mustChangePassword: Boolean!
 
-     sendWelcomeEmail: Boolean!
 
-   ): UserResponse
 
-   updateUser(
 
-     id: UUID!
 
-     patch: UserUpdateInput!
 
-   ): DefaultResponse
 
-   deleteUser(
 
-     id: UUID!
 
-     replaceId: UUID!
 
-   ): DefaultResponse
 
-   verifyUser(
 
-     id: UUID!
 
-   ): DefaultResponse
 
-   activateUser(
 
-     id: UUID!
 
-   ): DefaultResponse
 
-   deactivateUser(
 
-     id: UUID!
 
-   ): DefaultResponse
 
-   enableUserTFA(
 
-     id: UUID!
 
-   ): DefaultResponse
 
-   disableUserTFA(
 
-     id: UUID!
 
-   ): DefaultResponse
 
-   resetUserPassword(
 
-     id: Int!
 
-   ): DefaultResponse
 
-   updateProfile(
 
-     name: String
 
-     location: String
 
-     jobTitle: String
 
-     pronouns: String
 
-     timezone: String
 
-     dateFormat: String
 
-     timeFormat: String
 
-     appearance: UserSiteAppearance
 
-   ): DefaultResponse
 
-   uploadUserAvatar(
 
-     id: UUID!
 
-     image: Upload!
 
-   ): DefaultResponse
 
-   clearUserAvatar(
 
-     id: UUID!
 
-   ): DefaultResponse
 
- }
 
- # -----------------------------------------------
 
- # TYPES
 
- # -----------------------------------------------
 
- type UserResponse {
 
-   operation: Operation
 
-   user: User
 
- }
 
- type UserLastLogin {
 
-   id: UUID
 
-   name: String
 
-   lastLoginAt: Date
 
- }
 
- type UserMinimal {
 
-   id: UUID
 
-   name: String
 
-   email: String
 
-   isSystem: Boolean
 
-   isActive: Boolean
 
-   createdAt: Date
 
-   lastLoginAt: Date
 
- }
 
- type User {
 
-   id: UUID
 
-   name: String
 
-   email: String
 
-   auth: [UserAuth]
 
-   hasAvatar: Boolean
 
-   isSystem: Boolean
 
-   isActive: Boolean
 
-   isVerified: Boolean
 
-   meta: JSON
 
-   prefs: JSON
 
-   createdAt: Date
 
-   updatedAt: Date
 
-   lastLoginAt: Date
 
-   groups: [Group]
 
- }
 
- type UserAuth {
 
-   authId: UUID
 
-   authName: String
 
-   strategyKey: String
 
-   strategyIcon: String
 
-   config: JSON
 
- }
 
- type UserTokenResponse {
 
-   operation: Operation
 
-   jwt: String
 
- }
 
- enum UserOrderBy {
 
-   id
 
-   email
 
-   name
 
-   createdAt
 
-   updatedAt
 
-   lastLoginAt
 
- }
 
- enum UserSiteAppearance {
 
-   site
 
-   light
 
-   dark
 
- }
 
- input UserUpdateInput {
 
-   email: String
 
-   name: String
 
-   newPassword: String
 
-   groups: [UUID!]
 
-   isActive: Boolean
 
-   isVerified: Boolean
 
-   meta: JSON
 
-   prefs: JSON
 
- }
 
 
  |