Run php-cs-fixer on the code base
This commit is contained in:
parent
b40190ee9f
commit
8c532efd5f
|
|
@ -67,7 +67,6 @@ class TaskEmail extends Base
|
|||
$user = $this->user->getById($this->getParam('user_id'));
|
||||
|
||||
if (! empty($user['email'])) {
|
||||
|
||||
$task = $this->taskFinder->getDetails($data['task_id']);
|
||||
|
||||
$this->emailClient->send(
|
||||
|
|
|
|||
|
|
@ -35,10 +35,9 @@ class Action extends \Kanboard\Core\Base
|
|||
$actions = $this->action->getAllByProject($project_id);
|
||||
|
||||
foreach ($actions as $index => $action) {
|
||||
|
||||
$params = array();
|
||||
|
||||
foreach($action['params'] as $param) {
|
||||
foreach ($action['params'] as $param) {
|
||||
$params[$param['name']] = $param['value'];
|
||||
}
|
||||
|
||||
|
|
@ -57,7 +56,7 @@ class Action extends \Kanboard\Core\Base
|
|||
'params' => $params,
|
||||
);
|
||||
|
||||
list($valid,) = $this->action->validateCreation($values);
|
||||
list($valid, ) = $this->action->validateCreation($values);
|
||||
|
||||
if (! $valid) {
|
||||
return false;
|
||||
|
|
@ -80,14 +79,14 @@ class Action extends \Kanboard\Core\Base
|
|||
$required_params = $action->getActionRequiredParameters();
|
||||
|
||||
// Check missing parameters
|
||||
foreach($required_params as $param => $value) {
|
||||
foreach ($required_params as $param => $value) {
|
||||
if (! isset($params[$param])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Check extra parameters
|
||||
foreach($params as $param => $value) {
|
||||
foreach ($params as $param => $value) {
|
||||
if (! isset($required_params[$param])) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,11 +29,9 @@ class Auth extends Base
|
|||
if ($username !== 'jsonrpc' && ! $this->authentication->hasCaptcha($username) && $this->authentication->authenticate($username, $password)) {
|
||||
$this->checkProcedurePermission(true, $method);
|
||||
$this->userSession->refresh($this->user->getByUsername($username));
|
||||
}
|
||||
else if ($username === 'jsonrpc' && $password === $this->config->get('api_token')) {
|
||||
} elseif ($username === 'jsonrpc' && $password === $this->config->get('api_token')) {
|
||||
$this->checkProcedurePermission(false, $method);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
throw new AuthenticationFailure('Wrong credentials');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,8 +50,7 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
|
||||
if ($is_user && ! $is_both_procedure && ! $is_user_procedure) {
|
||||
throw new AccessDeniedException('Permission denied');
|
||||
}
|
||||
else if (! $is_user && ! $is_both_procedure && $is_user_procedure) {
|
||||
} elseif (! $is_user && ! $is_both_procedure && $is_user_procedure) {
|
||||
throw new AccessDeniedException('Permission denied');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class Category extends \Kanboard\Core\Base
|
|||
'name' => $name,
|
||||
);
|
||||
|
||||
list($valid,) = $this->category->validateCreation($values);
|
||||
list($valid, ) = $this->category->validateCreation($values);
|
||||
return $valid ? $this->category->create($values) : false;
|
||||
}
|
||||
|
||||
|
|
@ -43,7 +43,7 @@ class Category extends \Kanboard\Core\Base
|
|||
'name' => $name,
|
||||
);
|
||||
|
||||
list($valid,) = $this->category->validateModification($values);
|
||||
list($valid, ) = $this->category->validateModification($values);
|
||||
return $valid && $this->category->update($values);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class Comment extends \Kanboard\Core\Base
|
|||
'comment' => $content,
|
||||
);
|
||||
|
||||
list($valid,) = $this->comment->validateCreation($values);
|
||||
list($valid, ) = $this->comment->validateCreation($values);
|
||||
|
||||
return $valid ? $this->comment->create($values) : false;
|
||||
}
|
||||
|
|
@ -45,7 +45,7 @@ class Comment extends \Kanboard\Core\Base
|
|||
'comment' => $content,
|
||||
);
|
||||
|
||||
list($valid,) = $this->comment->validateModification($values);
|
||||
list($valid, ) = $this->comment->validateModification($values);
|
||||
return $valid && $this->comment->update($values);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,14 +25,12 @@ class File extends \Kanboard\Core\Base
|
|||
public function downloadFile($file_id)
|
||||
{
|
||||
try {
|
||||
|
||||
$file = $this->file->getById($file_id);
|
||||
|
||||
if (! empty($file)) {
|
||||
return base64_encode($this->objectStorage->get($file['path']));
|
||||
}
|
||||
}
|
||||
catch (ObjectStorageException $e) {
|
||||
} catch (ObjectStorageException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class Link extends \Kanboard\Core\Base
|
|||
'opposite_label' => $opposite_label,
|
||||
);
|
||||
|
||||
list($valid,) = $this->link->validateCreation($values);
|
||||
list($valid, ) = $this->link->validateCreation($values);
|
||||
return $valid ? $this->link->create($label, $opposite_label) : false;
|
||||
}
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ class Link extends \Kanboard\Core\Base
|
|||
'label' => $label,
|
||||
);
|
||||
|
||||
list($valid,) = $this->link->validateModification($values);
|
||||
list($valid, ) = $this->link->validateModification($values);
|
||||
return $valid && $this->link->update($values);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class Me extends Base
|
|||
'is_private' => 1,
|
||||
);
|
||||
|
||||
list($valid,) = $this->project->validateCreation($values);
|
||||
list($valid, ) = $this->project->validateCreation($values);
|
||||
return $valid ? $this->project->create($values, $this->userSession->getId(), true) : false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ class Project extends Base
|
|||
'description' => $description
|
||||
);
|
||||
|
||||
list($valid,) = $this->project->validateCreation($values);
|
||||
list($valid, ) = $this->project->validateCreation($values);
|
||||
return $valid ? $this->project->create($values) : false;
|
||||
}
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ class Project extends Base
|
|||
'description' => $description
|
||||
);
|
||||
|
||||
list($valid,) = $this->project->validateModification($values);
|
||||
list($valid, ) = $this->project->validateModification($values);
|
||||
return $valid && $this->project->update($values);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class Subtask extends \Kanboard\Core\Base
|
|||
'status' => $status,
|
||||
);
|
||||
|
||||
list($valid,) = $this->subtask->validateCreation($values);
|
||||
list($valid, ) = $this->subtask->validateCreation($values);
|
||||
return $valid ? $this->subtask->create($values) : false;
|
||||
}
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ class Subtask extends \Kanboard\Core\Base
|
|||
}
|
||||
}
|
||||
|
||||
list($valid,) = $this->subtask->validateApiModification($values);
|
||||
list($valid, ) = $this->subtask->validateApiModification($values);
|
||||
return $valid && $this->subtask->update($values);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ class Task extends Base
|
|||
'reference' => $reference,
|
||||
);
|
||||
|
||||
list($valid,) = $this->taskValidator->validateCreation($values);
|
||||
list($valid, ) = $this->taskValidator->validateCreation($values);
|
||||
|
||||
return $valid ? $this->taskCreation->create($values) : false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class User extends \Kanboard\Core\Base
|
|||
'is_project_admin' => $is_project_admin,
|
||||
);
|
||||
|
||||
list($valid,) = $this->user->validateCreation($values);
|
||||
list($valid, ) = $this->user->validateCreation($values);
|
||||
return $valid ? $this->user->create($values) : false;
|
||||
}
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ class User extends \Kanboard\Core\Base
|
|||
}
|
||||
}
|
||||
|
||||
list($valid,) = $this->user->validateApiModification($values);
|
||||
list($valid, ) = $this->user->validateApiModification($values);
|
||||
return $valid && $this->user->update($values);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,7 +217,6 @@ class Ldap extends Base
|
|||
$result = $this->findUser($username, $password);
|
||||
|
||||
if (is_array($result)) {
|
||||
|
||||
$user = $this->user->getByUsername($username);
|
||||
|
||||
if (! empty($user)) {
|
||||
|
|
@ -226,14 +225,12 @@ class Ldap extends Base
|
|||
if ($user['is_ldap_user'] == 0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
|
||||
// We create automatically a new user
|
||||
if ($this->isLdapAccountCreationEnabled() && $this->user->create($result) !== false) {
|
||||
$user = $this->user->getByUsername($username);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -319,12 +316,10 @@ class Ldap extends Base
|
|||
if ($this->getLdapBindType() === 'user') {
|
||||
$ldap_username = sprintf($this->getLdapUsername(), $username);
|
||||
$ldap_password = $password;
|
||||
}
|
||||
else if ($this->getLdapBindType() === 'proxy') {
|
||||
} elseif ($this->getLdapBindType() === 'proxy') {
|
||||
$ldap_username = $this->getLdapUsername();
|
||||
$ldap_password = $this->getLdapPassword();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$ldap_username = null;
|
||||
$ldap_password = null;
|
||||
}
|
||||
|
|
@ -486,11 +481,9 @@ class Ldap extends Base
|
|||
{
|
||||
if (! empty($username) && ! empty($email)) {
|
||||
return '(&('.$this->getLdapUserPattern($username).')('.$this->getLdapAccountEmail().'='.$email.'))';
|
||||
}
|
||||
else if (! empty($username)) {
|
||||
} elseif (! empty($username)) {
|
||||
return $this->getLdapUserPattern($username);
|
||||
}
|
||||
else if (! empty($email)) {
|
||||
} elseif (! empty($email)) {
|
||||
return '('.$this->getLdapAccountEmail().'='.$email.')';
|
||||
}
|
||||
|
||||
|
|
@ -508,7 +501,7 @@ class Ldap extends Base
|
|||
*/
|
||||
private function getEntry(array $entries, $key, $default = '')
|
||||
{
|
||||
return isset($entries[0][$key][0]) ? $entries[0][$key][0] : $default;
|
||||
return isset($entries[0][$key][0]) ? $entries[0][$key][0] : $default;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -522,6 +515,6 @@ class Ldap extends Base
|
|||
*/
|
||||
private function getEntries(array $entries, $key, $default = array())
|
||||
{
|
||||
return isset($entries[0][$key]) ? $entries[0][$key] : $default;
|
||||
return isset($entries[0][$key]) ? $entries[0][$key] : $default;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,7 +88,6 @@ class RememberMe extends Base
|
|||
$credentials = $this->readCookie();
|
||||
|
||||
if ($credentials !== false) {
|
||||
|
||||
$record = $this->find($credentials['token'], $credentials['sequence']);
|
||||
|
||||
if ($record) {
|
||||
|
|
@ -144,7 +143,6 @@ class RememberMe extends Base
|
|||
$credentials = $this->readCookie();
|
||||
|
||||
if ($credentials !== false) {
|
||||
|
||||
$this->deleteCookie();
|
||||
|
||||
$this->db
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ class LocaleComparator extends Base
|
|||
$it->rewind();
|
||||
|
||||
while ($it->valid()) {
|
||||
|
||||
if (! $it->isDot() && substr($it->key(), -4) === '.php') {
|
||||
$strings = array_merge($strings, $this->search($it->key()));
|
||||
}
|
||||
|
|
@ -72,7 +71,7 @@ class LocaleComparator extends Base
|
|||
$strings = array_merge($strings, $matches[1]);
|
||||
}
|
||||
|
||||
array_walk($strings, function(&$value) {
|
||||
array_walk($strings, function (&$value) {
|
||||
$value = trim($value, "'");
|
||||
$value = str_replace("\'", "'", $value);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -23,9 +23,7 @@ class LocaleSync extends Base
|
|||
$reference = include $reference_file;
|
||||
|
||||
foreach (new DirectoryIterator('app/Locale') as $fileInfo) {
|
||||
|
||||
if (! $fileInfo->isDot() && $fileInfo->isDir() && $fileInfo->getFilename() !== self::REF_LOCALE) {
|
||||
|
||||
$filename = 'app/Locale/'.$fileInfo->getFilename().'/translations.php';
|
||||
echo $fileInfo->getFilename().' ('.$filename.')'.PHP_EOL;
|
||||
|
||||
|
|
@ -42,11 +40,9 @@ class LocaleSync extends Base
|
|||
$output .= 'return array('.PHP_EOL;
|
||||
|
||||
foreach ($reference as $key => $value) {
|
||||
|
||||
if (! empty($outdated[$key])) {
|
||||
$output .= " '".str_replace("'", "\'", $key)."' => '".str_replace("'", "\'", $outdated[$key])."',\n";
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$output .= " // '".str_replace("'", "\'", $key)."' => '',\n";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,14 +115,12 @@ class Action extends Base
|
|||
*/
|
||||
private function doCreation(array $project, array $values)
|
||||
{
|
||||
list($valid,) = $this->action->validateCreation($values);
|
||||
list($valid, ) = $this->action->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->action->create($values) !== false) {
|
||||
$this->session->flash(t('Your automatic action have been created successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your automatic action.'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -236,8 +236,7 @@ class App extends Base
|
|||
// Search by task id or by title
|
||||
if (ctype_digit($search)) {
|
||||
$filter->filterById($search);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$filter->filterByTitle($search);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ class Auth extends Base
|
|||
list($valid, $errors) = $this->authentication->validateForm($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if (! empty($this->session['login_redirect']) && ! filter_var($this->session['login_redirect'], FILTER_VALIDATE_URL)) {
|
||||
$redirect = $this->session['login_redirect'];
|
||||
unset($this->session['login_redirect']);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
public function __destruct()
|
||||
{
|
||||
if (DEBUG) {
|
||||
|
||||
foreach ($this->container['db']->getLogMessages() as $message) {
|
||||
$this->container['logger']->debug($message);
|
||||
}
|
||||
|
|
@ -123,7 +122,6 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
public function handleAuthentication()
|
||||
{
|
||||
if (! $this->authentication->isAuthenticated()) {
|
||||
|
||||
if ($this->request->isAjax()) {
|
||||
$this->response->text('Not Authorized', 401);
|
||||
}
|
||||
|
|
@ -143,7 +141,6 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
$ignore = ($controller === 'twofactor' && in_array($action, array('code', 'check'))) || ($controller === 'auth' && $action === 'logout');
|
||||
|
||||
if ($ignore === false && $this->userSession->has2FA() && ! $this->userSession->check2FA()) {
|
||||
|
||||
if ($this->request->isAjax()) {
|
||||
$this->response->text('Not Authorized', 401);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,12 +239,11 @@ class Board extends Base
|
|||
{
|
||||
$values = $this->request->getValues();
|
||||
|
||||
list($valid,) = $this->taskValidator->validateAssigneeModification($values);
|
||||
list($valid, ) = $this->taskValidator->validateAssigneeModification($values);
|
||||
|
||||
if ($valid && $this->taskModification->update($values)) {
|
||||
$this->session->flash(t('Task updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your task.'));
|
||||
}
|
||||
|
||||
|
|
@ -277,12 +276,11 @@ class Board extends Base
|
|||
{
|
||||
$values = $this->request->getValues();
|
||||
|
||||
list($valid,) = $this->taskValidator->validateCategoryModification($values);
|
||||
list($valid, ) = $this->taskValidator->validateCategoryModification($values);
|
||||
|
||||
if ($valid && $this->taskModification->update($values)) {
|
||||
$this->session->flash(t('Task updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your task.'));
|
||||
}
|
||||
|
||||
|
|
@ -365,8 +363,7 @@ class Board extends Base
|
|||
|
||||
if ($this->request->isAjax()) {
|
||||
$this->response->html($this->renderBoard($project_id));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $project_id)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,8 +44,7 @@ class Calendar extends Base
|
|||
// Tasks
|
||||
if ($this->config->get('calendar_project_tasks', 'date_started') === 'date_creation') {
|
||||
$events = $filter->copy()->filterByCreationDateRange($start, $end)->setColumns('date_creation', 'date_completed')->format();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$events = $filter->copy()->filterByStartDateRange($start, $end)->setColumns('date_started', 'date_completed')->format();
|
||||
}
|
||||
|
||||
|
|
@ -79,8 +78,7 @@ class Calendar extends Base
|
|||
// Tasks
|
||||
if ($this->config->get('calendar_user_tasks', 'date_started') === 'date_creation') {
|
||||
$events = array_merge($events, $filter->copy()->filterByCreationDateRange($start, $end)->setColumns('date_creation', 'date_completed')->format());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$events = array_merge($events, $filter->copy()->filterByStartDateRange($start, $end)->setColumns('date_started', 'date_completed')->format());
|
||||
}
|
||||
|
||||
|
|
@ -106,7 +104,6 @@ class Calendar extends Base
|
|||
public function save()
|
||||
{
|
||||
if ($this->request->isAjax() && $this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getJson();
|
||||
|
||||
$this->taskModification->update(array(
|
||||
|
|
|
|||
|
|
@ -60,12 +60,10 @@ class Category extends Base
|
|||
list($valid, $errors) = $this->category->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->category->create($values)) {
|
||||
$this->session->flash(t('Your category have been created successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('category', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your category.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -104,12 +102,10 @@ class Category extends Base
|
|||
list($valid, $errors) = $this->category->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->category->update($values)) {
|
||||
$this->session->flash(t('Your category have been updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('category', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your category.'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,12 +54,10 @@ class Column extends Base
|
|||
list($valid, $errors) = $this->board->validateCreation($data);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->board->addColumn($project['id'], $data['title'], $data['task_limit'], $data['description'])) {
|
||||
$this->session->flash(t('Board updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('column', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this board.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -99,12 +97,10 @@ class Column extends Base
|
|||
list($valid, $errors) = $this->board->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->board->updateColumn($values['id'], $values['title'], $values['task_limit'], $values['description'])) {
|
||||
$this->session->flash(t('Board updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('column', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this board.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -160,8 +156,7 @@ class Column extends Base
|
|||
|
||||
if (! empty($column) && $this->board->removeColumn($column['id'])) {
|
||||
$this->session->flash(t('Column removed successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to remove this column.'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,11 +81,9 @@ class Comment extends Base
|
|||
list($valid, $errors) = $this->comment->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->comment->create($values)) {
|
||||
$this->session->flash(t('Comment added successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your comment.'));
|
||||
}
|
||||
|
||||
|
|
@ -132,11 +130,9 @@ class Comment extends Base
|
|||
list($valid, $errors) = $this->comment->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->comment->update($values)) {
|
||||
$this->session->flash(t('Comment updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your comment.'));
|
||||
}
|
||||
|
||||
|
|
@ -176,8 +172,7 @@ class Comment extends Base
|
|||
|
||||
if ($this->comment->remove($comment['id'])) {
|
||||
$this->session->flash(t('Comment removed successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to remove this comment.'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ class Config extends Base
|
|||
private function common($redirect)
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues();
|
||||
|
||||
switch ($redirect) {
|
||||
|
|
@ -55,8 +54,7 @@ class Config extends Base
|
|||
if ($this->config->save($values)) {
|
||||
$this->config->reload();
|
||||
$this->session->flash(t('Settings saved successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to save your settings.'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,12 +54,10 @@ class Currency extends Base
|
|||
list($valid, $errors) = $this->currency->validate($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->currency->create($values['currency'], $values['rate'])) {
|
||||
$this->session->flash(t('The currency rate have been added successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('currency', 'index'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to add this currency rate.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -79,8 +77,7 @@ class Currency extends Base
|
|||
if ($this->config->save($values)) {
|
||||
$this->config->reload();
|
||||
$this->session->flash(t('Settings saved successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to save your settings.'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,8 +46,7 @@ class Customfilter extends Base
|
|||
if ($this->customFilter->create($values)) {
|
||||
$this->session->flash(t('Your custom filter have been created successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('customfilter', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your custom filter.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -126,8 +125,7 @@ class Customfilter extends Base
|
|||
if ($this->customFilter->update($values)) {
|
||||
$this->session->flash(t('Your custom filter have been updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('customfilter', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update custom filter.'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ class Doc extends Base
|
|||
{
|
||||
$url = $this->helper->url;
|
||||
$data = file_get_contents($filename);
|
||||
list($title,) = explode("\n", $data, 2);
|
||||
list($title, ) = explode("\n", $data, 2);
|
||||
|
||||
$replaceUrl = function (array $matches) use ($url) {
|
||||
return '('.$url->to('doc', 'show', array('file' => str_replace('.markdown', '', $matches[1]))).')';
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ class File extends Base
|
|||
$task = $this->getTask();
|
||||
|
||||
if ($this->request->isPost() && $this->file->uploadScreenshot($task['project_id'], $task['id'], $this->request->getValue('screenshot')) !== false) {
|
||||
|
||||
$this->session->flash(t('Screenshot uploaded successfully.'));
|
||||
|
||||
if ($this->request->getStringParam('redirect') === 'board') {
|
||||
|
|
@ -77,7 +76,6 @@ class File extends Base
|
|||
public function download()
|
||||
{
|
||||
try {
|
||||
|
||||
$task = $this->getTask();
|
||||
$file = $this->file->getById($this->request->getIntegerParam('file_id'));
|
||||
|
||||
|
|
@ -87,8 +85,7 @@ class File extends Base
|
|||
|
||||
$this->response->forceDownload($file['name']);
|
||||
$this->objectStorage->output($file['path']);
|
||||
}
|
||||
catch (ObjectStorageException $e) {
|
||||
} catch (ObjectStorageException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -119,7 +116,6 @@ class File extends Base
|
|||
public function image()
|
||||
{
|
||||
try {
|
||||
|
||||
$task = $this->getTask();
|
||||
$file = $this->file->getById($this->request->getIntegerParam('file_id'));
|
||||
|
||||
|
|
@ -129,8 +125,7 @@ class File extends Base
|
|||
|
||||
$this->response->contentType($this->file->getImageMimeType($file['name']));
|
||||
$this->objectStorage->output($file['path']);
|
||||
}
|
||||
catch (ObjectStorageException $e) {
|
||||
} catch (ObjectStorageException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -143,7 +138,6 @@ class File extends Base
|
|||
public function thumbnail()
|
||||
{
|
||||
try {
|
||||
|
||||
$task = $this->getTask();
|
||||
$file = $this->file->getById($this->request->getIntegerParam('file_id'));
|
||||
|
||||
|
|
@ -153,8 +147,7 @@ class File extends Base
|
|||
|
||||
$this->response->contentType('image/jpeg');
|
||||
$this->objectStorage->output($this->file->getThumbnailPath($file['path']));
|
||||
}
|
||||
catch (ObjectStorageException $e) {
|
||||
} catch (ObjectStorageException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ class Gantt extends Base
|
|||
{
|
||||
if ($this->userSession->isAdmin()) {
|
||||
$project_ids = $this->project->getAllIds();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$project_ids = $this->projectPermission->getMemberProjectIds($this->userSession->getId());
|
||||
}
|
||||
|
||||
|
|
@ -62,8 +61,7 @@ class Gantt extends Base
|
|||
|
||||
if ($sorting === 'date') {
|
||||
$filter->getQuery()->asc(TaskModel::TABLE.'.date_started')->asc(TaskModel::TABLE.'.date_creation');
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$filter->getQuery()->asc('column_position')->asc(TaskModel::TABLE.'.position');
|
||||
}
|
||||
|
||||
|
|
@ -134,14 +132,12 @@ class Gantt extends Base
|
|||
list($valid, $errors) = $this->taskValidator->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
$task_id = $this->taskCreation->create($values);
|
||||
|
||||
if ($task_id !== false) {
|
||||
$this->session->flash(t('Task created successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('gantt', 'project', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your task.'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,8 +89,7 @@ class Ical extends Base
|
|||
->setColumns('date_creation', 'date_completed')
|
||||
->setCalendar($calendar)
|
||||
->addDateTimeEvents();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$filter
|
||||
->copy()
|
||||
->filterByStartDateRange($start, $end)
|
||||
|
|
|
|||
|
|
@ -70,12 +70,10 @@ class Link extends Base
|
|||
list($valid, $errors) = $this->link->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->link->create($values['label'], $values['opposite_label']) !== false) {
|
||||
$this->session->flash(t('Link added successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('link', 'index'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your link.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -116,8 +114,7 @@ class Link extends Base
|
|||
if ($this->link->update($values)) {
|
||||
$this->session->flash(t('Link updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('link', 'index'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your link.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -152,8 +149,7 @@ class Link extends Base
|
|||
|
||||
if ($this->link->remove($link['id'])) {
|
||||
$this->session->flash(t('Link removed successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to remove this link.'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,8 +52,7 @@ class Oauth extends Base
|
|||
|
||||
if ($this->authentication->backend($backend)->unlink($this->userSession->getId())) {
|
||||
$this->session->flash(t('Your external account is not linked anymore to your profile.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to unlink your external account.'));
|
||||
}
|
||||
|
||||
|
|
@ -71,8 +70,7 @@ class Oauth extends Base
|
|||
|
||||
if (! empty($code)) {
|
||||
$this->step2($backend, $code);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->response->redirect($this->authentication->backend($backend)->getService()->getAuthorizationUrl());
|
||||
}
|
||||
}
|
||||
|
|
@ -102,8 +100,7 @@ class Oauth extends Base
|
|||
{
|
||||
if (empty($profile)) {
|
||||
$this->session->flashError(t('External authentication failed'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flash(t('Your external account is linked to your profile successfully.'));
|
||||
$this->authentication->backend($backend)->updateUser($this->userSession->getId(), $profile);
|
||||
}
|
||||
|
|
@ -120,8 +117,7 @@ class Oauth extends Base
|
|||
{
|
||||
if (! empty($profile) && $this->authentication->backend($backend)->authenticate($profile['id'])) {
|
||||
$this->response->redirect($this->helper->url->to('app', 'index'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->response->html($this->template->layout('auth/index', array(
|
||||
'errors' => array('login' => t('External authentication failed')),
|
||||
'values' => array(),
|
||||
|
|
|
|||
|
|
@ -19,8 +19,7 @@ class Project extends Base
|
|||
{
|
||||
if ($this->userSession->isAdmin()) {
|
||||
$project_ids = $this->project->getAllIds();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$project_ids = $this->projectPermission->getMemberProjectIds($this->userSession->getId());
|
||||
}
|
||||
|
||||
|
|
@ -68,13 +67,11 @@ class Project extends Base
|
|||
$switch = $this->request->getStringParam('switch');
|
||||
|
||||
if ($switch === 'enable' || $switch === 'disable') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->project->{$switch.'PublicAccess'}($project['id'])) {
|
||||
$this->session->flash(t('Project updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this project.'));
|
||||
}
|
||||
|
||||
|
|
@ -145,8 +142,7 @@ class Project extends Base
|
|||
if (! $this->helper->user->isProjectAdministrationAllowed($project['id'])) {
|
||||
unset($values['is_private']);
|
||||
}
|
||||
}
|
||||
else if ($project['is_private'] == 1 && ! isset($values['is_private'])) {
|
||||
} elseif ($project['is_private'] == 1 && ! isset($values['is_private'])) {
|
||||
if ($this->helper->user->isProjectAdministrationAllowed($project['id'])) {
|
||||
$values += array('is_private' => 0);
|
||||
}
|
||||
|
|
@ -155,12 +151,10 @@ class Project extends Base
|
|||
list($valid, $errors) = $this->project->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->project->update($values)) {
|
||||
$this->session->flash(t('Project updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('project', 'edit', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this project.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -193,14 +187,12 @@ class Project extends Base
|
|||
{
|
||||
$project = $this->getProject();
|
||||
$values = $this->request->getValues() + array('is_everybody_allowed' => 0);
|
||||
list($valid,) = $this->projectPermission->validateProjectModification($values);
|
||||
list($valid, ) = $this->projectPermission->validateProjectModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->project->update($values)) {
|
||||
$this->session->flash(t('Project updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this project.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -216,14 +208,12 @@ class Project extends Base
|
|||
public function allow()
|
||||
{
|
||||
$values = $this->request->getValues();
|
||||
list($valid,) = $this->projectPermission->validateUserModification($values);
|
||||
list($valid, ) = $this->projectPermission->validateUserModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->projectPermission->addMember($values['project_id'], $values['user_id'])) {
|
||||
$this->session->flash(t('Project updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this project.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -246,14 +236,12 @@ class Project extends Base
|
|||
'is_owner' => $this->request->getIntegerParam('is_owner'),
|
||||
);
|
||||
|
||||
list($valid,) = $this->projectPermission->validateUserModification($values);
|
||||
list($valid, ) = $this->projectPermission->validateUserModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->projectPermission->changeRole($values['project_id'], $values['user_id'], $values['is_owner'])) {
|
||||
$this->session->flash(t('Project updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this project.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -275,14 +263,12 @@ class Project extends Base
|
|||
'user_id' => $this->request->getIntegerParam('user_id'),
|
||||
);
|
||||
|
||||
list($valid,) = $this->projectPermission->validateUserModification($values);
|
||||
list($valid, ) = $this->projectPermission->validateUserModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->projectPermission->revokeMember($values['project_id'], $values['user_id'])) {
|
||||
$this->session->flash(t('Project updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this project.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -300,7 +286,6 @@ class Project extends Base
|
|||
$project = $this->getProject();
|
||||
|
||||
if ($this->request->getStringParam('remove') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->project->remove($project['id'])) {
|
||||
|
|
@ -356,7 +341,6 @@ class Project extends Base
|
|||
$project = $this->getProject();
|
||||
|
||||
if ($this->request->getStringParam('disable') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->project->disable($project['id'])) {
|
||||
|
|
@ -384,7 +368,6 @@ class Project extends Base
|
|||
$project = $this->getProject();
|
||||
|
||||
if ($this->request->getStringParam('enable') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->project->enable($project['id'])) {
|
||||
|
|
@ -431,7 +414,6 @@ class Project extends Base
|
|||
list($valid, $errors) = $this->project->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
$project_id = $this->project->create($values, $this->userSession->getId(), true);
|
||||
|
||||
if ($project_id > 0) {
|
||||
|
|
|
|||
|
|
@ -36,8 +36,7 @@ class Projectuser extends Base
|
|||
|
||||
if ($this->userSession->isAdmin()) {
|
||||
$project_ids = $this->project->getAllIds();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$project_ids = $this->projectPermission->getMemberProjectIds($this->userSession->getId());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ class Search extends Base
|
|||
->setDirection('DESC');
|
||||
|
||||
if ($search !== '') {
|
||||
|
||||
$query = $this
|
||||
->taskFilter
|
||||
->search($search)
|
||||
|
|
|
|||
|
|
@ -66,11 +66,9 @@ class Subtask extends Base
|
|||
list($valid, $errors) = $this->subtask->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->subtask->create($values)) {
|
||||
$this->session->flash(t('Sub-task added successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your sub-task.'));
|
||||
}
|
||||
|
||||
|
|
@ -118,11 +116,9 @@ class Subtask extends Base
|
|||
list($valid, $errors) = $this->subtask->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->subtask->update($values)) {
|
||||
$this->session->flash(t('Sub-task updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your sub-task.'));
|
||||
}
|
||||
|
||||
|
|
@ -161,8 +157,7 @@ class Subtask extends Base
|
|||
|
||||
if ($this->subtask->remove($subtask['id'])) {
|
||||
$this->session->flash(t('Sub-task removed successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to remove this sub-task.'));
|
||||
}
|
||||
|
||||
|
|
@ -183,7 +178,6 @@ class Subtask extends Base
|
|||
$this->subtask->toggleStatus($subtask['id']);
|
||||
|
||||
if ($redirect === 'board') {
|
||||
|
||||
$this->session['has_subtask_inprogress'] = $this->subtask->hasSubtaskInProgress($this->userSession->getId());
|
||||
|
||||
$this->response->html($this->template->render('board/tooltip_subtasks', array(
|
||||
|
|
|
|||
|
|
@ -63,12 +63,10 @@ class Swimlane extends Base
|
|||
list($valid, $errors) = $this->swimlane->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->swimlane->create($values)) {
|
||||
$this->session->flash(t('Your swimlane have been created successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('swimlane', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your swimlane.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -86,15 +84,13 @@ class Swimlane extends Base
|
|||
$project = $this->getProject();
|
||||
|
||||
$values = $this->request->getValues() + array('show_default_swimlane' => 0);
|
||||
list($valid,) = $this->swimlane->validateDefaultModification($values);
|
||||
list($valid, ) = $this->swimlane->validateDefaultModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->swimlane->updateDefault($values)) {
|
||||
$this->session->flash(t('The default swimlane have been updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('swimlane', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this swimlane.'));
|
||||
}
|
||||
}
|
||||
|
|
@ -136,8 +132,7 @@ class Swimlane extends Base
|
|||
if ($this->swimlane->update($values)) {
|
||||
$this->session->flash(t('Swimlane updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('swimlane', 'index', array('project_id' => $project['id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update this swimlane.'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,7 +156,6 @@ class Task extends Base
|
|||
}
|
||||
|
||||
if ($this->request->getStringParam('confirmation') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->task->remove($task['id'])) {
|
||||
|
|
|
|||
|
|
@ -53,8 +53,7 @@ class TaskImport extends Base
|
|||
|
||||
if ($this->taskImport->counter > 0) {
|
||||
$this->session->flash(t('%d task(s) have been imported successfully.', $this->taskImport->counter));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Nothing have been imported!'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ class Taskcreation extends Base
|
|||
$swimlanes_list = $this->swimlane->getList($project['id'], false, true);
|
||||
|
||||
if (empty($values)) {
|
||||
|
||||
$values = array(
|
||||
'swimlane_id' => $this->request->getIntegerParam('swimlane_id', key($swimlanes_list)),
|
||||
'column_id' => $this->request->getIntegerParam('column_id'),
|
||||
|
|
@ -62,8 +61,7 @@ class Taskcreation extends Base
|
|||
if ($valid && $this->taskCreation->create($values)) {
|
||||
$this->session->flash(t('Task created successfully.'));
|
||||
$this->afterSave($project, $values);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your task.'));
|
||||
}
|
||||
|
||||
|
|
@ -79,8 +77,7 @@ class Taskcreation extends Base
|
|||
if (! $this->request->isAjax()) {
|
||||
$this->response->redirect($this->helper->url->to('taskcreation', 'create', $values));
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $project['id'])));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ class Taskduplication extends Base
|
|||
$task = $this->getTask();
|
||||
|
||||
if ($this->request->getStringParam('confirmation') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
$task_id = $this->taskDuplication->duplicate($task['id']);
|
||||
|
||||
|
|
@ -48,9 +47,8 @@ class Taskduplication extends Base
|
|||
$task = $this->getTask();
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues();
|
||||
list($valid,) = $this->taskValidator->validateProjectModification($values);
|
||||
list($valid, ) = $this->taskValidator->validateProjectModification($values);
|
||||
|
||||
if ($valid && $this->taskDuplication->moveToProject($task['id'],
|
||||
$values['project_id'],
|
||||
|
|
@ -58,7 +56,6 @@ class Taskduplication extends Base
|
|||
$values['column_id'],
|
||||
$values['category_id'],
|
||||
$values['owner_id'])) {
|
||||
|
||||
$this->session->flash(t('Task updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('task', 'show', array('project_id' => $values['project_id'], 'task_id' => $task['id'])));
|
||||
}
|
||||
|
|
@ -79,9 +76,8 @@ class Taskduplication extends Base
|
|||
$task = $this->getTask();
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues();
|
||||
list($valid,) = $this->taskValidator->validateProjectModification($values);
|
||||
list($valid, ) = $this->taskValidator->validateProjectModification($values);
|
||||
|
||||
if ($valid) {
|
||||
$task_id = $this->taskDuplication->duplicateToProject(
|
||||
|
|
@ -125,8 +121,7 @@ class Taskduplication extends Base
|
|||
|
||||
$values = $this->taskDuplication->checkDestinationProjectValues($task);
|
||||
$values['project_id'] = $dst_project_id;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$swimlanes_list = array();
|
||||
$columns_list = array();
|
||||
$categories_list = array();
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ class Tasklink extends Base
|
|||
list($valid, $errors) = $this->taskLink->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->taskLink->create($values['task_id'], $values['opposite_task_id'], $values['link_id'])) {
|
||||
$this->session->flash(t('Link added successfully.'));
|
||||
|
||||
|
|
@ -129,7 +128,6 @@ class Tasklink extends Base
|
|||
list($valid, $errors) = $this->taskLink->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->taskLink->update($values['id'], $values['task_id'], $values['opposite_task_id'], $values['link_id'])) {
|
||||
$this->session->flash(t('Link updated successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])).'#links');
|
||||
|
|
@ -162,15 +160,14 @@ class Tasklink extends Base
|
|||
*
|
||||
* @access public
|
||||
*/
|
||||
public function remove()
|
||||
public function remove()
|
||||
{
|
||||
$this->checkCSRFParam();
|
||||
$task = $this->getTask();
|
||||
|
||||
if ($this->taskLink->remove($this->request->getIntegerParam('link_id'))) {
|
||||
$this->session->flash(t('Link removed successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to remove this link.'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,12 +32,11 @@ class Taskmodification extends Base
|
|||
$task = $this->getTask();
|
||||
$values = $this->request->getValues();
|
||||
|
||||
list($valid,) = $this->taskValidator->validateTimeModification($values);
|
||||
list($valid, ) = $this->taskValidator->validateTimeModification($values);
|
||||
|
||||
if ($valid && $this->taskModification->update($values)) {
|
||||
$this->session->flash(t('Task updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your task.'));
|
||||
}
|
||||
|
||||
|
|
@ -55,29 +54,24 @@ class Taskmodification extends Base
|
|||
$ajax = $this->request->isAjax() || $this->request->getIntegerParam('ajax');
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues();
|
||||
|
||||
list($valid, $errors) = $this->taskValidator->validateDescriptionCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->taskModification->update($values)) {
|
||||
$this->session->flash(t('Task updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your task.'));
|
||||
}
|
||||
|
||||
if ($ajax) {
|
||||
$this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $task['project_id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->response->redirect($this->helper->url->to('task', 'show', array('project_id' => $task['project_id'], 'task_id' => $task['id'])));
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$values = $task;
|
||||
$errors = array();
|
||||
}
|
||||
|
|
@ -91,8 +85,7 @@ class Taskmodification extends Base
|
|||
|
||||
if ($ajax) {
|
||||
$this->response->html($this->template->render('task_modification/edit_description', $params));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->response->html($this->taskLayout('task_modification/edit_description', $params));
|
||||
}
|
||||
}
|
||||
|
|
@ -127,8 +120,7 @@ class Taskmodification extends Base
|
|||
|
||||
if ($ajax) {
|
||||
$html = $this->template->render('task_modification/edit_task', $params);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$html = $this->taskLayout('task_modification/edit_task', $params);
|
||||
}
|
||||
|
||||
|
|
@ -152,12 +144,10 @@ class Taskmodification extends Base
|
|||
|
||||
if ($this->request->isAjax()) {
|
||||
$this->response->redirect($this->helper->url->to('board', 'show', array('project_id' => $task['project_id'])));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->response->redirect($this->helper->url->to('task', 'show', array('project_id' => $task['project_id'], 'task_id' => $task['id'])));
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your task.'));
|
||||
$this->edit($values, $errors);
|
||||
}
|
||||
|
|
@ -173,24 +163,20 @@ class Taskmodification extends Base
|
|||
$task = $this->getTask();
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues();
|
||||
|
||||
list($valid, $errors) = $this->taskValidator->validateEditRecurrence($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->taskModification->update($values)) {
|
||||
$this->session->flash(t('Task updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your task.'));
|
||||
}
|
||||
|
||||
$this->response->redirect($this->helper->url->to('task', 'show', array('project_id' => $task['project_id'], 'task_id' => $task['id'])));
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$values = $task;
|
||||
$errors = array();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ class Taskstatus extends Base
|
|||
private function changeStatus(array $task, $method, $success_message, $failure_message)
|
||||
{
|
||||
if ($this->request->getStringParam('confirmation') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->taskStatus->$method($task['id'])) {
|
||||
|
|
|
|||
|
|
@ -24,8 +24,7 @@ class Timer extends Base
|
|||
|
||||
if ($timer === 'start') {
|
||||
$this->subtaskTimeTracking->logStartTime($subtask_id, $this->userSession->getId());
|
||||
}
|
||||
else if ($timer === 'stop') {
|
||||
} elseif ($timer === 'stop') {
|
||||
$this->subtaskTimeTracking->logEndTime($subtask_id, $this->userSession->getId());
|
||||
$this->subtaskTimeTracking->updateTaskTimeTracking($task_id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,8 +63,7 @@ class Twofactor extends User
|
|||
'twofactor_activated' => 1,
|
||||
'twofactor_secret' => GoogleAuthenticator::generateRandom(),
|
||||
));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->user->update(array(
|
||||
'id' => $user['id'],
|
||||
'twofactor_activated' => 0,
|
||||
|
|
@ -94,8 +93,7 @@ class Twofactor extends User
|
|||
|
||||
if (! empty($values['code']) && $otp->checkTotp(Base32::decode($user['twofactor_secret']), $values['code'])) {
|
||||
$this->session->flash(t('The two factor authentication code is valid.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('The two factor authentication code is not valid.'));
|
||||
}
|
||||
|
||||
|
|
@ -119,8 +117,7 @@ class Twofactor extends User
|
|||
$this->session['2fa_validated'] = true;
|
||||
$this->session->flash(t('The two factor authentication code is valid.'));
|
||||
$this->response->redirect($this->helper->url->to('app', 'index'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('The two factor authentication code is not valid.'));
|
||||
$this->response->redirect($this->helper->url->to('twofactor', 'code'));
|
||||
}
|
||||
|
|
@ -148,7 +145,6 @@ class Twofactor extends User
|
|||
$user = $this->getUser();
|
||||
|
||||
if ($this->request->getStringParam('disable') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
$this->user->update(array(
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ class User extends Base
|
|||
list($valid, $errors) = $this->user->validateCreation($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
$project_id = empty($values['project_id']) ? 0 : $values['project_id'];
|
||||
unset($values['project_id']);
|
||||
|
||||
|
|
@ -101,8 +100,7 @@ class User extends Base
|
|||
|
||||
$this->session->flash(t('User created successfully.'));
|
||||
$this->response->redirect($this->helper->url->to('user', 'show', array('user_id' => $user_id)));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to create your user.'));
|
||||
$values['project_id'] = $project_id;
|
||||
}
|
||||
|
|
@ -240,7 +238,6 @@ class User extends Base
|
|||
$switch = $this->request->getStringParam('switch');
|
||||
|
||||
if ($switch === 'enable' || $switch === 'disable') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->user->{$switch.'PublicAccess'}($user['id'])) {
|
||||
|
|
@ -270,16 +267,13 @@ class User extends Base
|
|||
$errors = array();
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues();
|
||||
list($valid, $errors) = $this->user->validatePasswordModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->user->update($values)) {
|
||||
$this->session->flash(t('Password modified successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to change the password.'));
|
||||
}
|
||||
|
||||
|
|
@ -308,13 +302,11 @@ class User extends Base
|
|||
unset($values['password']);
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues();
|
||||
|
||||
if ($this->userSession->isAdmin()) {
|
||||
$values += array('is_admin' => 0, 'is_project_admin' => 0);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// Regular users can't be admin
|
||||
if (isset($values['is_admin'])) {
|
||||
unset($values['is_admin']);
|
||||
|
|
@ -328,11 +320,9 @@ class User extends Base
|
|||
list($valid, $errors) = $this->user->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->user->update($values)) {
|
||||
$this->session->flash(t('User updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your user.'));
|
||||
}
|
||||
|
||||
|
|
@ -363,16 +353,13 @@ class User extends Base
|
|||
unset($values['password']);
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
|
||||
$values = $this->request->getValues() + array('disable_login_form' => 0, 'is_ldap_user' => 0);
|
||||
list($valid, $errors) = $this->user->validateModification($values);
|
||||
|
||||
if ($valid) {
|
||||
|
||||
if ($this->user->update($values)) {
|
||||
$this->session->flash(t('User updated successfully.'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Unable to update your user.'));
|
||||
}
|
||||
|
||||
|
|
@ -397,7 +384,6 @@ class User extends Base
|
|||
$user = $this->getUser();
|
||||
|
||||
if ($this->request->getStringParam('confirmation') === 'yes') {
|
||||
|
||||
$this->checkCSRFParam();
|
||||
|
||||
if ($this->user->remove($user['id'])) {
|
||||
|
|
|
|||
|
|
@ -47,8 +47,7 @@ class UserImport extends Base
|
|||
|
||||
if ($this->userImport->counter > 0) {
|
||||
$this->session->flash(t('%d user(s) have been imported successfully.', $this->userImport->counter));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->session->flashError(t('Nothing have been imported!'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class Webhook extends Base
|
|||
'category_id' => $this->request->getIntegerParam('category_id'),
|
||||
);
|
||||
|
||||
list($valid,) = $this->taskValidator->validateCreation($values);
|
||||
list($valid, ) = $this->taskValidator->validateCreation($values);
|
||||
|
||||
if ($valid && $this->taskCreation->create($values)) {
|
||||
$this->response->text('OK');
|
||||
|
|
|
|||
|
|
@ -93,7 +93,8 @@ class Csv
|
|||
{
|
||||
if (! empty($value)) {
|
||||
$value = trim(strtolower($value));
|
||||
return $value === '1' || $value{0} === 't' ? 1 : 0;
|
||||
return $value === '1' || $value{0}
|
||||
=== 't' ? 1 : 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -187,8 +188,7 @@ class Csv
|
|||
foreach ($this->columns as $sql_name => $csv_name) {
|
||||
if (isset($row[$index])) {
|
||||
$line[$sql_name] = $row[$index];
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$line[$sql_name] = '';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -214,8 +214,7 @@ class DateParser extends Base
|
|||
foreach ($fields as $field) {
|
||||
if (! empty($values[$field])) {
|
||||
$values[$field] = date($format, $values[$field]);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$values[$field] = '';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,8 +131,7 @@ class HttpClient extends Base
|
|||
|
||||
if (is_resource($stream)) {
|
||||
$response = stream_get_contents($stream);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$this->container['logger']->error('HttpClient: request failed');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ class Lexer
|
|||
$this->offset = 0;
|
||||
|
||||
while (isset($input[$this->offset])) {
|
||||
|
||||
$result = $this->match(substr($input, $this->offset));
|
||||
|
||||
if ($result === false) {
|
||||
|
|
@ -84,7 +83,6 @@ class Lexer
|
|||
{
|
||||
foreach ($this->tokenMap as $pattern => $name) {
|
||||
if (preg_match($pattern, $string, $matches)) {
|
||||
|
||||
$this->offset += strlen($matches[1]);
|
||||
|
||||
return array(
|
||||
|
|
@ -113,7 +111,6 @@ class Lexer
|
|||
);
|
||||
|
||||
while (false !== ($token = current($tokens))) {
|
||||
|
||||
switch ($token['token']) {
|
||||
case 'T_ASSIGNEE':
|
||||
case 'T_COLOR':
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ class Client extends Base
|
|||
{
|
||||
$container = $this->container;
|
||||
|
||||
$this->transports[$transport] = function() use ($class, $container) {
|
||||
$this->transports[$transport] = function () use ($class, $container) {
|
||||
return new $class($container);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ class Mail extends Base implements ClientInterface
|
|||
public function sendEmail($email, $name, $subject, $html, $author)
|
||||
{
|
||||
try {
|
||||
|
||||
$message = Swift_Message::newInstance()
|
||||
->setSubject($subject)
|
||||
->setFrom(array(MAIL_FROM => $author))
|
||||
|
|
@ -38,8 +37,7 @@ class Mail extends Base implements ClientInterface
|
|||
->setTo(array($email => $name));
|
||||
|
||||
Swift_Mailer::newInstance($this->getTransport())->send($message);
|
||||
}
|
||||
catch (Swift_TransportException $e) {
|
||||
} catch (Swift_TransportException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ class Markdown extends Parsedown
|
|||
{
|
||||
// Replace task #123 by a link to the task
|
||||
if (! empty($this->link) && preg_match('!#(\d+)!i', $Excerpt['text'], $matches)) {
|
||||
|
||||
$url = $this->helper->href(
|
||||
$this->link['controller'],
|
||||
$this->link['action'],
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ class OAuth2 extends Base
|
|||
public function getAccessToken($code)
|
||||
{
|
||||
if (empty($this->accessToken) && ! empty($code)) {
|
||||
|
||||
$params = array(
|
||||
'code' => $code,
|
||||
'client_id' => $this->clientId,
|
||||
|
|
|
|||
|
|
@ -355,8 +355,7 @@ class Paginator
|
|||
$this->action,
|
||||
$this->getUrlParams($this->page - 1, $this->order, $this->direction)
|
||||
);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$html .= '← '.t('Previous');
|
||||
}
|
||||
|
||||
|
|
@ -382,8 +381,7 @@ class Paginator
|
|||
$this->action,
|
||||
$this->getUrlParams($this->page + 1, $this->order, $this->direction)
|
||||
);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$html .= t('Next').' →';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
{
|
||||
$container = $this->container;
|
||||
|
||||
$this->container['dispatcher']->addListener($event, function() use ($container, $callback) {
|
||||
$this->container['dispatcher']->addListener($event, function () use ($container, $callback) {
|
||||
call_user_func($callback, $container);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ class Loader extends \Kanboard\Core\Base
|
|||
$current_version = $this->getSchemaVersion($plugin);
|
||||
|
||||
try {
|
||||
|
||||
$this->db->startTransaction();
|
||||
$this->db->getDriver()->disableForeignKeys();
|
||||
|
||||
|
|
@ -109,8 +108,7 @@ class Loader extends \Kanboard\Core\Base
|
|||
$this->db->getDriver()->enableForeignKeys();
|
||||
$this->db->closeTransaction();
|
||||
$this->setSchemaVersion($plugin, $i - 1);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
} catch (PDOException $e) {
|
||||
$this->db->cancelTransaction();
|
||||
$this->db->getDriver()->enableForeignKeys();
|
||||
die('Unable to migrate schema for the plugin: '.$plugin.' => '.$e->getMessage());
|
||||
|
|
|
|||
|
|
@ -218,11 +218,8 @@ class Request
|
|||
);
|
||||
|
||||
foreach ($keys as $key) {
|
||||
|
||||
if (isset($_SERVER[$key])) {
|
||||
|
||||
foreach (explode(',', $_SERVER[$key]) as $ip_address) {
|
||||
|
||||
$ip_address = trim($ip_address);
|
||||
|
||||
if ($only_public) {
|
||||
|
|
@ -231,9 +228,7 @@ class Request
|
|||
if (filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) {
|
||||
return $ip_address;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
} else {
|
||||
return $ip_address;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,8 +68,7 @@ class Response
|
|||
{
|
||||
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') {
|
||||
header('X-Ajax-Redirect: '.$url);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
header('Location: '.$url);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -127,17 +127,13 @@ class Router extends Base
|
|||
$count = count($parts);
|
||||
|
||||
foreach ($this->paths as $route) {
|
||||
|
||||
if ($count === $route['count']) {
|
||||
|
||||
$params = array();
|
||||
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
|
||||
if ($route['pattern'][$i]{0} === ':') {
|
||||
$params[substr($route['pattern'][$i], 1)] = $parts[$i];
|
||||
}
|
||||
else if ($route['pattern'][$i] !== $parts[$i]) {
|
||||
} elseif ($route['pattern'][$i] !== $parts[$i]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -168,7 +164,6 @@ class Router extends Base
|
|||
}
|
||||
|
||||
foreach ($this->urls[$controller][$action] as $pattern) {
|
||||
|
||||
if (array_diff_key($params, $pattern['params']) === array()) {
|
||||
$url = $pattern['path'];
|
||||
$i = 0;
|
||||
|
|
@ -213,8 +208,7 @@ class Router extends Base
|
|||
$this->controller = $this->sanitize($_GET['controller'], 'app');
|
||||
$this->action = $this->sanitize($_GET['action'], 'index');
|
||||
$plugin = ! empty($_GET['plugin']) ? $this->sanitize($_GET['plugin'], '') : '';
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
list($this->controller, $this->action) = $this->findRoute($this->getPath($uri, $query_string)); // TODO: add plugin for routes
|
||||
$plugin = '';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ namespace Kanboard\Core;
|
|||
*/
|
||||
class Security
|
||||
{
|
||||
/**
|
||||
/**
|
||||
* Generate a random token with different methods: openssl or /dev/urandom or fallback to uniqid()
|
||||
*
|
||||
* @static
|
||||
|
|
@ -21,8 +21,7 @@ class Security
|
|||
{
|
||||
if (function_exists('openssl_random_pseudo_bytes')) {
|
||||
return bin2hex(\openssl_random_pseudo_bytes(30));
|
||||
}
|
||||
else if (ini_get('open_basedir') === '' && strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
||||
} elseif (ini_get('open_basedir') === '' && strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
|
||||
return hash('sha256', file_get_contents('/dev/urandom', false, null, 0, 30));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -85,8 +85,7 @@ class Template extends Helper
|
|||
if (strpos($template_name, ':') !== false) {
|
||||
list($plugin, $template) = explode(':', $template_name);
|
||||
$path = __DIR__.'/../../plugins/'.ucfirst($plugin).'/Template/'.$template.'.php';
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$path = __DIR__.'/../Template/'.$template_name.'.php';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ class Tool
|
|||
return '';
|
||||
}
|
||||
|
||||
list($local_part,) = explode('@', $email);
|
||||
list(,$identifier) = explode('+', $local_part);
|
||||
list($local_part, ) = explode('@', $email);
|
||||
list(, $identifier) = explode('+', $local_part);
|
||||
|
||||
return $identifier;
|
||||
}
|
||||
|
|
@ -83,14 +83,11 @@ class Tool
|
|||
$dst_width = $resize_width;
|
||||
$dst_height = floor($src_height * ($resize_width / $src_width));
|
||||
$dst_image = imagecreatetruecolor($dst_width, $dst_height);
|
||||
}
|
||||
elseif ($resize_width == 0 && $resize_height > 0) {
|
||||
} elseif ($resize_width == 0 && $resize_height > 0) {
|
||||
$dst_width = floor($src_width * ($resize_height / $src_height));
|
||||
$dst_height = $resize_height;
|
||||
$dst_image = imagecreatetruecolor($dst_width, $dst_height);
|
||||
}
|
||||
else {
|
||||
|
||||
} else {
|
||||
$src_ratio = $src_width / $src_height;
|
||||
$resize_ratio = $resize_width / $resize_height;
|
||||
|
||||
|
|
@ -99,8 +96,7 @@ class Tool
|
|||
$dst_height = floor($src_height * ($resize_width / $src_width));
|
||||
|
||||
$dst_y = ($dst_height - $resize_height) / 2 * (-1);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$dst_width = floor($src_width * ($resize_height / $src_height));
|
||||
$dst_height = $resize_height;
|
||||
|
||||
|
|
|
|||
|
|
@ -184,8 +184,7 @@ class Translator
|
|||
{
|
||||
if (isset(self::$locales[$identifier])) {
|
||||
return self::$locales[$identifier];
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return $default;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,9 +31,7 @@ class ProjectGanttFormatter extends Project implements FormatterInterface
|
|||
{
|
||||
if (empty($project_ids)) {
|
||||
$this->projects = array();
|
||||
}
|
||||
else {
|
||||
|
||||
} else {
|
||||
$this->projects = $this->db
|
||||
->table(self::TABLE)
|
||||
->asc('start_date')
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@ class TaskFilterICalendarFormatter extends TaskFilterCalendarEvent implements Fo
|
|||
public function addDateTimeEvents()
|
||||
{
|
||||
foreach ($this->query->findAll() as $task) {
|
||||
|
||||
$start = new DateTime;
|
||||
$start->setTimestamp($task[$this->startColumn]);
|
||||
|
||||
|
|
@ -82,7 +81,6 @@ class TaskFilterICalendarFormatter extends TaskFilterCalendarEvent implements Fo
|
|||
public function addFullDayEvents()
|
||||
{
|
||||
foreach ($this->query->findAll() as $task) {
|
||||
|
||||
$date = new DateTime;
|
||||
$date->setTimestamp($task[$this->startColumn]);
|
||||
|
||||
|
|
|
|||
|
|
@ -68,8 +68,7 @@ class App extends \Kanboard\Core\Base
|
|||
$html = '<div class="alert alert-success alert-fade-out">'.$this->helper->e($this->session['flash_message']).'</div>';
|
||||
unset($this->session['flash_message']);
|
||||
unset($this->session['flash_error_message']);
|
||||
}
|
||||
else if (isset($this->session['flash_error_message'])) {
|
||||
} elseif (isset($this->session['flash_error_message'])) {
|
||||
$html = '<div class="alert alert-error">'.$this->helper->e($this->session['flash_error_message']).'</div>';
|
||||
unset($this->session['flash_message']);
|
||||
unset($this->session['flash_error_message']);
|
||||
|
|
|
|||
|
|
@ -52,11 +52,9 @@ class Dt extends \Kanboard\Core\Base
|
|||
}
|
||||
if ($diff < 1200) {
|
||||
return t('<30m');
|
||||
}
|
||||
else if ($diff < 3600) {
|
||||
} elseif ($diff < 3600) {
|
||||
return t('<1h');
|
||||
}
|
||||
else if ($diff < 86400) {
|
||||
} elseif ($diff < 86400) {
|
||||
return '~'.t('%dh', $diff / 3600);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ class File extends \Kanboard\Core\Base
|
|||
* @param string $filename Filename
|
||||
* @return string Font-Awesome-Icon-Name
|
||||
*/
|
||||
public function icon($filename){
|
||||
|
||||
public function icon($filename)
|
||||
{
|
||||
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
|
||||
|
||||
switch ($extension) {
|
||||
|
|
|
|||
|
|
@ -52,11 +52,14 @@ class Form extends \Kanboard\Core\Base
|
|||
$html = '<select name="'.$name.'" id="form-'.$name.'" class="'.$class.'" '.implode(' ', $attributes).'>';
|
||||
|
||||
foreach ($options as $id => $value) {
|
||||
|
||||
$html .= '<option value="'.$this->helper->e($id).'"';
|
||||
|
||||
if (isset($values->$name) && $id == $values->$name) $html .= ' selected="selected"';
|
||||
if (isset($values[$name]) && $id == $values[$name]) $html .= ' selected="selected"';
|
||||
if (isset($values->$name) && $id == $values->$name) {
|
||||
$html .= ' selected="selected"';
|
||||
}
|
||||
if (isset($values[$name]) && $id == $values[$name]) {
|
||||
$html .= ' selected="selected"';
|
||||
}
|
||||
|
||||
$html .= '>'.$this->helper->e($value).'</option>';
|
||||
}
|
||||
|
|
@ -328,7 +331,6 @@ class Form extends \Kanboard\Core\Base
|
|||
$html = '';
|
||||
|
||||
if (isset($errors[$name])) {
|
||||
|
||||
$html .= '<ul class="form-errors">';
|
||||
|
||||
foreach ($errors[$name] as $error) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ class Subtask extends \Kanboard\Core\Base
|
|||
public function toggleStatus(array $subtask, $redirect)
|
||||
{
|
||||
if ($subtask['status'] == 0 && isset($this->session['has_subtask_inprogress']) && $this->session['has_subtask_inprogress'] === true) {
|
||||
|
||||
return $this->helper->url->link(
|
||||
trim($this->template->render('subtask/icons', array('subtask' => $subtask))) . $this->helper->e($subtask['title']),
|
||||
'subtask',
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@ class BitbucketWebhook extends \Kanboard\Core\Base
|
|||
$task = $this->taskFinder->getByReference($this->project_id, $payload['issue']['id']);
|
||||
|
||||
if (! empty($task)) {
|
||||
|
||||
$user = $this->user->getByUsername($payload['actor']['username']);
|
||||
|
||||
if (! empty($user) && ! $this->projectPermission->isMember($this->project_id, $user['id'])) {
|
||||
|
|
@ -147,8 +146,7 @@ class BitbucketWebhook extends \Kanboard\Core\Base
|
|||
|
||||
if (isset($payload['changes']['status'])) {
|
||||
return $this->handleStatusChange($task, $payload);
|
||||
}
|
||||
else if (isset($payload['changes']['assignee'])) {
|
||||
} elseif (isset($payload['changes']['assignee'])) {
|
||||
return $this->handleAssigneeChange($task, $payload);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ class GithubWebhook extends \Kanboard\Core\Base
|
|||
public function parsePushEvent(array $payload)
|
||||
{
|
||||
foreach ($payload['commits'] as $commit) {
|
||||
|
||||
$task_id = $this->task->getTaskIdFromText($commit['message']);
|
||||
|
||||
if (empty($task_id)) {
|
||||
|
|
@ -149,7 +148,6 @@ class GithubWebhook extends \Kanboard\Core\Base
|
|||
$task = $this->taskFinder->getByReference($this->project_id, $payload['issue']['number']);
|
||||
|
||||
if (! empty($task)) {
|
||||
|
||||
$user = $this->user->getByUsername($payload['comment']['user']['login']);
|
||||
|
||||
if (! empty($user) && ! $this->projectPermission->isMember($this->project_id, $user['id'])) {
|
||||
|
|
@ -270,7 +268,6 @@ class GithubWebhook extends \Kanboard\Core\Base
|
|||
$task = $this->taskFinder->getByReference($this->project_id, $issue['number']);
|
||||
|
||||
if (! empty($user) && ! empty($task) && $this->projectPermission->isMember($this->project_id, $user['id'])) {
|
||||
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'task_id' => $task['id'],
|
||||
|
|
@ -301,7 +298,6 @@ class GithubWebhook extends \Kanboard\Core\Base
|
|||
$task = $this->taskFinder->getByReference($this->project_id, $issue['number']);
|
||||
|
||||
if (! empty($task)) {
|
||||
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'task_id' => $task['id'],
|
||||
|
|
@ -333,7 +329,6 @@ class GithubWebhook extends \Kanboard\Core\Base
|
|||
$task = $this->taskFinder->getByReference($this->project_id, $issue['number']);
|
||||
|
||||
if (! empty($task)) {
|
||||
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'task_id' => $task['id'],
|
||||
|
|
@ -365,7 +360,6 @@ class GithubWebhook extends \Kanboard\Core\Base
|
|||
$task = $this->taskFinder->getByReference($this->project_id, $issue['number']);
|
||||
|
||||
if (! empty($task)) {
|
||||
|
||||
$event = array(
|
||||
'project_id' => $this->project_id,
|
||||
'task_id' => $task['id'],
|
||||
|
|
|
|||
|
|
@ -239,7 +239,6 @@ class GitlabWebhook extends \Kanboard\Core\Base
|
|||
$task = $this->taskFinder->getByReference($this->project_id, $payload['issue']['id']);
|
||||
|
||||
if (! empty($task)) {
|
||||
|
||||
$user = $this->user->getByUsername($payload['user']['username']);
|
||||
|
||||
if (! empty($user) && ! $this->projectPermission->isMember($this->project_id, $user['id'])) {
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ class HipchatWebhook extends \Kanboard\Core\Base
|
|||
public function notify($project_id, $task_id, $event_name, array $event)
|
||||
{
|
||||
if ($this->isActivated($project_id)) {
|
||||
|
||||
$params = $this->getParameters($project_id);
|
||||
$project = $this->project->getbyId($project_id);
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ class Jabber extends \Kanboard\Core\Base
|
|||
public function notify($project_id, $task_id, $event_name, array $event)
|
||||
{
|
||||
if ($this->isActivated($project_id)) {
|
||||
|
||||
$project = $this->project->getbyId($project_id);
|
||||
|
||||
$event['event_name'] = $event_name;
|
||||
|
|
@ -98,7 +97,6 @@ class Jabber extends \Kanboard\Core\Base
|
|||
public function sendMessage($project_id, $payload)
|
||||
{
|
||||
try {
|
||||
|
||||
$params = $this->getParameters($project_id);
|
||||
|
||||
$options = new Options($params['server']);
|
||||
|
|
@ -121,8 +119,7 @@ class Jabber extends \Kanboard\Core\Base
|
|||
$client->send($message);
|
||||
|
||||
$client->disconnect();
|
||||
}
|
||||
catch (Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
$this->container['logger']->error('Jabber error: '.$e->getMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,6 @@ class SlackWebhook extends \Kanboard\Core\Base
|
|||
public function notify($project_id, $task_id, $event_name, array $event)
|
||||
{
|
||||
if ($this->isActivated($project_id)) {
|
||||
|
||||
$project = $this->project->getbyId($project_id);
|
||||
|
||||
$event['event_name'] = $event_name;
|
||||
|
|
|
|||
|
|
@ -8,220 +8,219 @@
|
|||
*/
|
||||
|
||||
if (!defined('PASSWORD_BCRYPT')) {
|
||||
define('PASSWORD_BCRYPT', 1);
|
||||
define('PASSWORD_DEFAULT', PASSWORD_BCRYPT);
|
||||
|
||||
define('PASSWORD_BCRYPT', 1);
|
||||
define('PASSWORD_DEFAULT', PASSWORD_BCRYPT);
|
||||
if (version_compare(PHP_VERSION, '5.3.7', '<')) {
|
||||
define('PASSWORD_PREFIX', '$2a$');
|
||||
} else {
|
||||
define('PASSWORD_PREFIX', '$2y$');
|
||||
}
|
||||
|
||||
if (version_compare(PHP_VERSION, '5.3.7', '<')) {
|
||||
/**
|
||||
* Hash the password using the specified algorithm
|
||||
*
|
||||
* @param string $password The password to hash
|
||||
* @param int $algo The algorithm to use (Defined by PASSWORD_* constants)
|
||||
* @param array $options The options for the algorithm to use
|
||||
*
|
||||
* @return string|false The hashed password, or false on error.
|
||||
*/
|
||||
function password_hash($password, $algo, array $options = array())
|
||||
{
|
||||
if (!function_exists('crypt')) {
|
||||
trigger_error("Crypt must be loaded for password_hash to function", E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (!is_string($password)) {
|
||||
trigger_error("password_hash(): Password must be a string", E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (!is_int($algo)) {
|
||||
trigger_error("password_hash() expects parameter 2 to be long, " . gettype($algo) . " given", E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
switch ($algo) {
|
||||
case PASSWORD_BCRYPT:
|
||||
// Note that this is a C constant, but not exposed to PHP, so we don't define it here.
|
||||
$cost = 10;
|
||||
if (isset($options['cost'])) {
|
||||
$cost = $options['cost'];
|
||||
if ($cost < 4 || $cost > 31) {
|
||||
trigger_error(sprintf("password_hash(): Invalid bcrypt cost parameter specified: %d", $cost), E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
$required_salt_len = 22;
|
||||
$hash_format = sprintf("%s%02d$", PASSWORD_PREFIX, $cost);
|
||||
break;
|
||||
default:
|
||||
trigger_error(sprintf("password_hash(): Unknown password hashing algorithm: %s", $algo), E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (isset($options['salt'])) {
|
||||
switch (gettype($options['salt'])) {
|
||||
case 'NULL':
|
||||
case 'boolean':
|
||||
case 'integer':
|
||||
case 'double':
|
||||
case 'string':
|
||||
$salt = (string) $options['salt'];
|
||||
break;
|
||||
case 'object':
|
||||
if (method_exists($options['salt'], '__tostring')) {
|
||||
$salt = (string) $options['salt'];
|
||||
break;
|
||||
}
|
||||
case 'array':
|
||||
case 'resource':
|
||||
default:
|
||||
trigger_error('password_hash(): Non-string salt parameter supplied', E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (strlen($salt) < $required_salt_len) {
|
||||
trigger_error(sprintf("password_hash(): Provided salt is too short: %d expecting %d", strlen($salt), $required_salt_len), E_USER_WARNING);
|
||||
return null;
|
||||
} elseif (0 == preg_match('#^[a-zA-Z0-9./]+$#D', $salt)) {
|
||||
$salt = str_replace('+', '.', base64_encode($salt));
|
||||
}
|
||||
} else {
|
||||
$buffer = '';
|
||||
$raw_length = (int) ($required_salt_len * 3 / 4 + 1);
|
||||
$buffer_valid = false;
|
||||
if (function_exists('mcrypt_create_iv') && !defined('PHALANGER')) {
|
||||
$buffer = mcrypt_create_iv($raw_length, MCRYPT_DEV_URANDOM);
|
||||
if ($buffer) {
|
||||
$buffer_valid = true;
|
||||
}
|
||||
}
|
||||
if (!$buffer_valid && function_exists('openssl_random_pseudo_bytes')) {
|
||||
$buffer = openssl_random_pseudo_bytes($raw_length);
|
||||
if ($buffer) {
|
||||
$buffer_valid = true;
|
||||
}
|
||||
}
|
||||
if (!$buffer_valid && is_readable('/dev/urandom')) {
|
||||
$f = fopen('/dev/urandom', 'r');
|
||||
$read = strlen($buffer);
|
||||
while ($read < $raw_length) {
|
||||
$buffer .= fread($f, $raw_length - $read);
|
||||
$read = strlen($buffer);
|
||||
}
|
||||
fclose($f);
|
||||
if ($read >= $raw_length) {
|
||||
$buffer_valid = true;
|
||||
}
|
||||
}
|
||||
if (!$buffer_valid || strlen($buffer) < $raw_length) {
|
||||
$bl = strlen($buffer);
|
||||
for ($i = 0; $i < $raw_length; $i++) {
|
||||
if ($i < $bl) {
|
||||
$buffer[$i] = $buffer[$i] ^ chr(mt_rand(0, 255));
|
||||
} else {
|
||||
$buffer .= chr(mt_rand(0, 255));
|
||||
}
|
||||
}
|
||||
}
|
||||
$salt = str_replace('+', '.', base64_encode($buffer));
|
||||
}
|
||||
$salt = substr($salt, 0, $required_salt_len);
|
||||
|
||||
define('PASSWORD_PREFIX', '$2a$');
|
||||
}
|
||||
else {
|
||||
$hash = $hash_format . $salt;
|
||||
|
||||
define('PASSWORD_PREFIX', '$2y$');
|
||||
}
|
||||
$ret = crypt($password, $hash);
|
||||
|
||||
/**
|
||||
* Hash the password using the specified algorithm
|
||||
*
|
||||
* @param string $password The password to hash
|
||||
* @param int $algo The algorithm to use (Defined by PASSWORD_* constants)
|
||||
* @param array $options The options for the algorithm to use
|
||||
*
|
||||
* @return string|false The hashed password, or false on error.
|
||||
*/
|
||||
function password_hash($password, $algo, array $options = array()) {
|
||||
if (!function_exists('crypt')) {
|
||||
trigger_error("Crypt must be loaded for password_hash to function", E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (!is_string($password)) {
|
||||
trigger_error("password_hash(): Password must be a string", E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (!is_int($algo)) {
|
||||
trigger_error("password_hash() expects parameter 2 to be long, " . gettype($algo) . " given", E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
switch ($algo) {
|
||||
case PASSWORD_BCRYPT:
|
||||
// Note that this is a C constant, but not exposed to PHP, so we don't define it here.
|
||||
$cost = 10;
|
||||
if (isset($options['cost'])) {
|
||||
$cost = $options['cost'];
|
||||
if ($cost < 4 || $cost > 31) {
|
||||
trigger_error(sprintf("password_hash(): Invalid bcrypt cost parameter specified: %d", $cost), E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
$required_salt_len = 22;
|
||||
$hash_format = sprintf("%s%02d$", PASSWORD_PREFIX, $cost);
|
||||
break;
|
||||
default:
|
||||
trigger_error(sprintf("password_hash(): Unknown password hashing algorithm: %s", $algo), E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (isset($options['salt'])) {
|
||||
switch (gettype($options['salt'])) {
|
||||
case 'NULL':
|
||||
case 'boolean':
|
||||
case 'integer':
|
||||
case 'double':
|
||||
case 'string':
|
||||
$salt = (string) $options['salt'];
|
||||
break;
|
||||
case 'object':
|
||||
if (method_exists($options['salt'], '__tostring')) {
|
||||
$salt = (string) $options['salt'];
|
||||
break;
|
||||
}
|
||||
case 'array':
|
||||
case 'resource':
|
||||
default:
|
||||
trigger_error('password_hash(): Non-string salt parameter supplied', E_USER_WARNING);
|
||||
return null;
|
||||
}
|
||||
if (strlen($salt) < $required_salt_len) {
|
||||
trigger_error(sprintf("password_hash(): Provided salt is too short: %d expecting %d", strlen($salt), $required_salt_len), E_USER_WARNING);
|
||||
return null;
|
||||
} elseif (0 == preg_match('#^[a-zA-Z0-9./]+$#D', $salt)) {
|
||||
$salt = str_replace('+', '.', base64_encode($salt));
|
||||
}
|
||||
} else {
|
||||
$buffer = '';
|
||||
$raw_length = (int) ($required_salt_len * 3 / 4 + 1);
|
||||
$buffer_valid = false;
|
||||
if (function_exists('mcrypt_create_iv') && !defined('PHALANGER')) {
|
||||
$buffer = mcrypt_create_iv($raw_length, MCRYPT_DEV_URANDOM);
|
||||
if ($buffer) {
|
||||
$buffer_valid = true;
|
||||
}
|
||||
}
|
||||
if (!$buffer_valid && function_exists('openssl_random_pseudo_bytes')) {
|
||||
$buffer = openssl_random_pseudo_bytes($raw_length);
|
||||
if ($buffer) {
|
||||
$buffer_valid = true;
|
||||
}
|
||||
}
|
||||
if (!$buffer_valid && is_readable('/dev/urandom')) {
|
||||
$f = fopen('/dev/urandom', 'r');
|
||||
$read = strlen($buffer);
|
||||
while ($read < $raw_length) {
|
||||
$buffer .= fread($f, $raw_length - $read);
|
||||
$read = strlen($buffer);
|
||||
}
|
||||
fclose($f);
|
||||
if ($read >= $raw_length) {
|
||||
$buffer_valid = true;
|
||||
}
|
||||
}
|
||||
if (!$buffer_valid || strlen($buffer) < $raw_length) {
|
||||
$bl = strlen($buffer);
|
||||
for ($i = 0; $i < $raw_length; $i++) {
|
||||
if ($i < $bl) {
|
||||
$buffer[$i] = $buffer[$i] ^ chr(mt_rand(0, 255));
|
||||
} else {
|
||||
$buffer .= chr(mt_rand(0, 255));
|
||||
}
|
||||
}
|
||||
}
|
||||
$salt = str_replace('+', '.', base64_encode($buffer));
|
||||
if (!is_string($ret) || strlen($ret) <= 13) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
$salt = substr($salt, 0, $required_salt_len);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
$hash = $hash_format . $salt;
|
||||
/**
|
||||
* Get information about the password hash. Returns an array of the information
|
||||
* that was used to generate the password hash.
|
||||
*
|
||||
* array(
|
||||
* 'algo' => 1,
|
||||
* 'algoName' => 'bcrypt',
|
||||
* 'options' => array(
|
||||
* 'cost' => 10,
|
||||
* ),
|
||||
* )
|
||||
*
|
||||
* @param string $hash The password hash to extract info from
|
||||
*
|
||||
* @return array The array of information about the hash.
|
||||
*/
|
||||
function password_get_info($hash)
|
||||
{
|
||||
$return = array(
|
||||
'algo' => 0,
|
||||
'algoName' => 'unknown',
|
||||
'options' => array(),
|
||||
);
|
||||
if (substr($hash, 0, 4) == PASSWORD_PREFIX && strlen($hash) == 60) {
|
||||
$return['algo'] = PASSWORD_BCRYPT;
|
||||
$return['algoName'] = 'bcrypt';
|
||||
list($cost) = sscanf($hash, PASSWORD_PREFIX."%d$");
|
||||
$return['options']['cost'] = $cost;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
$ret = crypt($password, $hash);
|
||||
/**
|
||||
* Determine if the password hash needs to be rehashed according to the options provided
|
||||
*
|
||||
* If the answer is true, after validating the password using password_verify, rehash it.
|
||||
*
|
||||
* @param string $hash The hash to test
|
||||
* @param int $algo The algorithm used for new password hashes
|
||||
* @param array $options The options array passed to password_hash
|
||||
*
|
||||
* @return boolean True if the password needs to be rehashed.
|
||||
*/
|
||||
function password_needs_rehash($hash, $algo, array $options = array())
|
||||
{
|
||||
$info = password_get_info($hash);
|
||||
if ($info['algo'] != $algo) {
|
||||
return true;
|
||||
}
|
||||
switch ($algo) {
|
||||
case PASSWORD_BCRYPT:
|
||||
$cost = isset($options['cost']) ? $options['cost'] : 10;
|
||||
if ($cost != $info['options']['cost']) {
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!is_string($ret) || strlen($ret) <= 13) {
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Verify a password against a hash using a timing attack resistant approach
|
||||
*
|
||||
* @param string $password The password to verify
|
||||
* @param string $hash The hash to verify against
|
||||
*
|
||||
* @return boolean If the password matches the hash
|
||||
*/
|
||||
function password_verify($password, $hash)
|
||||
{
|
||||
if (!function_exists('crypt')) {
|
||||
trigger_error("Crypt must be loaded for password_verify to function", E_USER_WARNING);
|
||||
return false;
|
||||
}
|
||||
$ret = crypt($password, $hash);
|
||||
if (!is_string($ret) || strlen($ret) != strlen($hash) || strlen($ret) <= 13) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
$status = 0;
|
||||
for ($i = 0; $i < strlen($ret); $i++) {
|
||||
$status |= (ord($ret[$i]) ^ ord($hash[$i]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get information about the password hash. Returns an array of the information
|
||||
* that was used to generate the password hash.
|
||||
*
|
||||
* array(
|
||||
* 'algo' => 1,
|
||||
* 'algoName' => 'bcrypt',
|
||||
* 'options' => array(
|
||||
* 'cost' => 10,
|
||||
* ),
|
||||
* )
|
||||
*
|
||||
* @param string $hash The password hash to extract info from
|
||||
*
|
||||
* @return array The array of information about the hash.
|
||||
*/
|
||||
function password_get_info($hash) {
|
||||
$return = array(
|
||||
'algo' => 0,
|
||||
'algoName' => 'unknown',
|
||||
'options' => array(),
|
||||
);
|
||||
if (substr($hash, 0, 4) == PASSWORD_PREFIX && strlen($hash) == 60) {
|
||||
$return['algo'] = PASSWORD_BCRYPT;
|
||||
$return['algoName'] = 'bcrypt';
|
||||
list($cost) = sscanf($hash, PASSWORD_PREFIX."%d$");
|
||||
$return['options']['cost'] = $cost;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if the password hash needs to be rehashed according to the options provided
|
||||
*
|
||||
* If the answer is true, after validating the password using password_verify, rehash it.
|
||||
*
|
||||
* @param string $hash The hash to test
|
||||
* @param int $algo The algorithm used for new password hashes
|
||||
* @param array $options The options array passed to password_hash
|
||||
*
|
||||
* @return boolean True if the password needs to be rehashed.
|
||||
*/
|
||||
function password_needs_rehash($hash, $algo, array $options = array()) {
|
||||
$info = password_get_info($hash);
|
||||
if ($info['algo'] != $algo) {
|
||||
return true;
|
||||
}
|
||||
switch ($algo) {
|
||||
case PASSWORD_BCRYPT:
|
||||
$cost = isset($options['cost']) ? $options['cost'] : 10;
|
||||
if ($cost != $info['options']['cost']) {
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify a password against a hash using a timing attack resistant approach
|
||||
*
|
||||
* @param string $password The password to verify
|
||||
* @param string $hash The hash to verify against
|
||||
*
|
||||
* @return boolean If the password matches the hash
|
||||
*/
|
||||
function password_verify($password, $hash) {
|
||||
if (!function_exists('crypt')) {
|
||||
trigger_error("Crypt must be loaded for password_verify to function", E_USER_WARNING);
|
||||
return false;
|
||||
}
|
||||
$ret = crypt($password, $hash);
|
||||
if (!is_string($ret) || strlen($ret) != strlen($hash) || strlen($ret) <= 13) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$status = 0;
|
||||
for ($i = 0; $i < strlen($ret); $i++) {
|
||||
$status |= (ord($ret[$i]) ^ ord($hash[$i]));
|
||||
}
|
||||
|
||||
return $status === 0;
|
||||
}
|
||||
return $status === 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -184,7 +184,6 @@ class Action extends Base
|
|||
$params = $this->db->table(self::TABLE_PARAMS)->findAll();
|
||||
|
||||
foreach ($actions as &$action) {
|
||||
|
||||
$action['params'] = array();
|
||||
|
||||
foreach ($params as $param) {
|
||||
|
|
@ -270,7 +269,6 @@ class Action extends Base
|
|||
$action_id = $this->db->getLastId();
|
||||
|
||||
foreach ($values['params'] as $param_name => $param_value) {
|
||||
|
||||
$action_param = array(
|
||||
'action_id' => $action_id,
|
||||
'name' => $param_name,
|
||||
|
|
@ -298,7 +296,6 @@ class Action extends Base
|
|||
$actions = $this->getAll();
|
||||
|
||||
foreach ($actions as $action) {
|
||||
|
||||
$listener = $this->load($action['action_name'], $action['project_id'], $action['event_name']);
|
||||
|
||||
foreach ($action['params'] as $param) {
|
||||
|
|
@ -320,7 +317,8 @@ class Action extends Base
|
|||
*/
|
||||
public function load($name, $project_id, $event)
|
||||
{
|
||||
$className = $name{0} !== '\\' ? '\Kanboard\Action\\'.$name : $name;
|
||||
$className = $name{0}
|
||||
!== '\\' ? '\Kanboard\Action\\'.$name : $name;
|
||||
return new $className($this->container, $project_id, $event);
|
||||
}
|
||||
|
||||
|
|
@ -337,7 +335,6 @@ class Action extends Base
|
|||
$actions = $this->action->getAllByProject($src_project_id);
|
||||
|
||||
foreach ($actions as $action) {
|
||||
|
||||
$this->db->startTransaction();
|
||||
|
||||
$values = array(
|
||||
|
|
@ -378,7 +375,6 @@ class Action extends Base
|
|||
public function duplicateParameters($project_id, $action_id, array $params)
|
||||
{
|
||||
foreach ($params as $param) {
|
||||
|
||||
$value = $this->resolveParameters($param, $project_id);
|
||||
|
||||
if ($value === false) {
|
||||
|
|
|
|||
|
|
@ -79,12 +79,10 @@ class Authentication extends Base
|
|||
if ($this->user->isLocked($username)) {
|
||||
$this->container['logger']->error('Account locked: '.$username);
|
||||
return false;
|
||||
}
|
||||
else if ($this->backend('database')->authenticate($username, $password)) {
|
||||
} elseif ($this->backend('database')->authenticate($username, $password)) {
|
||||
$this->user->resetFailedLogin($username);
|
||||
return true;
|
||||
}
|
||||
else if (LDAP_AUTH && $this->backend('ldap')->authenticate($username, $password)) {
|
||||
} elseif (LDAP_AUTH && $this->backend('ldap')->authenticate($username, $password)) {
|
||||
$this->user->resetFailedLogin($username);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -133,11 +131,9 @@ class Authentication extends Base
|
|||
list($result, $errors) = $this->validateFormCredentials($values);
|
||||
|
||||
if ($result) {
|
||||
|
||||
if ($this->validateFormCaptcha($values) && $this->authenticate($values['username'], $values['password'])) {
|
||||
$this->createRememberMeSession($values);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$result = false;
|
||||
$errors['login'] = t('Bad username or password');
|
||||
}
|
||||
|
|
@ -194,7 +190,6 @@ class Authentication extends Base
|
|||
private function createRememberMeSession(array $values)
|
||||
{
|
||||
if (REMEMBER_ME_AUTH && ! empty($values['remember_me'])) {
|
||||
|
||||
$credentials = $this->backend('rememberMe')
|
||||
->create($this->userSession->getId(), Request::getIpAddress(), Request::getUserAgent());
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ abstract class Base extends \Kanboard\Core\Base
|
|||
*/
|
||||
public function persist($table, array $values)
|
||||
{
|
||||
return $this->db->transaction(function($db) use ($table, $values) {
|
||||
return $this->db->transaction(function ($db) use ($table, $values) {
|
||||
|
||||
if (! $db->table($table)->save($values)) {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ class Board extends Base
|
|||
$columns = array();
|
||||
|
||||
foreach ($column_names as $column_name) {
|
||||
|
||||
$column_name = trim($column_name);
|
||||
|
||||
if (! empty($column_name)) {
|
||||
|
|
@ -67,7 +66,6 @@ class Board extends Base
|
|||
$position = 0;
|
||||
|
||||
foreach ($columns as $column) {
|
||||
|
||||
$values = array(
|
||||
'title' => $column['title'],
|
||||
'position' => ++$position,
|
||||
|
|
@ -120,7 +118,7 @@ class Board extends Base
|
|||
'title' => $title,
|
||||
'task_limit' => intval($task_limit),
|
||||
'position' => $this->getLastColumnPosition($project_id) + 1,
|
||||
'description' => $description,
|
||||
'description' => $description,
|
||||
);
|
||||
|
||||
return $this->persist(self::TABLE, $values);
|
||||
|
|
@ -199,7 +197,6 @@ class Board extends Base
|
|||
$positions = array_flip($columns);
|
||||
|
||||
if (isset($columns[$column_id]) && $columns[$column_id] < count($columns)) {
|
||||
|
||||
$position = ++$columns[$column_id];
|
||||
$columns[$positions[$position]]--;
|
||||
|
||||
|
|
@ -223,7 +220,6 @@ class Board extends Base
|
|||
$positions = array_flip($columns);
|
||||
|
||||
if (isset($columns[$column_id]) && $columns[$column_id] > 1) {
|
||||
|
||||
$position = --$columns[$column_id];
|
||||
$columns[$positions[$position]]++;
|
||||
|
||||
|
|
@ -248,14 +244,12 @@ class Board extends Base
|
|||
$nb_columns = count($columns);
|
||||
|
||||
for ($i = 0, $ilen = count($swimlanes); $i < $ilen; $i++) {
|
||||
|
||||
$swimlanes[$i]['columns'] = $columns;
|
||||
$swimlanes[$i]['nb_columns'] = $nb_columns;
|
||||
$swimlanes[$i]['nb_tasks'] = 0;
|
||||
$swimlanes[$i]['nb_swimlanes'] = $ilen;
|
||||
|
||||
for ($j = 0; $j < $nb_columns; $j++) {
|
||||
|
||||
$column_id = $columns[$j]['id'];
|
||||
$swimlane_id = $swimlanes[$i]['id'];
|
||||
|
||||
|
|
|
|||
|
|
@ -128,7 +128,6 @@ class Category extends Base
|
|||
$categories = explode(',', $this->config->get('project_categories'));
|
||||
|
||||
foreach ($categories as $category) {
|
||||
|
||||
$category = trim($category);
|
||||
|
||||
if (! empty($category)) {
|
||||
|
|
@ -204,7 +203,6 @@ class Category extends Base
|
|||
->findAll();
|
||||
|
||||
foreach ($categories as $category) {
|
||||
|
||||
$category['project_id'] = $dst_project_id;
|
||||
|
||||
if (! $this->db->table(self::TABLE)->save($category)) {
|
||||
|
|
|
|||
|
|
@ -113,8 +113,7 @@ class Color extends Base
|
|||
foreach ($this->default_colors as $color_id => $params) {
|
||||
if ($color_id === $color) {
|
||||
return $color_id;
|
||||
}
|
||||
else if ($color === strtolower($params['name'])) {
|
||||
} elseif ($color === strtolower($params['name'])) {
|
||||
return $color_id;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ class File extends Base
|
|||
public function remove($file_id)
|
||||
{
|
||||
try {
|
||||
|
||||
$file = $this->getbyId($file_id);
|
||||
$this->objectStorage->remove($file['path']);
|
||||
|
||||
|
|
@ -59,8 +58,7 @@ class File extends Base
|
|||
}
|
||||
|
||||
return $this->db->table(self::TABLE)->eq('id', $file['id'])->remove();
|
||||
}
|
||||
catch (ObjectStorageException $e) {
|
||||
} catch (ObjectStorageException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
|
@ -108,7 +106,6 @@ class File extends Base
|
|||
));
|
||||
|
||||
if ($result) {
|
||||
|
||||
$this->container['dispatcher']->dispatch(
|
||||
self::EVENT_CREATE,
|
||||
new FileEvent(array('task_id' => $task_id, 'name' => $name))
|
||||
|
|
@ -266,15 +263,12 @@ class File extends Base
|
|||
public function uploadFiles($project_id, $task_id, $form_name)
|
||||
{
|
||||
try {
|
||||
|
||||
if (empty($_FILES[$form_name])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($_FILES[$form_name]['error'] as $key => $error) {
|
||||
|
||||
if ($error == UPLOAD_ERR_OK && $_FILES[$form_name]['size'][$key] > 0) {
|
||||
|
||||
$original_filename = $_FILES[$form_name]['name'][$key];
|
||||
$uploaded_filename = $_FILES[$form_name]['tmp_name'][$key];
|
||||
$destination_filename = $this->generatePath($project_id, $task_id, $original_filename);
|
||||
|
|
@ -295,8 +289,7 @@ class File extends Base
|
|||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (ObjectStorageException $e) {
|
||||
} catch (ObjectStorageException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
|
@ -330,7 +323,6 @@ class File extends Base
|
|||
public function uploadContent($project_id, $task_id, $original_filename, $blob)
|
||||
{
|
||||
try {
|
||||
|
||||
$data = base64_decode($blob);
|
||||
|
||||
if (empty($data)) {
|
||||
|
|
@ -350,8 +342,7 @@ class File extends Base
|
|||
$destination_filename,
|
||||
strlen($data)
|
||||
);
|
||||
}
|
||||
catch (ObjectStorageException $e) {
|
||||
} catch (ObjectStorageException $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ class LastLogin extends Base
|
|||
->findAllByColumn('id');
|
||||
|
||||
if (count($connections) >= self::NB_LOGINS) {
|
||||
|
||||
$this->db->table(self::TABLE)
|
||||
->eq('user_id', $user_id)
|
||||
->notin('id', array_slice($connections, 0, self::NB_LOGINS - 1))
|
||||
|
|
|
|||
|
|
@ -126,7 +126,6 @@ class Link extends Base
|
|||
$label_id = $this->db->getLastId();
|
||||
|
||||
if (! empty($opposite_label)) {
|
||||
|
||||
$this->db
|
||||
->table(self::TABLE)
|
||||
->insert(array(
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ abstract class NotificationType extends Base
|
|||
$container = $this->container;
|
||||
$this->labels[$type] = $label;
|
||||
|
||||
$this->classes[$type] = function() use ($class, $container) {
|
||||
$this->classes[$type] = function () use ($class, $container) {
|
||||
return new $class($container);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,18 +138,17 @@ class ProjectActivity extends Base
|
|||
*/
|
||||
private function getEvents(\PicoDb\Table $query, $start, $end)
|
||||
{
|
||||
if (! is_null($start)){
|
||||
if (! is_null($start)) {
|
||||
$query->gte('date_creation', $start);
|
||||
}
|
||||
|
||||
if (! is_null($end)){
|
||||
if (! is_null($end)) {
|
||||
$query->lte('date_creation', $end);
|
||||
}
|
||||
|
||||
$events = $query->findAll();
|
||||
|
||||
foreach ($events as &$event) {
|
||||
|
||||
$event += $this->decode($event['data']);
|
||||
unset($event['data']);
|
||||
|
||||
|
|
@ -170,7 +169,6 @@ class ProjectActivity extends Base
|
|||
public function cleanup($max)
|
||||
{
|
||||
if ($this->db->table(self::TABLE)->count() > $max) {
|
||||
|
||||
$this->db->execute('
|
||||
DELETE FROM '.self::TABLE.'
|
||||
WHERE id <= (
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ class ProjectAnalytic extends Base
|
|||
$columns = $this->board->getColumns($project_id);
|
||||
|
||||
foreach ($columns as $column) {
|
||||
|
||||
$nb_tasks = $this->taskFinder->countByColumnId($project_id, $column['id']);
|
||||
$total += $nb_tasks;
|
||||
|
||||
|
|
@ -60,7 +59,6 @@ class ProjectAnalytic extends Base
|
|||
$users = $this->projectPermission->getMemberList($project_id);
|
||||
|
||||
foreach ($tasks as $task) {
|
||||
|
||||
$user = isset($users[$task['owner_id']]) ? $users[$task['owner_id']] : $users[0];
|
||||
$total++;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class ProjectDailyColumnStats extends Base
|
|||
{
|
||||
$status = $this->config->get('cfd_include_closed_tasks') == 1 ? array(Task::STATUS_OPEN, Task::STATUS_CLOSED) : array(Task::STATUS_OPEN);
|
||||
|
||||
return $this->db->transaction(function($db) use ($project_id, $date, $status) {
|
||||
return $this->db->transaction(function ($db) use ($project_id, $date, $status) {
|
||||
|
||||
$column_ids = $db->table(Board::TABLE)->eq('project_id', $project_id)->findAllByColumn('id');
|
||||
|
||||
|
|
@ -171,7 +171,6 @@ class ProjectDailyColumnStats extends Base
|
|||
|
||||
// Aggregate by day
|
||||
foreach ($records as $record) {
|
||||
|
||||
if (! isset($aggregates[$record['day']])) {
|
||||
$aggregates[$record['day']] = array($record['day']);
|
||||
}
|
||||
|
|
@ -181,7 +180,6 @@ class ProjectDailyColumnStats extends Base
|
|||
|
||||
// Aggregate by row
|
||||
foreach ($aggregates as $aggregate) {
|
||||
|
||||
$row = array($aggregate[0]);
|
||||
|
||||
foreach ($column_ids as $column_id) {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class ProjectDailyStats extends Base
|
|||
{
|
||||
$lead_cycle_time = $this->projectAnalytic->getAverageLeadAndCycleTime($project_id);
|
||||
|
||||
return $this->db->transaction(function($db) use ($project_id, $date, $lead_cycle_time) {
|
||||
return $this->db->transaction(function ($db) use ($project_id, $date, $lead_cycle_time) {
|
||||
|
||||
// This call will fail if the record already exists
|
||||
// (cross database driver hack for INSERT..ON DUPLICATE KEY UPDATE)
|
||||
|
|
|
|||
|
|
@ -280,9 +280,9 @@ class ProjectPermission extends Base
|
|||
->eq('project_id', $project_id)
|
||||
->eq('user_id', $user_id)
|
||||
->exists();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Check if a specific user is manager of a given project
|
||||
*
|
||||
* @access public
|
||||
|
|
@ -439,7 +439,6 @@ class ProjectPermission extends Base
|
|||
->findAll();
|
||||
|
||||
foreach ($rows as $row) {
|
||||
|
||||
$result = $this->db
|
||||
->table(self::TABLE)
|
||||
->save(array(
|
||||
|
|
|
|||
|
|
@ -148,7 +148,6 @@ class Subtask extends Base
|
|||
public function getById($subtask_id, $more = false)
|
||||
{
|
||||
if ($more) {
|
||||
|
||||
return $this->db
|
||||
->table(self::TABLE)
|
||||
->eq(self::TABLE.'.id', $subtask_id)
|
||||
|
|
@ -341,7 +340,6 @@ class Subtask extends Base
|
|||
$positions = array_flip($subtasks);
|
||||
|
||||
if (isset($subtasks[$subtask_id]) && $subtasks[$subtask_id] > 1) {
|
||||
|
||||
$position = --$subtasks[$subtask_id];
|
||||
$subtasks[$positions[$position]]++;
|
||||
|
||||
|
|
@ -446,7 +444,6 @@ class Subtask extends Base
|
|||
->findAll();
|
||||
|
||||
foreach ($subtasks as &$subtask) {
|
||||
|
||||
$subtask['task_id'] = $dst_task_id;
|
||||
|
||||
if (! $db->table(Subtask::TABLE)->save($subtask)) {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue