Refactoring on url and redirect methods, moving them to Router

This commit is contained in:
ohartl 2016-02-26 22:47:02 +01:00
parent b8486843a8
commit 5e72d0e715
19 changed files with 86 additions and 85 deletions

View file

@ -216,4 +216,29 @@ class Router
return ob_get_clean();
}
/**
* Generate full url
*
* @param string $url
*
* @return string
*/
public static function url($url)
{
return sprintf('%s/%s', rtrim(FRONTEND_BASE_PATH, '/'), trim($url, '/'));
}
/**
* Redirect user to an url
*
* @param string $url
*/
public static function redirect($url)
{
header("Location: ".static::url($url));
exit;
}
}

View file

@ -69,30 +69,6 @@ function writeLog($text)
}
/**
* Generate full url
*
* @param string $url
*
* @return string
*/
function url($url)
{
return sprintf('%s/%s', rtrim(FRONTEND_BASE_PATH, '/'), trim($url, '/'));
}
/**
* Redirect user to an url
*
* @param string $url
*/
function redirect($url)
{
header("Location: ".url($url));
exit;
}
/**
* Split comma, semicolon or newline separated list of emails to string
*

View file

@ -20,7 +20,7 @@ if(isset($_POST['domain'])){
);
// Created domain successfull, redirect to overview
redirect("admin/listdomains/?created=1");
Router::redirect("admin/listdomains/?created=1");
}
else{
add_message("fail", "Domain already exists in database.");
@ -38,7 +38,7 @@ if(isset($_POST['domain'])){
<?php output_messages(); ?>
<div class="buttons">
<a class="button" href="<?php echo url('admin/listdomains'); ?>">&#10092; Back to domain list</a>
<a class="button" href="<?php echo Router::url('admin/listdomains'); ?>">&#10092; Back to domain list</a>
</div>
<form class="form" action="" method="post" autocomplete="off">

View file

@ -6,7 +6,7 @@ if(Auth::getUser()->isDomainLimited()){
if(!isset($_GET['id'])){
// Domain id not set, redirect to overview
redirect("admin/listdomains");
Router::redirect("admin/listdomains");
}
$id = $_GET['id'];
@ -16,11 +16,11 @@ $domain = Domain::find($id);
if(is_null($domain)){
// Domain doesn't exist, redirect to overview
redirect("admin/listdomains");
Router::redirect("admin/listdomains");
}
if(!$domain->isInLimitedDomains()){
redirect("admin/listdomains/?missing-permission=1");
Router::redirect("admin/listdomains/?missing-permission=1");
}
// Delete domain
@ -51,17 +51,17 @@ if(isset($_POST['confirm'])){
$domain->delete();
// Delete domain successfull, redirect to overview
redirect("admin/listdomains/?deleted=1");
Router::redirect("admin/listdomains/?deleted=1");
}
else{
// Cannot delete domain with admin emails, redirect to overview
redirect("admin/listdomains/?adm_del=1");
Router::redirect("admin/listdomains/?adm_del=1");
}
}
else{
// Choose to not delete domain, redirect to overview
redirect("admin/listdomains");
Router::redirect("admin/listdomains");
}
}
?>
@ -69,7 +69,7 @@ if(isset($_POST['confirm'])){
<h1>Delete domain "<?php echo $domain->getDomain() ?>"?</h1>
<div class="buttons">
<a class="button" href="<?php echo url('admin/listdomains'); ?>">&#10092; Back to domain list</a>
<a class="button" href="<?php echo Router::url('admin/listdomains'); ?>">&#10092; Back to domain list</a>
</div>
<form class="form" action="" method="post" autocomplete="off">

View file

@ -2,7 +2,7 @@
if(!isset($_GET['id'])){
// Redirect id not set, redirect to overview
redirect("admin/listredirects");
Router::redirect("admin/listredirects");
}
$id = $_GET['id'];
@ -12,11 +12,11 @@ $redirect = AbstractRedirect::findMulti($id);
if(is_null($redirect)){
// Redirect doesn't exist, redirect to overview
redirect("admin/listredirects");
Router::redirect("admin/listredirects");
}
if(!$redirect->isInLimitedDomains()){
redirect("admin/listredirects/?missing-permission=1");
Router::redirect("admin/listredirects/?missing-permission=1");
}
if(isset($_POST['confirm'])){
@ -40,11 +40,11 @@ if(isset($_POST['confirm'])){
}
// Delete redirect successfull, redirect to overview
redirect("admin/listredirects/?deleted=1");
Router::redirect("admin/listredirects/?deleted=1");
}
else{
// Choose to not delete redirect, redirect to overview
redirect("admin/listredirects");
Router::redirect("admin/listredirects");
}
}
@ -54,7 +54,7 @@ else{
<h1>Delete redirection?</h1>
<div class="buttons">
<a class="button" href="<?php echo url('admin/listredirects'); ?>">&#10092; Back to redirect list</a>
<a class="button" href="<?php echo Router::url('admin/listredirects'); ?>">&#10092; Back to redirect list</a>
</div>
<form class="form" action="" method="post" autocomplete="off">

View file

@ -2,7 +2,7 @@
if(!isset($_GET['id'])){
// Redirect id not set, redirect to overview
redirect("admin/listredirects");
Router::redirect("admin/listredirects");
}
$id = $_GET['id'];
@ -12,11 +12,11 @@ $user = User::find($id);
if(is_null($user)){
// User doesn't exist, redirect to overview
redirect("admin/listusers");
Router::redirect("admin/listusers");
}
if(!$user->isInLimitedDomains()){
redirect("admin/listusers/?missing-permission=1");
Router::redirect("admin/listusers/?missing-permission=1");
}
// Delete user
@ -30,16 +30,16 @@ if(isset($_POST['confirm'])){
$user->delete();
// Delete user successful, redirect to overview
redirect("admin/listusers/?deleted=1");
Router::redirect("admin/listusers/?deleted=1");
}
else{
// Admin tried to delete himself, redirect to overview
redirect("admin/listusers/?adm_del=1");
Router::redirect("admin/listusers/?adm_del=1");
}
}
else{
// Choose to not delete user, redirect to overview
redirect("admin/listusers");
Router::redirect("admin/listusers");
}
}
@ -48,7 +48,7 @@ if(isset($_POST['confirm'])){
<h1>Delete user "<?php echo $user->getEmail() ?>"?</h1>
<div class="buttons">
<a class="button" href="<?php echo url('admin/listusers'); ?>">&#10092; Back to user list</a>
<a class="button" href="<?php echo Router::url('admin/listusers'); ?>">&#10092; Back to user list</a>
</div>
<form class="form" action="" method="post" autocomplete="off">

View file

@ -11,11 +11,11 @@ if(isset($_GET['id'])){
if(is_null($redirect)){
// Redirect doesn't exist, redirect to overview
redirect("admin/listredirects");
Router::redirect("admin/listredirects");
}
if(!$redirect->isInLimitedDomains()){
redirect("admin/listredirects/?missing-permission=1");
Router::redirect("admin/listredirects/?missing-permission=1");
}
}
@ -157,7 +157,7 @@ if(isset($_POST['savemode'])){
}
// Edit successfull, redirect to overview
redirect("admin/listredirects/?edited=1");
Router::redirect("admin/listredirects/?edited=1");
}
}
else{
@ -205,7 +205,7 @@ if(isset($_POST['savemode'])){
}
// Redirect created, redirect to overview
redirect("admin/listredirects/?created=1");
Router::redirect("admin/listredirects/?created=1");
}
}
else{
@ -228,7 +228,7 @@ $domains = Domain::getByLimitedDomains();
<h1><?php echo ($mode === "create") ? 'Create' : 'Edit'; ?> Redirect</h1>
<div class="buttons">
<a class="button" href="<?php echo url('admin/listredirects'); ?>">&#10092; Back to redirects list</a>
<a class="button" href="<?php echo Router::url('admin/listredirects'); ?>">&#10092; Back to redirects list</a>
</div>
<div class="notification">

View file

@ -24,7 +24,7 @@ if(!is_null($saveMode)){
if(!isset($_POST['id'])){
// User id not set, redirect to overview
redirect("admin/listusers");
Router::redirect("admin/listusers");
}
$inputId = $_POST['id'];
@ -34,11 +34,11 @@ if(!is_null($saveMode)){
if(is_null($userToEdit)){
// User doesn't exist, redirect to overview
redirect("admin/listusers");
Router::redirect("admin/listusers");
}
if(!$userToEdit->isInLimitedDomains()){
redirect("admin/listusers/?missing-permission=1");
Router::redirect("admin/listusers/?missing-permission=1");
}
if(defined('DBC_USERS_MAILBOXLIMIT') && !is_null($inputMailboxLimit)){
@ -62,7 +62,7 @@ if(!is_null($saveMode)){
if(!$passwordError){
// Edit user successfull, redirect to overview
redirect("admin/listusers/?edited=1");
Router::redirect("admin/listusers/?edited=1");
}
}
@ -85,7 +85,7 @@ if(!is_null($saveMode)){
if(!is_null($selectedDomain)){
if(!$selectedDomain->isInLimitedDomains()){
redirect("admin/listusers/?missing-permission=1");
Router::redirect("admin/listusers/?missing-permission=1");
}
/** @var User $user */
@ -116,7 +116,7 @@ if(!is_null($saveMode)){
$user = User::createAndSave($data);
// Redirect user to user list
redirect("admin/listusers/?created=1");
Router::redirect("admin/listusers/?created=1");
}
catch(Exception $passwordInvalidException){
add_message("fail", $passwordInvalidException->getMessage());
@ -149,11 +149,11 @@ if(isset($_GET['id'])){
if(is_null($user)){
// User doesn't exist, redirect to overview
redirect("admin/listusers");
Router::redirect("admin/listusers");
}
if(!$user->isInLimitedDomains()){
redirect("admin/listusers/?missing-permission=1");
Router::redirect("admin/listusers/?missing-permission=1");
}
}
@ -162,7 +162,7 @@ if(isset($_GET['id'])){
<h1><?php echo ($mode === "create") ? "Create User" : "Edit user \"{$user->getEmail()}\""; ?></h1>
<div class="buttons">
<a class="button" href="<?php echo url('admin/listusers'); ?>">&#10092; Back to user list</a>
<a class="button" href="<?php echo Router::url('admin/listusers'); ?>">&#10092; Back to user list</a>
</div>
<form class="form" action="" method="post" autocomplete="off">

View file

@ -25,7 +25,7 @@ $domains = Domain::findAll();
<?php if(!Auth::getUser()->isDomainLimited()): ?>
<div class="buttons">
<a class="button" href="<?php echo url('admin/createdomain'); ?>">Create new domain</a>
<a class="button" href="<?php echo Router::url('admin/createdomain'); ?>">Create new domain</a>
</div>
<?php endif; ?>
@ -48,7 +48,7 @@ $domains = Domain::findAll();
<td><?php echo $domain->countUsers(); ?></td>
<td><?php echo $domain->countRedirects(); ?></td>
<td>
<a href="<?php echo url('admin/deletedomain/?id='.$domain->getId()); ?>">[Delete]</a>
<a href="<?php echo Router::url('admin/deletedomain/?id='.$domain->getId()); ?>">[Delete]</a>
</td>
</tr>
<?php endforeach; ?>

View file

@ -21,7 +21,7 @@ $redirects = AbstractRedirect::getMultiByLimitedDomains();
<?php if(!(Auth::getUser()->isDomainLimited() && count(Domain::getByLimitedDomains()) === 0)): ?>
<div class="buttons">
<a class="button" href="<?php echo url('admin/editredirect'); ?>">Create new redirect</a>
<a class="button" href="<?php echo Router::url('admin/editredirect'); ?>">Create new redirect</a>
</div>
<?php else: ?>
<div class="notification notification-warning">
@ -52,10 +52,10 @@ $redirects = AbstractRedirect::getMultiByLimitedDomains();
</td>
<td><?php echo formatEmails($redirect->getDestination(), str_replace(PHP_EOL, '<br>', FRONTEND_EMAIL_SEPARATOR_TEXT)); ?></td>
<td>
<a href="<?php echo url('admin/editredirect/?id='.$redirect->getId()); ?>">[Edit]</a>
<a href="<?php echo Router::url('admin/editredirect/?id='.$redirect->getId()); ?>">[Edit]</a>
</td>
<td>
<a href="<?php echo url('admin/deleteredirect/?id='.$redirect->getId()); ?>">[Delete]</a>
<a href="<?php echo Router::url('admin/deleteredirect/?id='.$redirect->getId()); ?>">[Delete]</a>
</td>
</tr>
<?php endforeach; ?>

View file

@ -24,7 +24,7 @@ $users = User::getByLimitedDomains();
<?php if(!(Auth::getUser()->isDomainLimited() && count(Domain::getByLimitedDomains()) === 0)): ?>
<div class="buttons">
<a class="button button-small" href="<?php echo url('admin/edituser'); ?>">Create new user</a>
<a class="button button-small" href="<?php echo Router::url('admin/edituser'); ?>">Create new user</a>
</div>
<?php else: ?>
<div class="notification notification-warning">
@ -65,10 +65,10 @@ $users = User::getByLimitedDomains();
<td><?php echo $user->getRedirects()->count(); ?></td>
<td><?php echo ($user->getRole() === User::ROLE_ADMIN) ? 'Admin' : 'User'; ?></td>
<td>
<a href="<?php echo url('admin/edituser/?id='.$user->getId()); ?>">[Edit]</a>
<a href="<?php echo Router::url('admin/edituser/?id='.$user->getId()); ?>">[Edit]</a>
</td>
<td>
<a href="<?php echo url('admin/deleteuser/?id='.$user->getId()); ?>">[Delete]</a>
<a href="<?php echo Router::url('admin/deleteuser/?id='.$user->getId()); ?>">[Delete]</a>
</td>
</tr>
<?php endforeach; ?>

View file

@ -1,11 +1,11 @@
<h1>Admin Dashboard</h1>
<div class="buttons buttons-horizontal button-large">
<a class="button" href="<?php echo url('admin/listusers'); ?>">Manage users</a>
<a class="button" href="<?php echo Router::url('admin/listusers'); ?>">Manage users</a>
<?php if(!Auth::getUser()->isDomainLimited()): ?>
<a class="button" href="<?php echo url('admin/listdomains'); ?>">Manage domains</a>
<a class="button" href="<?php echo Router::url('admin/listdomains'); ?>">Manage domains</a>
<?php endif; ?>
<a class="button" href="<?php echo url('admin/listredirects'); ?>">Manage redirects</a>
<a class="button" href="<?php echo Router::url('admin/listredirects'); ?>">Manage redirects</a>
</div>

View file

@ -2,7 +2,7 @@
// If user is already logged in, redirect to start.
if(Auth::isLoggedIn()){
redirect("private");
Router::redirect("private");
}
if(isset($_POST['email']) && isset($_POST['password'])){
@ -12,7 +12,7 @@ if(isset($_POST['email']) && isset($_POST['password'])){
else {
// Start login
if(Auth::login($_POST['email'], $_POST['password'])){
redirect("private");
Router::redirect("private");
}
// If login isn't successful
else{

View file

@ -16,7 +16,7 @@ if(isset($_POST['password']) && isset($_POST['password_repeat'])){
<h1>Change password</h1>
<div class="buttons">
<a class="button" href="<?php echo url('private'); ?>">&#10092; Back to personal dashboard</a>
<a class="button" href="<?php echo Router::url('private'); ?>">&#10092; Back to personal dashboard</a>
</div>
<?php output_messages(); ?>

View file

@ -5,9 +5,9 @@
</p>
<div class="buttons buttons-horizontal button-large">
<a class="button" href="<?php echo url('private/changepass'); ?>">Change your password</a>
<a class="button" href="<?php echo Router::url('private/changepass'); ?>">Change your password</a>
</div>
<div class="buttons buttons-horizontal button-large">
<a class="button" href="<?php echo url('private/yourredirects'); ?>">Redirects to your mailbox</a>
<a class="button" href="<?php echo Router::url('private/yourredirects'); ?>">Redirects to your mailbox</a>
</div>

View file

@ -7,7 +7,7 @@ $redirects = Auth::getUser()->getAnonymizedRedirects();
<h1>Redirects to your mailbox</h1>
<div class="buttons">
<a class="button" href="<?php echo url('private'); ?>">&#10092; Back to personal dashboard</a>
<a class="button" href="<?php echo Router::url('private'); ?>">&#10092; Back to personal dashboard</a>
</div>
<?php output_messages(); ?>

View file

@ -1,6 +1,6 @@
<?php
if(Auth::isLoggedIn()){
redirect("private");
Router::redirect("private");
}
?>
@ -12,6 +12,6 @@ if(Auth::isLoggedIn()){
</p>
<div class="buttons buttons-horizontal">
<a class="button" href="<?php echo url('login'); ?>">Log in</a>
<a class="button" href="<?php echo Router::url('login'); ?>">Log in</a>
</div>

View file

@ -9,7 +9,7 @@ Router::addGet('/', 'include/php/pages/start.php');
Router::addMixed('/login', 'include/php/pages/login.php');
Router::addGet('/logout', function(){
Auth::logout();
redirect('/');
Router::redirect('/');
return;
});

View file

@ -2,7 +2,7 @@
<html>
<head>
<title>WebMUM</title>
<link rel=stylesheet href="<?php echo url('include/css/style.css'); ?>" type="text/css" media=screen>
<link rel=stylesheet href="<?php echo Router::url('include/css/style.css'); ?>" type="text/css" media=screen>
<?php if(defined('MIN_PASS_LENGTH')): ?>
<script type="text/javascript">
function generatePassword() {
@ -20,22 +20,22 @@
<body>
<div id="header">
<div class="title"><a href="<?php echo url('/'); ?>">WebMUM - Web Mailserver User Manager</a></div>
<div class="title"><a href="<?php echo Router::url('/'); ?>">WebMUM - Web Mailserver User Manager</a></div>
<div class="header-menu">
<?php if(Auth::hasPermission(User::ROLE_ADMIN)): ?>
<div class="header-button">
<a href="<?php echo url('admin'); ?>">[Admin Dashboard]</a>
<a href="<?php echo Router::url('admin'); ?>">[Admin Dashboard]</a>
</div>
<?php endif; ?>
<?php if(Auth::hasPermission(User::ROLE_USER)): ?>
<div class="header-button">
<a href="<?php echo url('private'); ?>">[Personal Dashboard]</a>
<a href="<?php echo Router::url('private'); ?>">[Personal Dashboard]</a>
</div>
<?php endif; ?>
<?php if(Auth::isLoggedIn()): ?>
<div class="header-button">
Logged in as <?php echo Auth::getUser()->getEmail(); ?>
<a href="<?php echo url('logout'); ?>">[Logout]</a>
<a href="<?php echo Router::url('logout'); ?>">[Logout]</a>
</div>
<?php endif; ?>
</div>