| /* |
| * Copyright 2015 Open Networking Laboratory |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| (function () { |
| "use strict"; |
| |
| function randomEnabled(){ |
| var levels = ["enabled", "disabled"]; |
| return levels[Math.round(Math.random())]; |
| }; |
| |
| |
| angular.module('mCord') |
| .factory('SetCSRFToken', function setCSRFToken($cookies) { |
| return { |
| request: function(request){ |
| request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken'); |
| request.headers['sessionId'] = $cookies.get('sessionid'); |
| return request; |
| } |
| }; |
| }) |
| .factory('clearCacheOnUpdate', function setCSRFToken($cookies) { |
| // return { |
| // request: function(request){ |
| // request.headers['X-CSRFToken'] = $cookies.get('xoscsrftoken'); |
| // request.headers['sessionId'] = $cookies.get('sessionid'); |
| // return request; |
| // } |
| // }; |
| }) |
| .service('User', function($http, $q, $cookies, cordConfig){ |
| this.login = function(username, password){ |
| var deferred = $q.defer(); |
| var user; |
| |
| // logging in the user |
| $http.post(cordConfig.url + '/api/utility/login/', {username: username, password: password}) |
| .then(function(res){ |
| $cookies.put('user', res.data.user); |
| $cookies.put('sessionid', res.data.xossessionid); |
| user = JSON.parse(res.data.user); |
| return $http.get(cordConfig.url + '/xos/tenantrootprivileges?user=' + user.id); |
| }) |
| .then(function(subscribers){ |
| // subscribers are an array because the way Django perform query |
| // but one user is related to only one subscriber |
| |
| $cookies.put('subscriberId', subscribers.data[0].id); |
| deferred.resolve(user); |
| }) |
| .catch(function(e){ |
| deferred.reject(e); |
| throw new Error(e); |
| }); |
| |
| return deferred.promise; |
| }; |
| |
| this.isLoggedIn = function(){ |
| var user = $cookies.get('user'); |
| if( angular.isDefined(user)){ |
| return true; |
| } |
| return false; |
| }; |
| |
| this.logout = function(){ |
| var deferred = $q.defer(); |
| var sessionId = $cookies.get('sessionid'); |
| $http.post(cordConfig.url + '/xoslib/logout/', {xossessionid: sessionId}) |
| .then(function(res){ |
| $cookies.remove('user'); |
| deferred.resolve(); |
| }) |
| .catch(function(e){ |
| throw new Error(e); |
| }); |
| |
| return deferred.promise; |
| }; |
| }); |
| }()); |