Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 25 additions & 43 deletions src/angular-acl.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

var NG_HIDE_CLASS = 'ng-hide';

const STORAGE_TYPES = {
sessionStorage: 'sessionStorage',
localStorage: 'localStorage'
};

const getStorageType = (value) => (STORAGE_TYPES[value]);

angular.module('mm.acl', []);

angular.module('mm.acl').provider('AclService', [
Expand Down Expand Up @@ -58,52 +65,36 @@ angular.module('mm.acl').provider('AclService', [
* Persist data to storage based on config
*/
var save = function () {
switch (config.storage) {
case 'sessionStorage':
saveToStorage('sessionStorage');
break;
case 'localStorage':
saveToStorage('localStorage');
break;
default:
// Don't save
return;
}
let storageType = getStorageType(config.storage);

return storageType && saveToStorage(storageType);
};

var unset = function () {
switch (config.storage) {
case 'sessionStorage':
unsetFromStorage('sessionStorage');
break;
case 'localStorage':
unsetFromStorage('localStorage');
break;
default:
// Don't save
return;
}
let storageType = getStorageType(config.storage);

return storageType && unsetFromStorage(storageType);
};

/**
* Persist data to web storage
*/
var saveToStorage = function (storagetype) {
window[storagetype].setItem(config.storageKey, JSON.stringify(data));
var saveToStorage = function (storageType) {
window[storageType].setItem(config.storageKey, JSON.stringify(data));
};

/**
* Unset data from web storage
*/
var unsetFromStorage = function (storagetype) {
window[storagetype].removeItem(config.storageKey);
var unsetFromStorage = function (storageType) {
window[storageType].removeItem(config.storageKey);
};

/**
* Retrieve data from web storage
*/
var fetchFromStorage = function (storagetype) {
var data = window[storagetype].getItem(config.storageKey);
var fetchFromStorage = function (storageType) {
var data = window[storageType].getItem(config.storageKey);
return (data) ? JSON.parse(data) : false;
};

Expand Down Expand Up @@ -132,21 +123,12 @@ angular.module('mm.acl').provider('AclService', [
* @returns {boolean}
*/
function resume() {
var storedData;

switch (config.storage) {
case 'sessionStorage':
storedData = fetchFromStorage('sessionStorage');
break;
case 'localStorage':
storedData = fetchFromStorage('localStorage');
break;
default:
storedData = null;
}
if (storedData) {
angular.extend(data, storedData);
return true;
let storageType = getStorageType(config.storage);

if (storageType){
let storedData = fetchFromStorage(storeType);

return storedData ? angular.extend(data, storedData) && true : false;
}

return false;
Expand Down