From a8ac2004d3f25877d9e7b4fa58f10009c39f8acf Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Thu, 27 Apr 2017 09:24:11 +0200 Subject: Add support for Terms of Service documents This allows for adding Terms of Service documents to the database that registered users need to accept before using the AUR. A revision field can be used to indicate whether a document was updated. If it is increased, all users are again asked to accept the new terms. Signed-off-by: Lukas Fleischer --- web/lib/aur.inc.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'web/lib/aur.inc.php') diff --git a/web/lib/aur.inc.php b/web/lib/aur.inc.php index 063de8fc..ce569ea7 100644 --- a/web/lib/aur.inc.php +++ b/web/lib/aur.inc.php @@ -22,6 +22,7 @@ include_once('timezone.inc.php'); set_tz(); check_sid(); +check_tos(); /** * Check if a visitor is logged in @@ -91,6 +92,28 @@ function check_sid() { return; } +/** + * Redirect user to the Terms of Service agreement if there are updated terms. + * + * @return void + */ +function check_tos() { + if (!isset($_COOKIE["AURSID"])) { + return; + } + + $path = $_SERVER['PATH_INFO']; + $route = get_route($path); + if (!$route || $route == "tos.php") { + return; + } + + if (count(fetch_updated_terms(uid_from_sid($_COOKIE["AURSID"]))) > 0) { + header('Location: ' . get_uri('/tos')); + exit(); + } +} + /** * Verify the supplied CSRF token matches expected token * -- cgit v1.2.3-24-g4f1b