This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
adlin/token-validator/htdocs/js/adlin-main.js

376 lines
8.8 KiB
JavaScript
Raw Normal View History

2019-03-13 21:06:35 +00:00
angular.module("AdLinApp", ["ngRoute", "ngResource", "ngSanitize"])
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when("/auth", {
controller: "AuthController",
templateUrl: "views/auth.html"
})
.when("/domains", {
controller: "DomainsController",
templateUrl: "views/domains.html"
})
.when("/tunnels", {
controller: "TunnelsController",
templateUrl: "views/tunnels.html"
})
.when("/", {
templateUrl: "views/home.html"
});
$locationProvider.html5Mode(true);
});
angular.module("AdLinApp")
.factory("Student", function($resource) {
return $resource("/api/students/:studentId", { studentId: '@id' }, {
'update': {method: 'PUT'},
})
})
.factory("Progression", function($resource) {
return $resource("/api/progress")
})
.factory("Challenge", function($resource) {
return $resource("/challenge/:challengeId", { challengeId: '@id' })
});
angular.module("AdLinApp")
.run(function($rootScope, $interval, $http) {
$rootScope.checkLoginState = function() {
if (sessionStorage.token === undefined) {
$rootScope.isLogged = false;
return;
}
var token = sessionStorage.token;
$http({
method: 'GET',
url: "/api/auth",
headers: {
'Authorization': "Bearer " + token
}
}).then(function(response) {
$rootScope.isLogged = response.data;
}, function(response) {
$rootScope.isLogged = false;
});
};
$rootScope.checkLoginState();
$interval($rootScope.checkLoginState, 20000);
$rootScope.disconnectCurrentUser = function() {
sessionStorage.token = undefined;
delete sessionStorage.token;
$rootScope.isLogged = false;
}
})
.controller("AuthController", function($scope, $rootScope, $http, $location) {
$scope.auth = {
"username": "",
"password": "",
};
$scope.logmein = function() {
$scope.pleaseWait = true;
$http({
method: 'POST',
url: "/api/auth",
data: $scope.auth
}).then(function(response) {
sessionStorage.token = response.data.id_session
$scope.pleaseWait = false;
$rootScope.checkLoginState();
$location.url("/");
}, function(response) {
$scope.pleaseWait = false;
2019-03-25 22:43:09 +00:00
if (response.data && response.data.errmsg)
alert(response.data.errmsg);
2019-03-13 21:06:35 +00:00
});
}
})
.controller("TunnelsController", function($scope, $http, $interval) {
$scope.updateTunnelInfo = function() {
$http({
method: 'GET',
url: "/api/wginfo",
headers: {
'Authorization': "Bearer " + sessionStorage.token
}
}).then(function(response) {
$scope.wginfo = response.data;
});
};
$scope.updateTunnelInfo();
$scope.updateTunnelsList = function() {
$http({
method: 'GET',
url: "/api/wg/",
headers: {
'Authorization': "Bearer " + sessionStorage.token
}
}).then(function(response) {
$scope.tunnels = response.data;
}, function(response) {
2019-03-25 22:43:09 +00:00
if (response.data && response.data.errmsg)
alert(response.data.errmsg);
2019-03-13 21:06:35 +00:00
});
};
$scope.updateTunnelsList();
$interval($scope.updateTunnelsList, 12000);
$scope.newTunnel = function() {
$scope.pleaseWaitNew = true;
$http({
method: 'POST',
url: "/api/wg/",
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
data: {}
}).then(function(response) {
$scope.updateTunnelsList();
$scope.pleaseWaitNew = false;
}, function(response) {
$scope.pleaseWaitNew = false;
2019-03-25 22:43:09 +00:00
alert(response.data.errmsg);
2019-03-13 21:06:35 +00:00
});
}
$scope.dropTunnel = function(tunnel) {
tunnel.pleaseWaitDrop = true;
$http({
method: 'DELETE',
url: "/api/wg/" + tunnel.TokenText,
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
data: {}
}).then(function(response) {
$scope.updateTunnelsList();
tunnel.pleaseWaitDrop = false;
}, function(response) {
tunnel.pleaseWaitDrop = false;
2019-03-25 22:43:09 +00:00
alert(response.data.errmsg);
2019-03-13 21:06:35 +00:00
});
}
})
.controller("DomainsController", function($scope, $http, $interval, $location) {
var onUpdateEvt = [];
var callOnUpdateEvt = function() {
angular.forEach(onUpdateEvt, function(cb) {
cb();
});
}
$scope.addOnUpdateEvent = function(cb) {
onUpdateEvt.push(cb);
}
2019-03-14 07:51:40 +00:00
$scope.updateAssociationD = function() {
$http({
method: 'GET',
url: "/api/adomains/",
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
}).then(function(response) {
$scope.adomains = [];
response.data.forEach(function(domain) {
$http({
method: 'GET',
url: "/api/adomains/" + domain,
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
}).then(function(response) {
response.data.forEach(function(rr) {
$scope.adomains.push(rr);
});
});
}, function(response) {
alert(response.data.errmsg);
});
});
};
$scope.updateAssociationD();
$scope.updateDelegatedD = function() {
$http({
method: 'GET',
url: "/api/ddomains/",
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
}).then(function(response) {
response.data.forEach(function(domain) {
$scope.ddomains = response.data;
}, function(response) {
alert(response.data.errmsg);
});
});
};
$scope.updateDelegatedD();
2019-03-14 07:51:40 +00:00
$scope.newAssociationD = function() {
$scope.pleaseWaitNewAssociation = true;
$http({
method: 'POST',
url: "/api/adomains/",
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
}).then(function(response) {
$scope.updateAssociationD();
$scope.pleaseWaitNewAssociation = false;
}, function(response) {
$scope.pleaseWaitNewAssociation = false;
2019-03-25 22:43:09 +00:00
alert(response.data.errmsg);
2019-03-14 07:51:40 +00:00
});
}
2019-03-13 21:06:35 +00:00
$scope.addNS = function(domain) {
$scope.nsrr = {
"domain": domain,
"ttl": 900,
"rr": "NS",
"values": [""],
}
$('#NSModal').modal('show');
}
$scope.updateNS = function(domain, rr) {
$scope.nsrr = {
"domain": domain,
"ttl": 900,
"rr": "NS",
"valuesfrom": rr.values,
"values": rr.values,
}
$('#NSModal').modal('show');
}
$scope.addGLUE = function(domain) {
$scope.nsrr = {
"domain": domain,
"ttl": 900,
"rr": "AAAA",
"values": [""],
}
$('#NSModal').modal('show');
}
$scope.updateGLUE = function(domain, rr) {
$scope.nsrr = {
"domain": domain,
"ttl": 900,
"rr": "AAAA",
"valuesfrom": rr.values,
"values": rr.values,
}
$('#NSModal').modal('show');
}
$scope.addDS = function(domain) {
$scope.nsrr = {
"domain": domain,
"ttl": 900,
"rr": "DS",
"labels": ["Key Tag", "Flag", "Algorithme", "Clef publique (base64)"],
"values": ["", "", "", ""],
}
$('#NSModal').modal('show');
}
$scope.updateDS = function(domain, rr) {
$scope.nsrr = {
"domain": domain,
"ttl": 900,
"rr": "DS",
"labels": ["Key Tag", "Algo clef", "Algo hash", "Hash (hex)"],
"valuesfrom": rr.values,
"values": rr.values,
}
$('#NSModal').modal('show');
}
$scope.saveNSRR = function(nsrr) {
$http({
method: (nsrr.valuesfrom !== undefined)?'PATCH':'POST',
url: "/api/ddomains/" + nsrr.domain + "/" + nsrr.rr,
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
data: nsrr,
}).then(function(response) {
$('#NSModal').modal('hide');
callOnUpdateEvt();
}, function(response) {
alert(response.data.errmsg);
});
}
$scope.deleteRR = function(domain, rr) {
rr["pleaseWait" + rr.rr + "del"] = true;
$http({
method: 'DELETE',
url: "/api/ddomains/" + domain + "/" + rr.rr,
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
data: rr,
}).then(function(response) {
callOnUpdateEvt();
rr["pleaseWait" + rr.rr + "del"] = false;
}, function(response) {
rr["pleaseWait" + rr.rr + "del"] = false;
alert(response.data.errmsg);
});
}
})
.controller("NSDomainsController", function($scope, $http) {
var updateNS = function() {
$http({
method: 'GET',
url: "/api/ddomains/" + $scope.domain + "/NS",
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
}).then(function(response) {
$scope.domainNS = response.data;
});
}
updateNS();
$scope.addOnUpdateEvent(updateNS);
})
.controller("GLUEDomainsController", function($scope, $http) {
var updateGLUE = function() {
$http({
method: 'GET',
url: "/api/ddomains/" + $scope.domain + "/GLUE",
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
}).then(function(response) {
$scope.domainGLUE = response.data;
});
}
updateGLUE();
$scope.addOnUpdateEvent(updateGLUE);
})
.controller("DSDomainsController", function($scope, $http) {
var updateDS = function() {
$http({
method: 'GET',
url: "/api/ddomains/" + $scope.domain + "/DS",
headers: {
'Authorization': "Bearer " + sessionStorage.token
},
}).then(function(response) {
$scope.domainDS = response.data;
});
}
updateDS();
$scope.addOnUpdateEvent(updateDS);
2019-03-13 21:06:35 +00:00
})