Move the API token to account page

The OAuth page is less and less useful. Moreover, the tokens are
actually tied to the user and not for the system.
This commit is contained in:
Girish Ramakrishnan
2018-08-27 15:26:52 -07:00
parent 3dfcd9324d
commit 0a1a011338
3 changed files with 82 additions and 2 deletions
+42
View File
@@ -9,6 +9,7 @@ angular.module('Application').controller('AccountController', ['$scope', 'Client
$scope.activeTokens = 0;
$scope.activeClients = [];
$scope.webadminClient = {};
$scope.apiClient = {};
$scope.twoFactorAuthentication = {
busy: false,
@@ -294,6 +295,46 @@ angular.module('Application').controller('AccountController', ['$scope', 'Client
}
};
$scope.tokenAdd = {
busy: false,
token: {},
show: function (client) {
$scope.tokenAdd.busy = true;
$scope.tokenAdd.token = {};
var expiresAt = Date.now() + 100 * 365 * 24 * 60 * 60 * 1000; // ~100 years from now
Client.createTokenByClientId(client.id, '*' /* scope */, expiresAt, function (error, result) {
if (error && error.statusCode === 412) {
var actionScope = $scope.$new(true);
actionScope.action = '/#/settings';
Client.notify('Not allowed', 'You have to enable the external API in the settings.', false, 'error', actionScope);
return;
} else if (error) {
return console.error(error);
}
$scope.tokenAdd.busy = false;
$scope.tokenAdd.token = result;
$('#tokenAddModal').modal('show');
refreshClientTokens(client);
});
}
};
$scope.removeToken = function (client, token) {
Client.delToken(client.id, token.accessToken, function (error) {
if (error) console.error(error);
refreshClientTokens(client);
});
};
function revokeTokensByClient(client, callback) {
Client.delTokensByClientId(client.id, function (error) {
if (error) console.error(error);
@@ -332,6 +373,7 @@ angular.module('Application').controller('AccountController', ['$scope', 'Client
$scope.activeClients = activeClients.filter(function (c) { return c.id !== 'cid-sdk' && c.id !== 'cid-webadmin'; });
$scope.webadminClient = activeClients.filter(function (c) { return c.id === 'cid-webadmin'; })[0];
$scope.apiClient = activeClients.filter(function (c) { return c.id === 'cid-sdk'; })[0];
$scope.activeTokenCount = $scope.activeClients.reduce(function (prev, cur) { return prev + cur.activeTokens.length; }, 0);
$scope.activeTokenCount += $scope.webadminClient ? $scope.webadminClient.activeTokens.length : 0;