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.

users.js 3.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /**
  2. * Created by robin on 11/1/15.
  3. */
  4. (function () {
  5. 'use strict';
  6. angular.module('luticateAuth')
  7. .factory('luticateAuthUsers', ['luticateAuthUsersDataAccess', '$q', 'luticateAuthCache', 'luticateAuthPermissions', 'luticateAuthSettings',
  8. function(luticateAuthUsersDataAccess, $q, luticateAuthCache, luticateAuthPermissions, luticateAuthSettings) {
  9. var luticateAuthUsers = {
  10. getAll: luticateAuthUsersDataAccess.getAll,
  11. get: luticateAuthUsersDataAccess.get,
  12. getMe: luticateAuthUsersDataAccess.getMe,
  13. edit: luticateAuthUsersDataAccess.edit,
  14. editMe: luticateAuthUsersDataAccess.editMe,
  15. add: luticateAuthUsersDataAccess.add,
  16. setPassword: luticateAuthUsersDataAccess.setPassword,
  17. setPasswordMe: luticateAuthUsersDataAccess.setPasswordMe,
  18. del: luticateAuthUsersDataAccess.del
  19. };
  20. luticateAuthUsers.login = function(data, promise)
  21. {
  22. var defer = $q.defer();
  23. luticateAuthUsersDataAccess.login(data, promise)
  24. .then(function(user)
  25. {
  26. luticateAuthCache.setUser(user);
  27. luticateAuthUsers.loadUserData(promise).then(function()
  28. {
  29. defer.resolve(user);
  30. }, function(error)
  31. {
  32. luticateAuthUsers.removeUserData();
  33. defer.reject(error);
  34. });
  35. }, function(error)
  36. {
  37. luticateAuthUsers.removeUserData();
  38. defer.reject(error);
  39. });
  40. return defer.promise;
  41. };
  42. luticateAuthUsers.logout = function(promise)
  43. {
  44. var defer = $q.defer();
  45. luticateAuthUsersDataAccess.logout(promise)
  46. .finally(function()
  47. {
  48. luticateAuthUsers.removeUserData();
  49. luticateAuthUsers.loadUserData().finally(defer.resolve);
  50. });
  51. return defer.promise;
  52. };
  53. luticateAuthUsers.loadUserData = function(promise)
  54. {
  55. luticateAuthCache.removeEffectivePermissions();
  56. luticateAuthCache.removeEffectiveSettings();
  57. var defer = $q.defer();
  58. luticateAuthSettings.loadSettings(promise)
  59. .then(function()
  60. {
  61. luticateAuthPermissions.loadPermissions(promise)
  62. .then(defer.resolve, function(error)
  63. {
  64. luticateAuthUsers.removeUserData();
  65. defer.reject(error);
  66. });
  67. }, function(error)
  68. {
  69. luticateAuthUsers.removeUserData();
  70. defer.reject(error);
  71. });
  72. return defer.promise;
  73. };
  74. //For backward compatibility
  75. luticateAuthUsers.loadPermissions = luticateAuthUsers.loadUserData;
  76. luticateAuthUsers.removeUserData = function()
  77. {
  78. luticateAuthCache.removeEffectivePermissions();
  79. luticateAuthCache.removeEffectiveSettings();
  80. luticateAuthCache.removeUser();
  81. };
  82. return luticateAuthUsers;
  83. }]);
  84. })();