summaryrefslogtreecommitdiff
path: root/app/Controller
diff options
context:
space:
mode:
Diffstat (limited to 'app/Controller')
-rw-r--r--app/Controller/Base.php43
-rw-r--r--app/Controller/Project.php21
2 files changed, 45 insertions, 19 deletions
diff --git a/app/Controller/Base.php b/app/Controller/Base.php
index 2739c5ac..7b1cfd85 100644
--- a/app/Controller/Base.php
+++ b/app/Controller/Base.php
@@ -12,22 +12,24 @@ use Model\LastLogin;
*
* @package controller
* @author Frederic Guillot
- * @property \Model\Acl $acl
- * @property \Model\Action $action
- * @property \Model\Board $board
- * @property \Model\Category $category
- * @property \Model\Comment $comment
- * @property \Model\Config $config
- * @property \Model\File $file
- * @property \Model\Google $google
- * @property \Model\GitHub $gitHub
- * @property \Model\LastLogin $lastLogin
- * @property \Model\Ldap $ldap
- * @property \Model\Project $project
- * @property \Model\RememberMe $rememberMe
- * @property \Model\SubTask $subTask
- * @property \Model\Task $task
- * @property \Model\User $user
+ *
+ * @property \Model\Acl $acl
+ * @property \Model\Action $action
+ * @property \Model\Board $board
+ * @property \Model\Category $category
+ * @property \Model\Comment $comment
+ * @property \Model\Config $config
+ * @property \Model\File $file
+ * @property \Model\Google $google
+ * @property \Model\GitHub $gitHub
+ * @property \Model\LastLogin $lastLogin
+ * @property \Model\Ldap $ldap
+ * @property \Model\Project $project
+ * @property \Model\RememberMe $rememberMe
+ * @property \Model\ReverseProxyAuth $reverseProxyAuth
+ * @property \Model\SubTask $subTask
+ * @property \Model\Task $task
+ * @property \Model\User $user
*/
abstract class Base
{
@@ -123,11 +125,14 @@ abstract class Base
// Authentication
if (! $this->acl->isLogged() && ! $this->acl->isPublicAction($controller, $action)) {
- // Try the remember me authentication first
+ // Try the "remember me" authentication first
if (! $this->rememberMe->authenticate()) {
- // Redirect to the login form if not authenticated
- $this->response->redirect('?controller=user&action=login');
+ // Automatic reverse proxy header authentication
+ if(! (REVERSE_PROXY_AUTH && $this->reverseProxyAuth->authenticate()) ) {
+ // Redirect to the login form if not authenticated
+ $this->response->redirect('?controller=user&action=login');
+ }
}
else {
diff --git a/app/Controller/Project.php b/app/Controller/Project.php
index 8c21801b..0d430b44 100644
--- a/app/Controller/Project.php
+++ b/app/Controller/Project.php
@@ -13,6 +13,27 @@ use Core\Translator;
*/
class Project extends Base
{
+
+ /**
+ * Clone Project
+ *
+ * @author Antonio Rabelo
+ * @access public
+ */
+ public function duplicate()
+ {
+ $this->checkCSRFParam();
+ $project_id = $this->request->getIntegerParam('project_id');
+
+ if ($project_id && $this->project->duplicate($project_id)) {
+ $this->session->flash(t('Project cloned successfully.'));
+ } else {
+ $this->session->flashError(t('Unable to clone this project.'));
+ }
+
+ $this->response->redirect('?controller=project');
+ }
+
/**
* Task export
*