Added a basic login system
diff --git a/views/ngXosViews/subscriberPortal/bower.json b/views/ngXosViews/subscriberPortal/bower.json
index 97332ba..32241cd 100644
--- a/views/ngXosViews/subscriberPortal/bower.json
+++ b/views/ngXosViews/subscriberPortal/bower.json
@@ -20,6 +20,7 @@
"angular-animate": "~1.4.9",
"jquery": "~2.2.0",
"angular-resource": "~1.4.9",
- "angular-route": "~1.4.9"
+ "angular-route": "~1.4.9",
+ "angular-cookies": "~1.4.9"
}
}
diff --git a/views/ngXosViews/subscriberPortal/env/default.js b/views/ngXosViews/subscriberPortal/env/default.js
index a4c949a..3ec6da8 100644
--- a/views/ngXosViews/subscriberPortal/env/default.js
+++ b/views/ngXosViews/subscriberPortal/env/default.js
@@ -7,7 +7,5 @@
// (works only for local environment as both application are served on the same domain)
module.exports = {
- host: 'http://clnode078.clemson.cloudlab.us:9999/',
- xoscsrftoken: 'jhkNhrGWS7FyvzPAWEsJtVkgwYSODDhm',
- xossessionid: 'dr26sgw3bixae7pqyy7soydf864a554u'
+ host: 'http://clnode078.clemson.cloudlab.us:9999/'
};
diff --git a/views/ngXosViews/subscriberPortal/src/app/fw/mast/mast.js b/views/ngXosViews/subscriberPortal/src/app/fw/mast/mast.js
index 090cb59..9b27628 100644
--- a/views/ngXosViews/subscriberPortal/src/app/fw/mast/mast.js
+++ b/views/ngXosViews/subscriberPortal/src/app/fw/mast/mast.js
@@ -15,32 +15,23 @@
*/
(function () {
- 'use strict';
+ 'use strict';
- var urlSuffix = '/rs/logout';
+ var urlSuffix = '/rs/logout';
- angular.module('cordMast', [])
- .controller('CordMastCtrl',
- ['$log','$scope', '$resource', '$location', '$window',
- function ($log, $scope, $resource, $location, $window) {
- var LogoutData, resource;
-
- $scope.logout = function () {
- $log.debug('Logging out...');
- LogoutData = $resource($scope.shared.url + urlSuffix);
- resource = LogoutData.get({},
- function () {
- $location.path('/login');
- $window.location.href = $location.absUrl();
- $log.debug('Resource received:', resource);
- });
- };
- }])
-
- .directive('mast', function () {
- return {
- restrict: 'E',
- templateUrl: 'app/fw/mast/mast.html'
- };
+ angular.module('cordMast', [])
+ .controller('CordMastCtrl', function ($log, $scope, $location, User) {
+ $scope.logout = function () {
+ User.logout()
+ .then(function(){
+ $location.path('/login');
});
+ };
+ })
+ .directive('mast', function () {
+ return {
+ restrict: 'E',
+ templateUrl: 'app/fw/mast/mast.html'
+ };
+ });
}());
diff --git a/views/ngXosViews/subscriberPortal/src/app/fw/services/rest.js b/views/ngXosViews/subscriberPortal/src/app/fw/services/rest.js
index 2bb2b82..9e6596e 100644
--- a/views/ngXosViews/subscriberPortal/src/app/fw/services/rest.js
+++ b/views/ngXosViews/subscriberPortal/src/app/fw/services/rest.js
@@ -1,13 +1,14 @@
"use strict";
angular.module('cordRest', [])
- .service('User', function($http, $q, cordConfig){
+ .service('User', function($http, $q, $cookies, cordConfig){
this.login = function(username, password){
var deferred = $q.defer();
$http.post(cordConfig.url + '/xoslib/login/', {username: username, password: password})
.then(function(res){
- deferred.resolve(JSON.parse(res.data.user));
+ $cookies.put('user', res.data.user);
+ deferred.resolve(JSON.parse(res.data.user));
})
.catch(function(e){
throw new Error(e);
@@ -15,6 +16,21 @@
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();
+ $cookies.remove('user');
+ deferred.resolve();
+ return deferred.promise;
+ };
})
.service('Subscribers', function($resource, cordConfig){
return $resource(cordConfig.url + '/xoslib/rs/subscriber');
diff --git a/views/ngXosViews/subscriberPortal/src/app/view/login/login.js b/views/ngXosViews/subscriberPortal/src/app/view/login/login.js
index 1d50b20..8a3f2cf 100644
--- a/views/ngXosViews/subscriberPortal/src/app/view/login/login.js
+++ b/views/ngXosViews/subscriberPortal/src/app/view/login/login.js
@@ -40,7 +40,6 @@
User.login($scope.email, $scope.password)
.then(function(user){
- console.log(user);
$location.url('/home');
});
diff --git a/views/ngXosViews/subscriberPortal/src/app/view/user/user.js b/views/ngXosViews/subscriberPortal/src/app/view/user/user.js
index ecdf970..f7450cb 100644
--- a/views/ngXosViews/subscriberPortal/src/app/view/user/user.js
+++ b/views/ngXosViews/subscriberPortal/src/app/view/user/user.js
@@ -75,7 +75,6 @@
});
$scope.updateLevel = function(user){
- console.log(user);
user.$save()
.then(function(){
console.log('saved');
diff --git a/views/ngXosViews/subscriberPortal/src/cord.js b/views/ngXosViews/subscriberPortal/src/cord.js
index bae4b2e..f646be0 100644
--- a/views/ngXosViews/subscriberPortal/src/cord.js
+++ b/views/ngXosViews/subscriberPortal/src/cord.js
@@ -21,6 +21,7 @@
'ngRoute',
'ngResource',
'ngAnimate',
+ 'ngCookies',
'cordRest',
'cordMast',
'cordFoot',
@@ -119,7 +120,14 @@
}
]
})
- .run(function($location, cordConfig){
+ .run(function($rootScope, $location, cordConfig, User){
cordConfig.url = 'http://' + $location.host() + ':' + $location.port();
+
+ // basic authentication
+ $rootScope.$on('$routeChangeStart', function(next, current) {
+ if(!User.isLoggedIn()){
+ $location.path('/login');
+ }
+ });
});
}());
diff --git a/views/ngXosViews/subscriberPortal/src/index.html b/views/ngXosViews/subscriberPortal/src/index.html
index 1d2e1e1..b00e425 100644
--- a/views/ngXosViews/subscriberPortal/src/index.html
+++ b/views/ngXosViews/subscriberPortal/src/index.html
@@ -26,6 +26,7 @@
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
+ <script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="cord.js"></script>