|
|
<?php |
|
|
|
|
|
require_once __DIR__.'/../../Base.php'; |
|
|
|
|
|
use Kanboard\Core\Security\Role; |
|
|
use Kanboard\Core\User\UserProperty; |
|
|
use Kanboard\User\LdapUserProvider; |
|
|
|
|
|
class UserPropertyTest extends Base |
|
|
{ |
|
|
public function testGetProperties() |
|
|
{ |
|
|
$user = new LdapUserProvider('ldapId', 'bob', 'Bob', '', Role::APP_USER, array()); |
|
|
|
|
|
$expected = array( |
|
|
'username' => 'bob', |
|
|
'name' => 'Bob', |
|
|
'role' => Role::APP_USER, |
|
|
'is_ldap_user' => 1, |
|
|
); |
|
|
|
|
|
$this->assertEquals($expected, UserProperty::getProperties($user)); |
|
|
|
|
|
$user = new LdapUserProvider('ldapId', 'bob', '', '', '', array()); |
|
|
|
|
|
$expected = array( |
|
|
'username' => 'bob', |
|
|
'is_ldap_user' => 1, |
|
|
); |
|
|
|
|
|
$this->assertEquals($expected, UserProperty::getProperties($user)); |
|
|
} |
|
|
|
|
|
public function testFilterPropertiesDoNotOverrideExistingValue() |
|
|
{ |
|
|
$profile = array( |
|
|
'id' => 123, |
|
|
'username' => 'bob', |
|
|
'name' => null, |
|
|
'email' => '', |
|
|
'other_column' => 'myvalue', |
|
|
'role' => Role::APP_ADMIN, |
|
|
); |
|
|
|
|
|
$properties = array( |
|
|
'external_id' => '456', |
|
|
'username' => 'bobby', |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@localhost', |
|
|
'role' => '', |
|
|
); |
|
|
|
|
|
$expected = array( |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@localhost', |
|
|
); |
|
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties)); |
|
|
|
|
|
$profile = array( |
|
|
'id' => 123, |
|
|
'username' => 'bob', |
|
|
'name' => null, |
|
|
'email' => '', |
|
|
'other_column' => 'myvalue', |
|
|
'role' => Role::APP_ADMIN, |
|
|
); |
|
|
|
|
|
$properties = array( |
|
|
'external_id' => '456', |
|
|
'username' => 'bobby', |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@localhost', |
|
|
'role' => null, |
|
|
); |
|
|
|
|
|
$expected = array( |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@localhost', |
|
|
); |
|
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties)); |
|
|
} |
|
|
|
|
|
public function testFilterPropertiesOverrideExistingValueWhenNecessary() |
|
|
{ |
|
|
$profile = array( |
|
|
'id' => 123, |
|
|
'username' => 'bob', |
|
|
'name' => null, |
|
|
'email' => '', |
|
|
'other_column' => 'myvalue', |
|
|
'role' => Role::APP_USER, |
|
|
); |
|
|
|
|
|
$properties = array( |
|
|
'external_id' => '456', |
|
|
'username' => 'bobby', |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@localhost', |
|
|
'role' => Role::APP_MANAGER, |
|
|
); |
|
|
|
|
|
$expected = array( |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@localhost', |
|
|
'role' => Role::APP_MANAGER, |
|
|
); |
|
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties)); |
|
|
} |
|
|
|
|
|
public function testFilterPropertiesDoNotOverrideSameValue() |
|
|
{ |
|
|
$profile = array( |
|
|
'id' => 123, |
|
|
'username' => 'bob', |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@example.org', |
|
|
'other_column' => 'myvalue', |
|
|
'role' => Role::APP_MANAGER, |
|
|
); |
|
|
|
|
|
$properties = array( |
|
|
'external_id' => '456', |
|
|
'username' => 'bobby', |
|
|
'name' => 'Bobby', |
|
|
'email' => 'admin@localhost', |
|
|
'role' => Role::APP_MANAGER, |
|
|
); |
|
|
|
|
|
$expected = array( |
|
|
'email' => 'admin@localhost', |
|
|
); |
|
|
|
|
|
$this->assertEquals($expected, UserProperty::filterProperties($profile, $properties)); |
|
|
} |
|
|
} |
|
|
|