選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

useredit.controller.js 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /**
  2. * Created by robin on 11/2/15.
  3. */
  4. angular.module('luticate')
  5. .controller('UserEditController', ['$scope', 'luticateAuthUsers', 'data', '$q', 'dialogs', 'luticateAuthCache',
  6. function($scope, luticateAuthUsers, data, $q, dialogs, luticateAuthCache) {
  7. if (data != null) {
  8. $scope.user = data;
  9. $scope.permission = "LU_USER_EDIT";
  10. $scope.permissionPassword = "LU_USER_SET_PASSWORD";
  11. }
  12. else {
  13. $scope.user = {
  14. Username: "",
  15. Email: "",
  16. Firstname: "",
  17. Lastname: ""
  18. };
  19. $scope.permission = "LU_USER_ADD";
  20. $scope.permissionPassword = "LU_USER_ADD";
  21. }
  22. $scope.userPassword = {
  23. value: "",
  24. confirm: ""
  25. };
  26. $scope.passwordValidation = {
  27. length: '$value.length >= 5 || $value.length == 0'
  28. };
  29. $scope.password2Validation = {
  30. same_passwords: 'userPassword.value==$value'
  31. };
  32. var promiseEditUser = {
  33. id: "promiseEditUser",
  34. loaderGroups: ["modal"]
  35. };
  36. var promiseAddUser = {
  37. id: "promiseAddUser",
  38. loaderGroups: ["modal"]
  39. };
  40. var promiseSetPassword = {
  41. id: "promiseSetPassword",
  42. loaderGroups: ["modal"]
  43. };
  44. $scope.submitForm = function()
  45. {
  46. if ($scope.user.Id != null) {
  47. var defer = $q.defer();
  48. if (luticateAuthCache.hasEffectivePermission("LU_USER_EDIT")) {
  49. luticateAuthUsers.edit({
  50. user_id: $scope.user.Id,
  51. email: $scope.user.Email,
  52. firstname: $scope.user.Firstname,
  53. lastname: $scope.user.Lastname
  54. }, promiseEditUser)
  55. .then(function(data)
  56. {
  57. $scope.mayEditPassword(defer);
  58. }, defer.reject);
  59. }
  60. else {
  61. $scope.mayEditPassword(defer);
  62. }
  63. return defer.promise;
  64. }
  65. else {
  66. var user = {
  67. username: $scope.user.Username,
  68. email: $scope.user.Email,
  69. firstname: $scope.user.Firstname,
  70. lastname: $scope.user.Lastname,
  71. password: $scope.userPassword.value
  72. };
  73. return luticateAuthUsers.add(user, promiseAddUser);
  74. }
  75. };
  76. $scope.mayEditPassword = function(defer)
  77. {
  78. if ($scope.userPassword.value != ""
  79. && luticateAuthCache.hasEffectivePermission("LU_USER_SET_PASSWORD")) {
  80. luticateAuthUsers.setPassword({
  81. user_id: $scope.user.Id,
  82. password: $scope.userPassword.value
  83. }, promiseSetPassword)
  84. .then(defer.resolve, defer.reject);
  85. }
  86. else {
  87. defer.resolve(data);
  88. }
  89. };
  90. $scope.editPermissions = function(user)
  91. {
  92. dialogs.create('views/modals/userpermissions.html', 'UserPermissionsController', user);
  93. };
  94. $scope.showEffectivePermissions = function(user)
  95. {
  96. dialogs.create('views/modals/usereffectivepermissions.html', 'UserEffectivePermissionsController', user);
  97. };
  98. }]);