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
|
|
|
});
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2019-03-14 10:21:45 +00:00
|
|
|
.controller("DomainsController", function($scope, $http, $interval, $location) {
|
2019-03-19 13:00:33 +00:00
|
|
|
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();
|
|
|
|
|
2019-03-14 10:21:45 +00:00
|
|
|
$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
|
|
|
|
2019-03-19 13:00:33 +00:00
|
|
|
$scope.addNS = function(domain) {
|
|
|
|
$scope.nsrr = {
|
|
|
|
"domain": domain,
|
|
|
|
"ttl": 900,
|
|
|
|
"rr": "NS",
|
|
|
|
"values": [""],
|
|
|
|
}
|
|
|
|
$('#NSModal').modal('show');
|
|
|
|
}
|
|
|
|
$scope.updateNS = function(domain, rr) {
|
2019-03-14 10:21:45 +00:00
|
|
|
$scope.nsrr = {
|
|
|
|
"domain": domain,
|
|
|
|
"ttl": 900,
|
|
|
|
"rr": "NS",
|
2019-03-19 13:00:33 +00:00
|
|
|
"valuesfrom": rr.values,
|
|
|
|
"values": rr.values,
|
|
|
|
}
|
|
|
|
$('#NSModal').modal('show');
|
|
|
|
}
|
|
|
|
$scope.addGLUE = function(domain) {
|
|
|
|
$scope.nsrr = {
|
|
|
|
"domain": domain,
|
|
|
|
"ttl": 900,
|
|
|
|
"rr": "AAAA",
|
|
|
|
"values": [""],
|
2019-03-14 10:21:45 +00:00
|
|
|
}
|
|
|
|
$('#NSModal').modal('show');
|
|
|
|
}
|
2019-03-19 13:00:33 +00:00
|
|
|
$scope.updateGLUE = function(domain, rr) {
|
2019-03-14 10:21:45 +00:00
|
|
|
$scope.nsrr = {
|
|
|
|
"domain": domain,
|
|
|
|
"ttl": 900,
|
|
|
|
"rr": "AAAA",
|
2019-03-19 13:00:33 +00:00
|
|
|
"valuesfrom": rr.values,
|
|
|
|
"values": rr.values,
|
2019-03-14 10:21:45 +00:00
|
|
|
}
|
|
|
|
$('#NSModal').modal('show');
|
|
|
|
}
|
2019-03-19 13:00:33 +00:00
|
|
|
$scope.addDS = function(domain) {
|
2019-03-14 10:21:45 +00:00
|
|
|
$scope.nsrr = {
|
|
|
|
"domain": domain,
|
|
|
|
"ttl": 900,
|
|
|
|
"rr": "DS",
|
|
|
|
"labels": ["Key Tag", "Flag", "Algorithme", "Clef publique (base64)"],
|
|
|
|
"values": ["", "", "", ""],
|
|
|
|
}
|
|
|
|
$('#NSModal').modal('show');
|
|
|
|
}
|
2019-03-19 13:00:33 +00:00
|
|
|
$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');
|
|
|
|
}
|
2019-03-14 10:21:45 +00:00
|
|
|
|
|
|
|
$scope.saveNSRR = function(nsrr) {
|
|
|
|
$http({
|
2019-03-19 13:00:33 +00:00
|
|
|
method: (nsrr.valuesfrom !== undefined)?'PATCH':'POST',
|
2019-03-14 10:21:45 +00:00
|
|
|
url: "/api/ddomains/" + nsrr.domain + "/" + nsrr.rr,
|
|
|
|
headers: {
|
|
|
|
'Authorization': "Bearer " + sessionStorage.token
|
|
|
|
},
|
|
|
|
data: nsrr,
|
|
|
|
}).then(function(response) {
|
|
|
|
$('#NSModal').modal('hide');
|
2019-03-19 13:00:33 +00:00
|
|
|
callOnUpdateEvt();
|
2019-03-14 10:21:45 +00:00
|
|
|
}, function(response) {
|
|
|
|
alert(response.data.errmsg);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2019-03-19 13:00:33 +00:00
|
|
|
$scope.deleteRR = function(domain, rr) {
|
|
|
|
rr["pleaseWait" + rr.rr + "del"] = true;
|
2019-03-14 10:21:45 +00:00
|
|
|
$http({
|
|
|
|
method: 'DELETE',
|
2019-03-19 13:00:33 +00:00
|
|
|
url: "/api/ddomains/" + domain + "/" + rr.rr,
|
2019-03-14 10:21:45 +00:00
|
|
|
headers: {
|
|
|
|
'Authorization': "Bearer " + sessionStorage.token
|
|
|
|
},
|
2019-03-19 13:00:33 +00:00
|
|
|
data: rr,
|
2019-03-14 10:21:45 +00:00
|
|
|
}).then(function(response) {
|
2019-03-19 13:00:33 +00:00
|
|
|
callOnUpdateEvt();
|
|
|
|
rr["pleaseWait" + rr.rr + "del"] = false;
|
2019-03-14 10:21:45 +00:00
|
|
|
}, function(response) {
|
2019-03-19 13:00:33 +00:00
|
|
|
rr["pleaseWait" + rr.rr + "del"] = false;
|
2019-03-14 10:21:45 +00:00
|
|
|
alert(response.data.errmsg);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
.controller("NSDomainsController", function($scope, $http) {
|
2019-03-19 13:00:33 +00:00
|
|
|
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);
|
2019-03-14 10:21:45 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
.controller("GLUEDomainsController", function($scope, $http) {
|
2019-03-19 13:00:33 +00:00
|
|
|
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);
|
2019-03-14 10:21:45 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
.controller("DSDomainsController", function($scope, $http) {
|
2019-03-19 13:00:33 +00:00
|
|
|
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
|
|
|
})
|