Bläddra i källkod

Refactoring on url and redirect methods, moving them to Router

ohartl 9 år sedan
förälder
incheckning
5e72d0e715

+ 25 - 0
include/php/classes/Router.php

@@ -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;
+	}
 }

+ 0 - 24
include/php/global.inc.php

@@ -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
  *

+ 2 - 2
include/php/pages/admin/createdomain.php

@@ -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">

+ 7 - 7
include/php/pages/admin/deletedomain.php

@@ -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">

+ 6 - 6
include/php/pages/admin/deleteredirect.php

@@ -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">

+ 7 - 7
include/php/pages/admin/deleteuser.php

@@ -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">

+ 5 - 5
include/php/pages/admin/editredirect.php

@@ -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">

+ 9 - 9
include/php/pages/admin/edituser.php

@@ -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">

+ 2 - 2
include/php/pages/admin/listdomains.php

@@ -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; ?>

+ 3 - 3
include/php/pages/admin/listredirects.php

@@ -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; ?>

+ 3 - 3
include/php/pages/admin/listusers.php

@@ -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; ?>

+ 3 - 3
include/php/pages/admin/start.php

@@ -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>

+ 2 - 2
include/php/pages/login.php

@@ -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{

+ 1 - 1
include/php/pages/private/changepass.php

@@ -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(); ?>

+ 2 - 2
include/php/pages/private/start.php

@@ -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>

+ 1 - 1
include/php/pages/private/yourredirects.php

@@ -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(); ?>

+ 2 - 2
include/php/pages/start.php

@@ -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>
 

+ 1 - 1
include/php/routes.inc.php

@@ -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;
 });
 

+ 5 - 5
include/php/template/layout.php

@@ -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>