Fix handling authentication
- URL routes now defaulty required authentication if force_authentication special function is defined. - handle_request() now trigger a fatal error if user try to access to a required route and if force_authentication function is not defined. - logging() now retreive username from $auth_user['username'].
This commit is contained in:
parent
e533ec9148
commit
01759fb4c2
7 changed files with 82 additions and 52 deletions
|
@ -60,7 +60,7 @@ function logging($level, $message) {
|
||||||
$_SERVER['REMOTE_ADDR'],
|
$_SERVER['REMOTE_ADDR'],
|
||||||
);
|
);
|
||||||
if (isset($auth_user))
|
if (isset($auth_user))
|
||||||
$msg[] = ($auth_user?$auth_user:'anonymous');
|
$msg[] = ($auth_user['username']?$auth_user['username']:'anonymous');
|
||||||
$msg[] = $level;
|
$msg[] = $level;
|
||||||
$msg[] = $message;
|
$msg[] = $message;
|
||||||
$msg = implode(' - ', $msg)."\n";
|
$msg = implode(' - ', $msg)."\n";
|
||||||
|
|
|
@ -29,14 +29,20 @@ $url_patterns =array();
|
||||||
* @param $pattern string The URL pattern (required)
|
* @param $pattern string The URL pattern (required)
|
||||||
* @param $handler callable The URL pattern handler (must be callable, required)
|
* @param $handler callable The URL pattern handler (must be callable, required)
|
||||||
* @param $authenticated boolean Permit to define if this URL is accessible only for
|
* @param $authenticated boolean Permit to define if this URL is accessible only for
|
||||||
* authenticated users (optional, default: true)
|
* authenticated users (optional, default: true if the special
|
||||||
|
* force_authentication function is defined, false otherwise)
|
||||||
* @param $override boolean Allow override if a command already exists with the
|
* @param $override boolean Allow override if a command already exists with the
|
||||||
* same name (optional, default: false)
|
* same name (optional, default: false)
|
||||||
* @param $api_mode boolean Enable API mode (optional, default: false)
|
* @param $api_mode boolean Enable API mode (optional, default: false)
|
||||||
* @param $methods array|null HTTP method (optional, default: array('GET', 'POST'))
|
* @param $methods array|null HTTP method (optional, default: array('GET', 'POST'))
|
||||||
**/
|
**/
|
||||||
function add_url_handler($pattern, $handler=null, $authenticated=false, $override=true,
|
function add_url_handler($pattern, $handler=null, $authenticated=null, $override=true,
|
||||||
$api_mode=false, $methods=null) {
|
$api_mode=false, $methods=null) {
|
||||||
|
$authenticated = (
|
||||||
|
is_null($authenticated)?
|
||||||
|
function_exists('force_authentication'):
|
||||||
|
(bool)$authenticated
|
||||||
|
);
|
||||||
if (is_null($methods))
|
if (is_null($methods))
|
||||||
$methods = array('GET', 'POST');
|
$methods = array('GET', 'POST');
|
||||||
elseif (!is_array($methods))
|
elseif (!is_array($methods))
|
||||||
|
@ -322,6 +328,10 @@ function redirect($go=false) {
|
||||||
/**
|
/**
|
||||||
* Handle the current requested URL
|
* Handle the current requested URL
|
||||||
*
|
*
|
||||||
|
* Note: if the route required that user is authenticated, this method will
|
||||||
|
* invoke the force_authentication() special function (or trigger a fatal error
|
||||||
|
* if it's not defined).
|
||||||
|
*
|
||||||
* @param $default_url string|null The default URL if current one does not
|
* @param $default_url string|null The default URL if current one does not
|
||||||
* match with any configured pattern.
|
* match with any configured pattern.
|
||||||
*
|
*
|
||||||
|
@ -343,8 +353,11 @@ function handle_request($default_url=null) {
|
||||||
$smarty -> assign('request', $request);
|
$smarty -> assign('request', $request);
|
||||||
|
|
||||||
// Check authentication (if need)
|
// Check authentication (if need)
|
||||||
if($request -> authenticated && function_exists('force_authentication'))
|
if($request -> authenticated)
|
||||||
force_authentication();
|
if (function_exists('force_authentication'))
|
||||||
|
force_authentication();
|
||||||
|
else
|
||||||
|
logging('FATAL', _("Authentication required but force_authentication function is not defined."));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return call_user_func($request -> handler, $request);
|
return call_user_func($request -> handler, $request);
|
||||||
|
|
Binary file not shown.
|
@ -1,7 +1,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"POT-Creation-Date: 2022-04-24 19:09+0200\n"
|
"POT-Creation-Date: 2022-04-25 18:40+0200\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: \n"
|
||||||
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
|
"Last-Translator: Benjamin Renard <brenard@easter-eggs.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
|
@ -351,27 +351,27 @@ msgstr ""
|
||||||
"\n"
|
"\n"
|
||||||
"Mail originalement destiné à %s."
|
"Mail originalement destiné à %s."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:92
|
#: /home/brenard/dev/eesyphp/includes/url.php:98
|
||||||
msgid "Bad request"
|
msgid "Bad request"
|
||||||
msgstr "Mauvaise requête"
|
msgstr "Mauvaise requête"
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:93
|
#: /home/brenard/dev/eesyphp/includes/url.php:99
|
||||||
msgid "Invalid request."
|
msgid "Invalid request."
|
||||||
msgstr "Requête invalide."
|
msgstr "Requête invalide."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:96
|
#: /home/brenard/dev/eesyphp/includes/url.php:102
|
||||||
msgid "Authentication required"
|
msgid "Authentication required"
|
||||||
msgstr "Authentification requise"
|
msgstr "Authentification requise"
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:97
|
#: /home/brenard/dev/eesyphp/includes/url.php:103
|
||||||
msgid "You have to be authenticated to access to this page."
|
msgid "You have to be authenticated to access to this page."
|
||||||
msgstr "Vous devez être authentifié pour accéder à cette page."
|
msgstr "Vous devez être authentifié pour accéder à cette page."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:100
|
#: /home/brenard/dev/eesyphp/includes/url.php:106
|
||||||
msgid "Access denied"
|
msgid "Access denied"
|
||||||
msgstr "Accès interdit"
|
msgstr "Accès interdit"
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:101
|
#: /home/brenard/dev/eesyphp/includes/url.php:107
|
||||||
msgid ""
|
msgid ""
|
||||||
"You do not have access to this application. If you think this is an error, "
|
"You do not have access to this application. If you think this is an error, "
|
||||||
"please contact support."
|
"please contact support."
|
||||||
|
@ -379,25 +379,25 @@ msgstr ""
|
||||||
"Vous n'avez pas accès à cette application. Si vous pensez qu'il s'agit d'une "
|
"Vous n'avez pas accès à cette application. Si vous pensez qu'il s'agit d'une "
|
||||||
"erreur, merci de prendre contact avec le support."
|
"erreur, merci de prendre contact avec le support."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:104
|
#: /home/brenard/dev/eesyphp/includes/url.php:110
|
||||||
msgid "Whoops ! Page not found"
|
msgid "Whoops ! Page not found"
|
||||||
msgstr "Oups ! Page introuvable"
|
msgstr "Oups ! Page introuvable"
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:105
|
#: /home/brenard/dev/eesyphp/includes/url.php:111
|
||||||
msgid "The requested page can not be found."
|
msgid "The requested page can not be found."
|
||||||
msgstr "La page demandée est introuvable."
|
msgstr "La page demandée est introuvable."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:113
|
#: /home/brenard/dev/eesyphp/includes/url.php:119
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Erreur"
|
msgstr "Erreur"
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:114
|
#: /home/brenard/dev/eesyphp/includes/url.php:120
|
||||||
msgid "An unknown error occurred. If problem persist, please contact support."
|
msgid "An unknown error occurred. If problem persist, please contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Une erreur inconnue est survenue. Si le problème persiste, merci de prendre "
|
"Une erreur inconnue est survenue. Si le problème persiste, merci de prendre "
|
||||||
"contact avec le support."
|
"contact avec le support."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:159
|
#: /home/brenard/dev/eesyphp/includes/url.php:165
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to determine the requested page. If the problem persists, please "
|
"Unable to determine the requested page. If the problem persists, please "
|
||||||
"contact support."
|
"contact support."
|
||||||
|
@ -405,7 +405,7 @@ msgstr ""
|
||||||
"Impossible de déterminer la page demandée. Si le problème persiste, merci de "
|
"Impossible de déterminer la page demandée. Si le problème persiste, merci de "
|
||||||
"prendre contact avec le support."
|
"prendre contact avec le support."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:312
|
#: /home/brenard/dev/eesyphp/includes/url.php:318
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to determine the requested page (loop detected). If the problem "
|
"Unable to determine the requested page (loop detected). If the problem "
|
||||||
"persists, please contact support."
|
"persists, please contact support."
|
||||||
|
@ -413,11 +413,18 @@ msgstr ""
|
||||||
"Impossible de déterminer la page demandée (boucle détectée). Si le problème "
|
"Impossible de déterminer la page demandée (boucle détectée). Si le problème "
|
||||||
"persiste, merci de prendre contact avec le support."
|
"persiste, merci de prendre contact avec le support."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:337
|
#: /home/brenard/dev/eesyphp/includes/url.php:347
|
||||||
msgid "This request cannot be processed."
|
msgid "This request cannot be processed."
|
||||||
msgstr "Cette requête ne peut être traitée."
|
msgstr "Cette requête ne peut être traitée."
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:355
|
#: /home/brenard/dev/eesyphp/includes/url.php:360
|
||||||
|
msgid ""
|
||||||
|
"Authentication required but force_authentication function is not defined."
|
||||||
|
msgstr ""
|
||||||
|
"Authentification requise mais la fonction force_authentication n'est pas "
|
||||||
|
"définie."
|
||||||
|
|
||||||
|
#: /home/brenard/dev/eesyphp/includes/url.php:368
|
||||||
msgid "This request could not be processed correctly."
|
msgid "This request could not be processed correctly."
|
||||||
msgstr "Cette requête n'a put être traitée correctement."
|
msgstr "Cette requête n'a put être traitée correctement."
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"POT-Creation-Date: 2022-04-24 20:13+0200\n"
|
"POT-Creation-Date: 2022-04-25 18:40+0200\n"
|
||||||
"PO-Revision-Date: 2022-04-24 20:13+0200\n"
|
"PO-Revision-Date: 2022-04-25 18:40+0200\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
|
@ -1,7 +1,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"POT-Creation-Date: 2022-04-24 20:13+0200\n"
|
"POT-Creation-Date: 2022-04-25 18:40+0200\n"
|
||||||
"PO-Revision-Date: 2022-04-24 20:13+0200\n"
|
"PO-Revision-Date: 2022-04-25 18:40+0200\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
@ -305,65 +305,70 @@ msgid ""
|
||||||
"Mail initialy intended for %s."
|
"Mail initialy intended for %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:92
|
#: /home/brenard/dev/eesyphp/includes/url.php:98
|
||||||
msgid "Bad request"
|
msgid "Bad request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:93
|
#: /home/brenard/dev/eesyphp/includes/url.php:99
|
||||||
msgid "Invalid request."
|
msgid "Invalid request."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:96
|
#: /home/brenard/dev/eesyphp/includes/url.php:102
|
||||||
msgid "Authentication required"
|
msgid "Authentication required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:97
|
#: /home/brenard/dev/eesyphp/includes/url.php:103
|
||||||
msgid "You have to be authenticated to access to this page."
|
msgid "You have to be authenticated to access to this page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:100
|
#: /home/brenard/dev/eesyphp/includes/url.php:106
|
||||||
msgid "Access denied"
|
msgid "Access denied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:101
|
#: /home/brenard/dev/eesyphp/includes/url.php:107
|
||||||
msgid ""
|
msgid ""
|
||||||
"You do not have access to this application. If you think this is an error, "
|
"You do not have access to this application. If you think this is an error, "
|
||||||
"please contact support."
|
"please contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:104
|
#: /home/brenard/dev/eesyphp/includes/url.php:110
|
||||||
msgid "Whoops ! Page not found"
|
msgid "Whoops ! Page not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:105
|
#: /home/brenard/dev/eesyphp/includes/url.php:111
|
||||||
msgid "The requested page can not be found."
|
msgid "The requested page can not be found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:113
|
#: /home/brenard/dev/eesyphp/includes/url.php:119
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:114
|
#: /home/brenard/dev/eesyphp/includes/url.php:120
|
||||||
msgid "An unknown error occurred. If problem persist, please contact support."
|
msgid "An unknown error occurred. If problem persist, please contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:159
|
#: /home/brenard/dev/eesyphp/includes/url.php:165
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to determine the requested page. If the problem persists, please "
|
"Unable to determine the requested page. If the problem persists, please "
|
||||||
"contact support."
|
"contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:312
|
#: /home/brenard/dev/eesyphp/includes/url.php:318
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to determine the requested page (loop detected). If the problem "
|
"Unable to determine the requested page (loop detected). If the problem "
|
||||||
"persists, please contact support."
|
"persists, please contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:337
|
#: /home/brenard/dev/eesyphp/includes/url.php:347
|
||||||
msgid "This request cannot be processed."
|
msgid "This request cannot be processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:355
|
#: /home/brenard/dev/eesyphp/includes/url.php:360
|
||||||
|
msgid ""
|
||||||
|
"Authentication required but force_authentication function is not defined."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/brenard/dev/eesyphp/includes/url.php:368
|
||||||
msgid "This request could not be processed correctly."
|
msgid "This request could not be processed correctly."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -297,65 +297,70 @@ msgid ""
|
||||||
"Mail initialy intended for %s."
|
"Mail initialy intended for %s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:92
|
#: /home/brenard/dev/eesyphp/includes/url.php:98
|
||||||
msgid "Bad request"
|
msgid "Bad request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:93
|
#: /home/brenard/dev/eesyphp/includes/url.php:99
|
||||||
msgid "Invalid request."
|
msgid "Invalid request."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:96
|
#: /home/brenard/dev/eesyphp/includes/url.php:102
|
||||||
msgid "Authentication required"
|
msgid "Authentication required"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:97
|
#: /home/brenard/dev/eesyphp/includes/url.php:103
|
||||||
msgid "You have to be authenticated to access to this page."
|
msgid "You have to be authenticated to access to this page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:100
|
#: /home/brenard/dev/eesyphp/includes/url.php:106
|
||||||
msgid "Access denied"
|
msgid "Access denied"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:101
|
#: /home/brenard/dev/eesyphp/includes/url.php:107
|
||||||
msgid ""
|
msgid ""
|
||||||
"You do not have access to this application. If you think this is an error, "
|
"You do not have access to this application. If you think this is an error, "
|
||||||
"please contact support."
|
"please contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:104
|
#: /home/brenard/dev/eesyphp/includes/url.php:110
|
||||||
msgid "Whoops ! Page not found"
|
msgid "Whoops ! Page not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:105
|
#: /home/brenard/dev/eesyphp/includes/url.php:111
|
||||||
msgid "The requested page can not be found."
|
msgid "The requested page can not be found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:113
|
#: /home/brenard/dev/eesyphp/includes/url.php:119
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:114
|
#: /home/brenard/dev/eesyphp/includes/url.php:120
|
||||||
msgid "An unknown error occurred. If problem persist, please contact support."
|
msgid "An unknown error occurred. If problem persist, please contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:159
|
#: /home/brenard/dev/eesyphp/includes/url.php:165
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to determine the requested page. If the problem persists, please "
|
"Unable to determine the requested page. If the problem persists, please "
|
||||||
"contact support."
|
"contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:312
|
#: /home/brenard/dev/eesyphp/includes/url.php:318
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unable to determine the requested page (loop detected). If the problem "
|
"Unable to determine the requested page (loop detected). If the problem "
|
||||||
"persists, please contact support."
|
"persists, please contact support."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:337
|
#: /home/brenard/dev/eesyphp/includes/url.php:347
|
||||||
msgid "This request cannot be processed."
|
msgid "This request cannot be processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: /home/brenard/dev/eesyphp/includes/url.php:355
|
#: /home/brenard/dev/eesyphp/includes/url.php:360
|
||||||
|
msgid ""
|
||||||
|
"Authentication required but force_authentication function is not defined."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: /home/brenard/dev/eesyphp/includes/url.php:368
|
||||||
msgid "This request could not be processed correctly."
|
msgid "This request could not be processed correctly."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue