/** * Created by robin on 11/1/15. */ (function () { 'use strict'; angular.module('luticateAuth') .factory('luticateAuthCache', ['luticateAuthCacheDataAccess', function (luticateAuthCacheDataAccess) { var luticateAuthCache = { setUser: luticateAuthCacheDataAccess.setUser, getUser: luticateAuthCacheDataAccess.getUser, setEffectivePermissions: luticateAuthCacheDataAccess.setEffectivePermissions, getEffectivePermissions: luticateAuthCacheDataAccess.getEffectivePermissions, removeEffectivePermissions: luticateAuthCacheDataAccess.removeEffectivePermissions, setEffectiveSettings: luticateAuthCacheDataAccess.setEffectiveSettings, getEffectiveSettings: luticateAuthCacheDataAccess.getEffectiveSettings, removeEffectiveSettings: luticateAuthCacheDataAccess.removeEffectiveSettings }; luticateAuthCache.getToken = function() { var user = luticateAuthCacheDataAccess.getUser(); if (user == null) { return null; } return user.Token; }; luticateAuthCache.removeUser = function() { luticateAuthCacheDataAccess.removeUser(); luticateAuthCacheDataAccess.removeEffectivePermissions(); luticateAuthCacheDataAccess.removeEffectiveSettings(); }; luticateAuthCache.hasEffectivePermission = function(permission_name) { var permissions = luticateAuthCacheDataAccess.getEffectivePermissions(); if (permissions == null) { return null; } var value = permissions[permission_name]; return value == null ? null : value; }; luticateAuthCache.hasAllEffectivePermissions = function(permission_names) { return !permission_names.some(function(permission_name) { return !luticateAuthCache.hasEffectivePermission(permission_name); }); }; luticateAuthCache.hasOneEffectivePermission = function(permission_names) { return permission_names.some(luticateAuthCache.hasEffectivePermission); }; luticateAuthCache.getEffectiveSetting = function(setting_name) { var settings = luticateAuthCacheDataAccess.getEffectiveSettings(); if (settings == null) { return null; } var value = settings[setting_name]; return value == null ? null : value; }; luticateAuthCache.getEffectiveSettingValue = function(setting_name) { var setting = luticateAuthCache.getEffectiveSetting(setting_name); return setting == null ? null : setting.Value; }; luticateAuthCache.setEffectiveSettingValue = function(setting_name, setting_value) { var settings = luticateAuthCacheDataAccess.getEffectiveSettings(); if (settings == null) { return; } settings[setting_name].Value = setting_value; luticateAuthCacheDataAccess.setEffectiveSettings(settings); }; return luticateAuthCache; }]); })();