Merge pull-request #592

This commit is contained in:
Frederic Guillot
2015-02-07 14:13:01 -05:00
3 changed files with 68 additions and 29 deletions

View File

@@ -199,8 +199,8 @@ class Ldap extends Base
return array( return array(
'username' => $username, 'username' => $username,
'name' => isset($info[0][LDAP_ACCOUNT_FULLNAME][0]) ? $info[0][LDAP_ACCOUNT_FULLNAME][0] : '', 'name' => $this->getFromInfo($info, LDAP_ACCOUNT_FULLNAME),
'email' => isset($info[0][LDAP_ACCOUNT_EMAIL][0]) ? $info[0][LDAP_ACCOUNT_EMAIL][0] : '', 'email' => $this->getFromInfo($info, LDAP_ACCOUNT_EMAIL),
); );
} }
@@ -215,16 +215,8 @@ class Ldap extends Base
*/ */
public function lookup($username = null, $email = null) public function lookup($username = null, $email = null)
{ {
if ($username && $email) { $query = $this->getQuery($username, $email);
$query = '(&('.sprintf(LDAP_USER_PATTERN, $username).')('.sprintf(LDAP_ACCOUNT_EMAIL, $email).')'; if ($query === false) {
}
else if ($username) {
$query = sprintf(LDAP_USER_PATTERN, $username);
}
else if ($email) {
$query = '('.LDAP_ACCOUNT_EMAIL.'='.$email.')';
}
else {
return false; return false;
} }
@@ -253,9 +245,44 @@ class Ldap extends Base
} }
return array( return array(
'username' => isset($info[0][LDAP_ACCOUNT_ID][0]) ? $info[0][LDAP_ACCOUNT_ID][0] : $username, 'username' => $this->getFromInfo($info, LDAP_ACCOUNT_ID, $username),
'name' => isset($info[0][LDAP_ACCOUNT_FULLNAME][0]) ? $info[0][LDAP_ACCOUNT_FULLNAME][0] : '', 'name' => $this->getFromInfo($info, LDAP_ACCOUNT_FULLNAME),
'email' => isset($info[0][LDAP_ACCOUNT_EMAIL][0]) ? $info[0][LDAP_ACCOUNT_EMAIL][0] : $email, '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;
}
} }

View File

@@ -118,6 +118,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 * Get the mail subject for a given template name
* *
@@ -129,40 +141,40 @@ class Notification extends Base
{ {
switch ($template) { switch ($template) {
case 'file_creation': 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; break;
case 'comment_creation': 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; break;
case 'comment_update': 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; break;
case 'subtask_creation': 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; break;
case 'subtask_update': 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; break;
case 'task_creation': 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; break;
case 'task_update': 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; break;
case 'task_close': 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; break;
case 'task_open': 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; break;
case 'task_move_column': 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; break;
case 'task_move_position': 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; break;
case 'task_assignee_change': 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; break;
case 'task_due': case 'task_due':
$subject = e('[%s][Due tasks]', $data['project']); $subject = e('[%s][Due tasks]', $data['project']);

View File

@@ -23,8 +23,8 @@ class ProjectDuplication extends Base
{ {
$suffix = ' ('.t('Clone').')'; $suffix = ' ('.t('Clone').')';
if (strlen($name.$suffix) > 50) { if (strlen($name.$suffix) > $max_length) {
$name = substr($name, 0, 50 - strlen($suffix)); $name = substr($name, 0, $max_length - strlen($suffix));
} }
return $name.$suffix; return $name.$suffix;