admin.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. if($('#page-type-admin-users').length) {
  2. //=include ../modals/admin-users-create.js
  3. } else if($('#page-type-admin-users-edit').length) {
  4. let vueEditUser = new Vue({
  5. el: '#page-type-admin-users-edit',
  6. data: {
  7. id: '',
  8. email: '',
  9. password: '********',
  10. name: '',
  11. rights: [],
  12. roleoverride: 'none'
  13. },
  14. methods: {
  15. addRightsRow: (ev) => {
  16. vueEditUser.rights.push({
  17. role: 'write',
  18. path: '/',
  19. exact: false,
  20. deny: false
  21. });
  22. },
  23. removeRightsRow: (idx) => {
  24. _.pullAt(vueEditUser.rights, idx)
  25. vueEditUser.$forceUpdate()
  26. },
  27. saveUser: (ev) => {
  28. let formattedRights = _.cloneDeep(vueEditUser.rights)
  29. switch(vueEditUser.roleoverride) {
  30. case 'admin':
  31. formattedRights.push({
  32. role: 'admin',
  33. path: '/',
  34. exact: false,
  35. deny: false
  36. })
  37. break;
  38. }
  39. $.post(window.location.href, {
  40. password: vueEditUser.password,
  41. name: vueEditUser.name,
  42. rights: JSON.stringify(formattedRights)
  43. }).done((resp) => {
  44. alerts.pushSuccess('Saved successfully', 'Changes have been applied.');
  45. }).fail((jqXHR, txtStatus, resp) => {
  46. alerts.pushError('Error', resp);
  47. })
  48. }
  49. },
  50. created: function() {
  51. this.id = usrData._id;
  52. this.email = usrData.email;
  53. this.name = usrData.name;
  54. if(_.find(usrData.rights, { role: 'admin' })) {
  55. this.rights = _.reject(usrData.rights, ['role', 'admin']);
  56. this.roleoverride = 'admin';
  57. } else {
  58. this.rights = usrData.rights;
  59. }
  60. }
  61. });
  62. //=include ../modals/admin-users-delete.js
  63. }