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.

61 lines
1.2 KiB

  1. /* global wiki */
  2. module.exports = {
  3. Query: {
  4. users(obj, args, context, info) {
  5. return wiki.db.User.findAll({ where: args })
  6. }
  7. },
  8. Mutation: {
  9. createUser(obj, args) {
  10. return wiki.db.User.create(args)
  11. },
  12. deleteUser(obj, args) {
  13. return wiki.db.User.destroy({
  14. where: {
  15. id: args.id
  16. },
  17. limit: 1
  18. })
  19. },
  20. login(obj, args, context) {
  21. return wiki.db.User.login(args, context).catch(err => {
  22. return {
  23. succeeded: false,
  24. message: err.message
  25. }
  26. })
  27. },
  28. loginTFA(obj, args, context) {
  29. return wiki.db.User.loginTFA(args, context).catch(err => {
  30. return {
  31. succeeded: false,
  32. message: err.message
  33. }
  34. })
  35. },
  36. modifyUser(obj, args) {
  37. return wiki.db.User.update({
  38. email: args.email,
  39. name: args.name,
  40. provider: args.provider,
  41. providerId: args.providerId,
  42. role: args.role
  43. }, {
  44. where: { id: args.id }
  45. })
  46. },
  47. resetUserPassword(obj, args) {
  48. return false
  49. },
  50. setUserPassword(obj, args) {
  51. return false
  52. }
  53. },
  54. User: {
  55. groups(usr) {
  56. return usr.getGroups()
  57. }
  58. }
  59. }