Merge "Handle signout properly"
This commit is contained in:
commit
5ce5b3f946
@ -53,8 +53,8 @@ refstackApp.config([
|
||||
* Injections in $rootscope
|
||||
*/
|
||||
|
||||
refstackApp.run(['$http', '$rootScope', '$window', 'refstackApiUrl',
|
||||
function($http, $rootScope, $window, refstackApiUrl) {
|
||||
refstackApp.run(['$http', '$rootScope', '$window', '$state', 'refstackApiUrl',
|
||||
function($http, $rootScope, $window, $state, refstackApiUrl) {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
@ -82,15 +82,19 @@ refstackApp.run(['$http', '$rootScope', '$window', 'refstackApiUrl',
|
||||
* This block tries to authenticate user
|
||||
*/
|
||||
var profile_url = refstackApiUrl + '/profile';
|
||||
$http.get(profile_url, {withCredentials: true}).
|
||||
success(function(data) {
|
||||
$rootScope.auth.currentUser = data;
|
||||
$rootScope.auth.isAuthenticated = true;
|
||||
}).
|
||||
error(function() {
|
||||
$rootScope.auth.currentUser = null;
|
||||
$rootScope.auth.isAuthenticated = false;
|
||||
});
|
||||
$rootScope.auth.doSignCheck = function () {
|
||||
return $http.get(profile_url, {withCredentials: true}).
|
||||
success(function (data) {
|
||||
$rootScope.auth.currentUser = data;
|
||||
$rootScope.auth.isAuthenticated = true;
|
||||
}).
|
||||
error(function () {
|
||||
$rootScope.auth.currentUser = null;
|
||||
$rootScope.auth.isAuthenticated = false;
|
||||
$state.go('home');
|
||||
});
|
||||
};
|
||||
$rootScope.auth.doSignCheck();
|
||||
}
|
||||
]);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<h3>User profile</h3>
|
||||
|
||||
<div cg-busy="{promise:authRequest,message:'Loading'}"></div>
|
||||
<div>
|
||||
<table class="table table-striped table-hover">
|
||||
<tbody>
|
||||
@ -9,27 +9,29 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h4>User public keys</h4>
|
||||
</div>
|
||||
<div class="col-md-2 pull-right">
|
||||
<button type="button" class="btn btn-default btn-sm" ng-click="openImportPubKeyModal()">
|
||||
<span class="glyphicon glyphicon-plus"></span> Import public key
|
||||
</button>
|
||||
<div ng-show="pubkeys">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h4>User public keys</h4>
|
||||
</div>
|
||||
<div class="col-md-2 pull-right">
|
||||
<button type="button" class="btn btn-default btn-sm" ng-click="openImportPubKeyModal()">
|
||||
<span class="glyphicon glyphicon-plus"></span> Import public key
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<table class="table table-striped table-hover">
|
||||
<tbody>
|
||||
<tr ng-repeat="pubKey in pubkeys" ng-click="openShowPubKeyModal(pubKey)">
|
||||
<td>{{pubKey.format}}</td>
|
||||
<td>{{pubKey.shortKey}}</td>
|
||||
<td>{{pubKey.comment}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div>
|
||||
<table class="table table-striped table-hover">
|
||||
<tbody>
|
||||
<tr ng-repeat="pubKey in pubkeys" ng-click="openShowPubKeyModal(pubKey)">
|
||||
<td>{{pubKey.format}}</td>
|
||||
<td>{{pubKey.shortKey}}</td>
|
||||
<td>{{pubKey.comment}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@ -14,9 +14,9 @@ refstackApp.factory('PubKeys',
|
||||
|
||||
refstackApp.controller('profileController',
|
||||
[
|
||||
'$scope', '$http', 'refstackApiUrl', '$state', 'PubKeys',
|
||||
'$scope', '$http', 'refstackApiUrl', 'PubKeys',
|
||||
'$modal', 'raiseAlert',
|
||||
function($scope, $http, refstackApiUrl, $state,
|
||||
function($scope, $http, refstackApiUrl,
|
||||
PubKeys, $modal, raiseAlert) {
|
||||
'use strict';
|
||||
|
||||
@ -67,7 +67,8 @@ refstackApp.controller('profileController',
|
||||
$scope.showRes = function(pubKey){
|
||||
raiseAlert('success', '', pubKey.pubkey);
|
||||
};
|
||||
$scope.updatePubKeys();
|
||||
$scope.authRequest = $scope.auth.doSignCheck()
|
||||
.then($scope.updatePubKeys);
|
||||
}
|
||||
]);
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div cg-busy="{promise:authRequest,message:'Loading'}"></div>
|
||||
<div cg-busy="{promise:resultsRequest,message:'Loading'}"></div>
|
||||
<div ng-show="data" class="results-table">
|
||||
<table ng-show="data" class="table table-striped table-hover">
|
||||
|
@ -72,8 +72,12 @@ refstackApp.controller('resultsController',
|
||||
JSON.stringify(error);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.update();
|
||||
if ($scope.isUserResults) {
|
||||
$scope.authRequest = $scope.auth.doSignCheck()
|
||||
.then($scope.update);
|
||||
} else {
|
||||
$scope.update();
|
||||
}
|
||||
|
||||
/**
|
||||
* This is called when the date filter calendar is opened. It
|
||||
|
@ -2,7 +2,7 @@ describe('Auth', function () {
|
||||
'use strict';
|
||||
|
||||
var fakeApiUrl = 'http://foo.bar/v1';
|
||||
var $window;
|
||||
var $window, $rootScope, $httpBackend;
|
||||
beforeEach(function () {
|
||||
$window = {location: { href: jasmine.createSpy()} };
|
||||
module(function ($provide) {
|
||||
@ -10,14 +10,13 @@ describe('Auth', function () {
|
||||
$provide.value('$window', $window);
|
||||
});
|
||||
module('refstackApp');
|
||||
inject(function (_$httpBackend_, _$rootScope_) {
|
||||
$httpBackend = _$httpBackend_;
|
||||
$rootScope = _$rootScope_;
|
||||
});
|
||||
$httpBackend.whenGET('/components/home/home.html')
|
||||
.respond('<div>mock template</div>');
|
||||
});
|
||||
|
||||
var $rootScope, $httpBackend;
|
||||
beforeEach(inject(function (_$httpBackend_, _$rootScope_) {
|
||||
$httpBackend = _$httpBackend_;
|
||||
$rootScope = _$rootScope_;
|
||||
}));
|
||||
|
||||
it('should show signin url for signed user', function () {
|
||||
$httpBackend.expectGET(fakeApiUrl +
|
||||
'/profile').respond({'openid': 'foo@bar.com',
|
||||
|
Loading…
x
Reference in New Issue
Block a user