UNPKG

sheercms

Version:

Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.

145 lines (128 loc) 4.53 kB
/* Angular Service: User */ app.service('UserService', function($q, $http, DSCacheFactory) { var self = this; var userCache = DSCacheFactory('userCache', { maxAge: 1800000, // Items added to this cache expire after 30 minutes. cacheFlushInterval: 3600000, // This cache will clear itself every hour. deleteOnExpire: 'aggressive', // Items will be deleted from this cache right when they expire. storageMode: 'localStorage' // This cache will sync itself with `localStorage`. }); self.getUsers = function(role, useCache) { var d = $q.defer(); var url = '/cms/users/list?role=' + (role ? role : ''); var data = null; if (useCache) data = userCache.get(url); if (data) { d.resolve(data); } else { $http({ url: url, method: 'get', params: {}} ).success(function (data) { userCache.put(url, data); d.resolve(data); }).error(function (data, status) { d.reject(data); }); } return d.promise; }; self.saveUser = function(user, changePwd, isNewUser) { var d = $q.defer(); var json = JSON.stringify(user); var url = isNewUser === true ? "/cms/users/create" : "/cms/users/update"; $http.post(url, {data: json, changepwd: changePwd}).success(function(data) { userCache.removeAll(); d.resolve(data); }).error(function(data, status) { d.reject(data); }); return d.promise; }; self.saveProfile = function(user, changePwd, isNewUser) { var d = $q.defer(); var json = JSON.stringify(user); var url = "/cms/users/updateProfile"; $http.post(url, {data: json, changepwd: changePwd}).success(function(data) { userCache.removeAll(); d.resolve(data); }).error(function(data, status) { d.reject(data); }); return d.promise; }; self.deleteUser = function(username) { var d = $q.defer(); $http.post("/cms/users/delete", {username: username}).success(function(data) { userCache.removeAll(); d.resolve(data); }).error(function(data, status) { d.reject(data); }); return d.promise; }; }); app.service('RoleService', function($q, $http, DSCacheFactory) { var self = this; var roleCache = DSCacheFactory('roleCache', { maxAge: 1800000, // Items added to this cache expire after 30 minutes. cacheFlushInterval: 3600000, // This cache will clear itself every hour. deleteOnExpire: 'aggressive', // Items will be deleted from this cache right when they expire. storageMode: 'localStorage' // This cache will sync itself with `localStorage`. }); self.getRoles = function(useCache) { var d = $q.defer(); var url = '/cms/roles/list'; var data = null; if (useCache) data = roleCache.get(url); if (data) { d.resolve(data); } else { $http({ url: url, method: 'get', params: {} }).success(function (data) { roleCache.put(url, data); d.resolve(data); }).error(function (data, status) { d.reject(data); }); } return d.promise; }; self.createRole = function(name) { var d = $q.defer(); $http.post("/cms/roles/create", {name: name}).success(function(data) { roleCache.removeAll(); d.resolve(data); }).error(function(data, status) { d.reject(data); }); return d.promise; }; self.updateRole = function(role) { var d = $q.defer(); var json = JSON.stringify(role); $http.post("/cms/roles/update", {data: json}).success(function(data) { roleCache.removeAll(); d.resolve(data); }).error(function(data, status) { d.reject(data); }); return d.promise; }; self.deleteRole = function(name) { var d = $q.defer(); $http.post("/cms/roles/delete", {name: name}).success(function(data) { roleCache.removeAll(); d.resolve(data); }).error(function(data, status) { d.reject(data); }); return d.promise; }; });