diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/Auth/Ldap.php | 57 | ||||
-rw-r--r-- | app/Model/Notification.php | 36 | ||||
-rw-r--r-- | app/Model/ProjectDuplication.php | 4 |
3 files changed, 68 insertions, 29 deletions
diff --git a/app/Auth/Ldap.php b/app/Auth/Ldap.php index dbf12387..e9bb5815 100644 --- a/app/Auth/Ldap.php +++ b/app/Auth/Ldap.php @@ -199,8 +199,8 @@ class Ldap extends Base return array( 'username' => $username, - 'name' => isset($info[0][LDAP_ACCOUNT_FULLNAME][0]) ? $info[0][LDAP_ACCOUNT_FULLNAME][0] : '', - 'email' => isset($info[0][LDAP_ACCOUNT_EMAIL][0]) ? $info[0][LDAP_ACCOUNT_EMAIL][0] : '', + 'name' => $this->getFromInfo($info, LDAP_ACCOUNT_FULLNAME), + 'email' => $this->getFromInfo($info, LDAP_ACCOUNT_EMAIL), ); } @@ -215,16 +215,8 @@ class Ldap extends Base */ public function lookup($username = null, $email = null) { - if ($username && $email) { - $query = '(&('.sprintf(LDAP_USER_PATTERN, $username).')('.sprintf(LDAP_ACCOUNT_EMAIL, $email).')'; - } - else if ($username) { - $query = sprintf(LDAP_USER_PATTERN, $username); - } - else if ($email) { - $query = '('.LDAP_ACCOUNT_EMAIL.'='.$email.')'; - } - else { + $query = $this->getQuery($username, $email); + if ($query === false) { return false; } @@ -253,9 +245,44 @@ class Ldap extends Base } return array( - 'username' => isset($info[0][LDAP_ACCOUNT_ID][0]) ? $info[0][LDAP_ACCOUNT_ID][0] : $username, - 'name' => isset($info[0][LDAP_ACCOUNT_FULLNAME][0]) ? $info[0][LDAP_ACCOUNT_FULLNAME][0] : '', - 'email' => isset($info[0][LDAP_ACCOUNT_EMAIL][0]) ? $info[0][LDAP_ACCOUNT_EMAIL][0] : $email, + 'username' => $this->getFromInfo($info, LDAP_ACCOUNT_ID, $username), + 'name' => $this->getFromInfo($info, LDAP_ACCOUNT_FULLNAME), + 'email' => $this->getFromInfo($info, LDAP_ACCOUNT_EMAIL, $email), ); } + + /** + * Get the LDAP query to find a user + * + * @param string $username Username + * @param string $email Email address + */ + private function getQuery($username, $email) + { + if ($username && $email) { + return '(&('.sprintf(LDAP_USER_PATTERN, $username).')('.sprintf(LDAP_ACCOUNT_EMAIL, $email).')'; + } + else if ($username) { + return sprintf(LDAP_USER_PATTERN, $username); + } + else if ($email) { + return '('.LDAP_ACCOUNT_EMAIL.'='.$email.')'; + } + else { + return false; + } + } + + /** + * Return a value from the LDAP info + * + * @param array $info LDAP info + * @param string $key Key + * @param string $default Default value if key not set in entry + * @return string + */ + private function getFromInfo($info, $key, $default = '') + { + return isset($info[0][$key][0]) ? $info[0][$key][0] : $default; + } } diff --git a/app/Model/Notification.php b/app/Model/Notification.php index 95306e86..49691f85 100644 --- a/app/Model/Notification.php +++ b/app/Model/Notification.php @@ -119,6 +119,18 @@ class Notification extends Base } /** + * Get the mail subject for a given label + * + * @access private + * @param string $label Label + * @param array $data Template data + */ + private function getStandardMailSubject($label, array $data) + { + return e('[%s][%s] %s (#%d)', $data['task']['project_name'], $label, $data['task']['title'], $data['task']['id']); + } + + /** * Get the mail subject for a given template name * * @access public @@ -129,40 +141,40 @@ class Notification extends Base { switch ($template) { case 'file_creation': - $subject = e('[%s][New attachment] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('New attachment', $data); break; case 'comment_creation': - $subject = e('[%s][New comment] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('New comment', $data); break; case 'comment_update': - $subject = e('[%s][Comment updated] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Comment updated', $data); break; case 'subtask_creation': - $subject = e('[%s][New subtask] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('New subtask', $data); break; case 'subtask_update': - $subject = e('[%s][Subtask updated] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Subtask updated', $data); break; case 'task_creation': - $subject = e('[%s][New task] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('New task', $data); break; case 'task_update': - $subject = e('[%s][Task updated] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Task updated', $data); break; case 'task_close': - $subject = e('[%s][Task closed] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Task closed', $data); break; case 'task_open': - $subject = e('[%s][Task opened] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Task opened', $data); break; case 'task_move_column': - $subject = e('[%s][Column Change] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Column Change', $data); break; case 'task_move_position': - $subject = e('[%s][Position Change] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Position Change', $data); break; case 'task_assignee_change': - $subject = e('[%s][Assignee Change] %s (#%d)', $data['task']['project_name'], $data['task']['title'], $data['task']['id']); + $subject = $this->getStandardMailSubject('Assignee Change', $data); break; case 'task_due': $subject = e('[%s][Due tasks]', $data['project']); diff --git a/app/Model/ProjectDuplication.php b/app/Model/ProjectDuplication.php index 11a606d7..ef4558ba 100644 --- a/app/Model/ProjectDuplication.php +++ b/app/Model/ProjectDuplication.php @@ -23,8 +23,8 @@ class ProjectDuplication extends Base { $suffix = ' ('.t('Clone').')'; - if (strlen($name.$suffix) > 50) { - $name = substr($name, 0, 50 - strlen($suffix)); + if (strlen($name.$suffix) > $max_length) { + $name = substr($name, 0, $max_length - strlen($suffix)); } return $name.$suffix; |