(function () { 'use strict'; var serviceId = 'usersAdminService'; angular.module('usersAdmin').factory(serviceId, ['user', '$location', 'myUsersDataContext', '$q', 'usersAdminConfig', usersAdminService]); function usersAdminService(user, $location, myUsersDataContext, $q, config) { //var setAllUsersComplete = null; var managingUser; var organisation; var existingUsers; var service = { getAllUsers: getAllUsers, setManagingUser: setManagingUser, getManagingUser: getManagingUser, setOrganisation: setOrganisation, getOrganisation: getOrganisation, createBlankUser: createBlankUser, createBlankOrganisationAllocation: createBlankOrganisationAllocation, getUsers: getUsers, setUsers: setUsers }; return service; function setAllUsers() { var setAllUsersComplete = $q.defer(); myUsersDataContext.getAllUsersForAllUserOrganisations().then(function (data) { //sessionStorage.setItem('usersAndOrganisations', JSON.stringify(result)) setAllUsersComplete.resolve(data); }); return setAllUsersComplete.promise; } // calls setAllusers if the promise does not exist or has not yet been run, otherwise returns the promise as it should already be resolved and we can use its payload function getAllUsers() { //var result = JSON.parse(sessionStorage.getItem('usersAndOrganisations')); //console.log(result); //if (result && result.expires > Date.now()) return $q.resolve(result); return setAllUsers(); //return setAllUsersComplete.promise; } // Set the currently managing user variable function setManagingUser(user) { managingUser = user; } // Get the currently managing user variable function getManagingUser() { return managingUser; } // Set the currently managing user variable function setUsers(users) { existingUsers = users; } // Get the currently managing user variable function getUsers() { return existingUsers; } // Set the currently managing user variable function setOrganisation(org) { organisation = org; } // Get the currently managing user variable function getOrganisation() { return organisation; } // Create a blank user object function createBlankUser() { return { userName: '', firstName: '', lastName: '', password: null, email: '', applicationId: config.applicationId, appCode: config.appCode, organisations: [], sendWelcomeEmail: true, associatedUserId:'', isAdmin: false, managedAccount: false, topLevelOrgId: '', roles: [ 'myshowcase' ] } } // Create a blank user object function createBlankOrganisationAllocation() { return { organisationId: '', userId: '', myRolesId: null } } } })();