Add default filter per user
This commit is contained in:
committed by
Frédéric Guillot
parent
bc4457c4cb
commit
5f7a3442d6
@@ -54,6 +54,7 @@ class UserModificationController extends BaseController
|
|||||||
'email' => isset($values['email']) ? $values['email'] : '',
|
'email' => isset($values['email']) ? $values['email'] : '',
|
||||||
'timezone' => isset($values['timezone']) ? $values['timezone'] : '',
|
'timezone' => isset($values['timezone']) ? $values['timezone'] : '',
|
||||||
'language' => isset($values['language']) ? $values['language'] : '',
|
'language' => isset($values['language']) ? $values['language'] : '',
|
||||||
|
'filter' => isset($values['filter']) ? $values['filter'] : '',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ class UserSession extends Base
|
|||||||
public function getFilters($projectID)
|
public function getFilters($projectID)
|
||||||
{
|
{
|
||||||
if (! session_exists('filters:'.$projectID)) {
|
if (! session_exists('filters:'.$projectID)) {
|
||||||
return 'status:open';
|
return session_get('user')['filter'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return session_get('filters:'.$projectID);
|
return session_get('filters:'.$projectID);
|
||||||
|
|||||||
@@ -8,7 +8,12 @@ use PDO;
|
|||||||
use Kanboard\Core\Security\Token;
|
use Kanboard\Core\Security\Token;
|
||||||
use Kanboard\Core\Security\Role;
|
use Kanboard\Core\Security\Role;
|
||||||
|
|
||||||
const VERSION = 127;
|
const VERSION = 128;
|
||||||
|
|
||||||
|
function version_128(PDO $pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE `users` ADD COLUMN `filter` VARCHAR(255) DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
function version_127(PDO $pdo)
|
function version_127(PDO $pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,12 @@ use PDO;
|
|||||||
use Kanboard\Core\Security\Token;
|
use Kanboard\Core\Security\Token;
|
||||||
use Kanboard\Core\Security\Role;
|
use Kanboard\Core\Security\Role;
|
||||||
|
|
||||||
const VERSION = 106;
|
const VERSION = 107;
|
||||||
|
|
||||||
|
function version_107(PDO $pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE "users" ADD COLUMN filter VARCHAR(255) DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
function version_106(PDO $pdo)
|
function version_106(PDO $pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -752,6 +752,7 @@ CREATE TABLE `users` (
|
|||||||
`is_active` tinyint(1) DEFAULT '1',
|
`is_active` tinyint(1) DEFAULT '1',
|
||||||
`avatar_path` varchar(255) DEFAULT NULL,
|
`avatar_path` varchar(255) DEFAULT NULL,
|
||||||
`api_access_token` varchar(255) DEFAULT NULL,
|
`api_access_token` varchar(255) DEFAULT NULL,
|
||||||
|
`filter` varchar(255) DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `users_username_idx` (`username`)
|
UNIQUE KEY `users_username_idx` (`username`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|||||||
@@ -1299,7 +1299,8 @@ CREATE TABLE "users" (
|
|||||||
"role" character varying(25) DEFAULT 'app-user'::character varying NOT NULL,
|
"role" character varying(25) DEFAULT 'app-user'::character varying NOT NULL,
|
||||||
"is_active" boolean DEFAULT true,
|
"is_active" boolean DEFAULT true,
|
||||||
"avatar_path" character varying(255),
|
"avatar_path" character varying(255),
|
||||||
"api_access_token" character varying(255) DEFAULT NULL::character varying
|
"api_access_token" character varying(255) DEFAULT NULL::character varying,
|
||||||
|
"filter" character varying(255) DEFAULT NULL::character varying
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,12 @@ use Kanboard\Core\Security\Token;
|
|||||||
use Kanboard\Core\Security\Role;
|
use Kanboard\Core\Security\Role;
|
||||||
use PDO;
|
use PDO;
|
||||||
|
|
||||||
const VERSION = 117;
|
const VERSION = 118;
|
||||||
|
|
||||||
|
function version_118(PDO $pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE users ADD COLUMN filter VARCHAR(255) DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
function version_117(PDO $pdo)
|
function version_117(PDO $pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,6 +50,9 @@
|
|||||||
|
|
||||||
<?= $this->form->label(t('Language'), 'language') ?>
|
<?= $this->form->label(t('Language'), 'language') ?>
|
||||||
<?= $this->form->select('language', $languages, $values, $errors) ?>
|
<?= $this->form->select('language', $languages, $values, $errors) ?>
|
||||||
|
|
||||||
|
<?= $this->form->label(t('Filter'), 'filter') ?>
|
||||||
|
<?= $this->form->text('filter', $values, $errors) ?>
|
||||||
|
|
||||||
<?= $this->form->checkbox('notifications_enabled', t('Enable email notifications'), 1, isset($values['notifications_enabled']) && $values['notifications_enabled'] == 1 ? true : false) ?>
|
<?= $this->form->checkbox('notifications_enabled', t('Enable email notifications'), 1, isset($values['notifications_enabled']) && $values['notifications_enabled'] == 1 ? true : false) ?>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
|
|
||||||
<?= $this->form->label(t('Language'), 'language') ?>
|
<?= $this->form->label(t('Language'), 'language') ?>
|
||||||
<?= $this->form->select('language', $languages, $values, $errors, array($this->user->hasAccess('UserModificationController', 'show/edit_language') ? '' : 'disabled')) ?>
|
<?= $this->form->select('language', $languages, $values, $errors, array($this->user->hasAccess('UserModificationController', 'show/edit_language') ? '' : 'disabled')) ?>
|
||||||
|
|
||||||
|
<?= $this->form->label(t('Filter'), 'filter') ?>
|
||||||
|
<?= $this->form->text('filter', $values, $errors, array($this->user->hasAccess('UserModificationController', 'show/edit_filter') ? '' : 'readonly')) ?>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<?php if ($this->user->isAdmin()): ?>
|
<?php if ($this->user->isAdmin()): ?>
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
<ul class="panel">
|
<ul class="panel">
|
||||||
<li><?= t('Timezone:') ?> <strong><?= $this->text->in($user['timezone'], $timezones) ?></strong></li>
|
<li><?= t('Timezone:') ?> <strong><?= $this->text->in($user['timezone'], $timezones) ?></strong></li>
|
||||||
<li><?= t('Language:') ?> <strong><?= $this->text->in($user['language'], $languages) ?></strong></li>
|
<li><?= t('Language:') ?> <strong><?= $this->text->in($user['language'], $languages) ?></strong></li>
|
||||||
|
<li><?= t('Filter:') ?> <strong><?= $this->text->e($user['filter']) ?></strong></li>
|
||||||
<li><?= t('Notifications:') ?> <strong><?= $user['notifications_enabled'] == 1 ? t('Enabled') : t('Disabled') ?></strong></li>
|
<li><?= t('Notifications:') ?> <strong><?= $user['notifications_enabled'] == 1 ? t('Enabled') : t('Disabled') ?></strong></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ class UserSessionTest extends Base
|
|||||||
'is_ldap_user' => '0',
|
'is_ldap_user' => '0',
|
||||||
'twofactor_activated' => '0',
|
'twofactor_activated' => '0',
|
||||||
'role' => Role::APP_MANAGER,
|
'role' => Role::APP_MANAGER,
|
||||||
|
'filter' => 'status:close',
|
||||||
);
|
);
|
||||||
|
|
||||||
$userSession->initialize($user);
|
$userSession->initialize($user);
|
||||||
@@ -28,6 +29,7 @@ class UserSessionTest extends Base
|
|||||||
$this->assertEquals(123, $_SESSION['user']['id']);
|
$this->assertEquals(123, $_SESSION['user']['id']);
|
||||||
$this->assertEquals('john', $_SESSION['user']['username']);
|
$this->assertEquals('john', $_SESSION['user']['username']);
|
||||||
$this->assertEquals(Role::APP_MANAGER, $_SESSION['user']['role']);
|
$this->assertEquals(Role::APP_MANAGER, $_SESSION['user']['role']);
|
||||||
|
$this->assertEquals('status:close', $_SESSION['user']['filter']);
|
||||||
$this->assertFalse($_SESSION['user']['is_ldap_user']);
|
$this->assertFalse($_SESSION['user']['is_ldap_user']);
|
||||||
$this->assertFalse($_SESSION['user']['twofactor_activated']);
|
$this->assertFalse($_SESSION['user']['twofactor_activated']);
|
||||||
$this->assertArrayNotHasKey('password', $_SESSION['user']);
|
$this->assertArrayNotHasKey('password', $_SESSION['user']);
|
||||||
@@ -81,6 +83,9 @@ class UserSessionTest extends Base
|
|||||||
public function testFilters()
|
public function testFilters()
|
||||||
{
|
{
|
||||||
$userSession = new UserSession($this->container);
|
$userSession = new UserSession($this->container);
|
||||||
|
$this->assertEquals('', $userSession->getFilters(1));
|
||||||
|
|
||||||
|
$_SESSION['user'] = array('filter' => 'status:open');
|
||||||
$this->assertEquals('status:open', $userSession->getFilters(1));
|
$this->assertEquals('status:open', $userSession->getFilters(1));
|
||||||
|
|
||||||
$userSession->setFilters(1, 'assignee:me');
|
$userSession->setFilters(1, 'assignee:me');
|
||||||
|
|||||||
Reference in New Issue
Block a user