|
|
<?php |
|
|
|
|
|
namespace Kanboard\Core\User; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserProperty |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function getProperties(UserProviderInterface $user) |
|
|
{ |
|
|
$properties = array( |
|
|
'username' => $user->getUsername(), |
|
|
'name' => $user->getName(), |
|
|
'email' => $user->getEmail(), |
|
|
'role' => $user->getRole(), |
|
|
$user->getExternalIdColumn() => $user->getExternalId(), |
|
|
); |
|
|
|
|
|
$properties = array_merge($properties, $user->getExtraAttributes()); |
|
|
|
|
|
return array_filter($properties, array(__NAMESPACE__.'\UserProperty', 'isNotEmptyValue')); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function filterProperties(array $profile, array $properties) |
|
|
{ |
|
|
$excludedProperties = explode_csv_field(EXTERNAL_AUTH_EXCLUDE_FIELDS); |
|
|
$values = array(); |
|
|
|
|
|
foreach ($properties as $property => $value) { |
|
|
if (self::isNotEmptyValue($value) && |
|
|
! in_array($property, $excludedProperties) && |
|
|
array_key_exists($property, $profile) && |
|
|
$value !== $profile[$property]) { |
|
|
$values[$property] = $value; |
|
|
} |
|
|
} |
|
|
|
|
|
return $values; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function isNotEmptyValue($value) |
|
|
{ |
|
|
return $value !== null && $value !== ''; |
|
|
} |
|
|
} |
|
|
|