From e945071a103269f384b4dc2880ada34904027212 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Thu, 23 Jan 2020 19:03:45 +0100 Subject: [PATCH] admin: add a route and buttons to generate/delete fichtpasswd, if needed --- admin/api/certificate.go | 18 ++++++++++++++++++ admin/static/js/app.js | 14 ++++++++++++++ admin/static/views/pki.html | 4 ++++ 3 files changed, 36 insertions(+) diff --git a/admin/api/certificate.go b/admin/api/certificate.go index 18ef26e4..de46ccc5 100644 --- a/admin/api/certificate.go +++ b/admin/api/certificate.go @@ -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) diff --git a/admin/static/js/app.js b/admin/static/js/app.js index 767c17d3..acab3101 100644 --- a/admin/static/js/app.js +++ b/admin/static/js/app.js @@ -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) { diff --git a/admin/static/views/pki.html b/admin/static/views/pki.html index deb4b373..c4ceeb7a 100644 --- a/admin/static/views/pki.html +++ b/admin/static/views/pki.html @@ -1,6 +1,10 @@

Certificats clients +
+ + +