admin: add a route and buttons to generate/delete fichtpasswd, if needed

This commit is contained in:
nemunaire 2020-01-23 19:03:45 +01:00
parent 590522e7ed
commit e945071a10
3 changed files with 36 additions and 0 deletions

View File

@ -33,6 +33,24 @@ func init() {
func(httprouter.Params, []byte) (interface{}, error) {
return genHtpasswd(true)
}))
router.POST("/api/htpasswd", apiHandler(
func(httprouter.Params, []byte) (interface{}, error) {
if htpasswd, err := genHtpasswd(true); err != nil {
return nil, err
} else if err := ioutil.WriteFile(path.Join(pki.PKIDir, "shared", "ficpasswd"), []byte(htpasswd), 0644); err != nil {
return nil, err
} else {
return true, nil
}
}))
router.DELETE("/api/htpasswd", apiHandler(
func(httprouter.Params, []byte) (interface{}, error) {
if err := os.Remove(path.Join(pki.PKIDir, "shared", "ficpasswd")); err != nil {
return nil, err
} else {
return true, nil
}
}))
router.GET("/api/htpasswd.apr1", apiHandler(
func(httprouter.Params, []byte) (interface{}, error) {
return genHtpasswd(false)

View File

@ -682,6 +682,20 @@ angular.module("FICApp")
$rootScope.newBox('danger', 'An error occurs when generating certificate:', response.data.errmsg);
});
};
$scope.generateHtpasswd = function() {
$http.post("/api/htpasswd").then(function() {
$rootScope.newBox('success', 'Fichier htpasswd généré avec succès');
}, function(response) {
$rootScope.newBox('danger', 'An error occurs when generating htpasswd file:', response.data.errmsg);
});
};
$scope.removeHtpasswd = function() {
$http.delete("/api/htpasswd").then(function() {
$rootScope.newBox('success', 'Fichier htpasswd supprimé avec succès');
}, function(response) {
$rootScope.newBox('danger', 'An error occurs when deleting htpasswd file:', response.data.errmsg);
});
};
})
.controller("PublicController", function($scope, $rootScope, $routeParams, $location, Scene, Theme, Teams, Exercice) {

View File

@ -1,6 +1,10 @@
<h2>
Certificats clients
<button type="button" ng-click="generateCert()" class="float-right btn btn-sm btn-primary"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Générer un certificat</button>
<div class="float-right btn-group mr-1" role="group">
<button type="button" ng-click="generateHtpasswd()" class="btn btn-sm btn-secondary"><span class="glyphicon glyphicon-save-file" aria-hidden="true"></span> Générer <code>fichtpasswd</code></button>
<button type="button" ng-click="removeHtpasswd()" class="btn btn-sm btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
</div>
</h2>
<p><input type="search" class="form-control" placeholder="Search" ng-model="query" autofocus></p>