admin.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /* global $, Vue, alerts, _, usrData, usrDataName */
  2. if ($('#page-type-admin-profile').length) {
  3. let vueProfile = new Vue({
  4. el: '#page-type-admin-profile',
  5. data: {
  6. password: '********',
  7. passwordVerify: '********',
  8. name: ''
  9. },
  10. methods: {
  11. saveUser: (ev) => {
  12. if (vueProfile.password !== vueProfile.passwordVerify) {
  13. alerts.pushError('Error', "Passwords don't match!")
  14. return
  15. }
  16. $.post(window.location.href, {
  17. password: vueProfile.password,
  18. name: vueProfile.name
  19. }).done((resp) => {
  20. alerts.pushSuccess('Saved successfully', 'Changes have been applied.')
  21. }).fail((jqXHR, txtStatus, resp) => {
  22. alerts.pushError('Error', resp)
  23. })
  24. }
  25. },
  26. created: function () {
  27. this.name = usrDataName
  28. }
  29. })
  30. } else if ($('#page-type-admin-users').length) {
  31. /* eslint-disable spaced-comment */
  32. //=include ../modals/admin-users-create.js
  33. /* eslint-enable spaced-comment */
  34. } else if ($('#page-type-admin-users-edit').length) {
  35. let vueEditUser = new Vue({
  36. el: '#page-type-admin-users-edit',
  37. data: {
  38. id: '',
  39. email: '',
  40. password: '********',
  41. name: '',
  42. rights: [],
  43. roleoverride: 'none'
  44. },
  45. methods: {
  46. addRightsRow: (ev) => {
  47. vueEditUser.rights.push({
  48. role: 'write',
  49. path: '/',
  50. exact: false,
  51. deny: false
  52. })
  53. },
  54. removeRightsRow: (idx) => {
  55. _.pullAt(vueEditUser.rights, idx)
  56. vueEditUser.$forceUpdate()
  57. },
  58. saveUser: (ev) => {
  59. let formattedRights = _.cloneDeep(vueEditUser.rights)
  60. switch (vueEditUser.roleoverride) {
  61. case 'admin':
  62. formattedRights.push({
  63. role: 'admin',
  64. path: '/',
  65. exact: false,
  66. deny: false
  67. })
  68. break
  69. }
  70. $.post(window.location.href, {
  71. password: vueEditUser.password,
  72. name: vueEditUser.name,
  73. rights: JSON.stringify(formattedRights)
  74. }).done((resp) => {
  75. alerts.pushSuccess('Saved successfully', 'Changes have been applied.')
  76. }).fail((jqXHR, txtStatus, resp) => {
  77. alerts.pushError('Error', resp)
  78. })
  79. }
  80. },
  81. created: function () {
  82. this.id = usrData._id
  83. this.email = usrData.email
  84. this.name = usrData.name
  85. if (_.find(usrData.rights, { role: 'admin' })) {
  86. this.rights = _.reject(usrData.rights, ['role', 'admin'])
  87. this.roleoverride = 'admin'
  88. } else {
  89. this.rights = usrData.rights
  90. }
  91. }
  92. })
  93. /* eslint-disable spaced-comment */
  94. //=include ../modals/admin-users-delete.js
  95. /* eslint-enable spaced-comment */
  96. }