mirror of
https://github.com/YunoHost-Apps/kanboard_ynh.git
synced 2024-09-03 19:36:17 +02:00
164 lines
2.8 KiB
PHP
164 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace Kanboard\User;
|
|
|
|
use Kanboard\Core\User\UserProviderInterface;
|
|
use Kanboard\Core\Security\Role;
|
|
|
|
/**
|
|
* Reverse Proxy User Provider
|
|
*
|
|
* @package user
|
|
* @author Frederic Guillot
|
|
*/
|
|
class ReverseProxyUserProvider implements UserProviderInterface
|
|
{
|
|
/**
|
|
* Username
|
|
*
|
|
* @access protected
|
|
* @var string
|
|
*/
|
|
protected $username = '';
|
|
|
|
/**
|
|
* User profile if the user already exists
|
|
*
|
|
* @access protected
|
|
* @var array
|
|
*/
|
|
private $userProfile = array();
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @access public
|
|
* @param string $username
|
|
*/
|
|
public function __construct($username, array $userProfile = array())
|
|
{
|
|
$this->username = $username;
|
|
$this->userProfile = $userProfile;
|
|
}
|
|
|
|
/**
|
|
* Return true to allow automatic user creation
|
|
*
|
|
* @access public
|
|
* @return boolean
|
|
*/
|
|
public function isUserCreationAllowed()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Get internal id
|
|
*
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
public function getInternalId()
|
|
{
|
|
return '';
|
|
}
|
|
|
|
/**
|
|
* Get external id column name
|
|
*
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
public function getExternalIdColumn()
|
|
{
|
|
return 'username';
|
|
}
|
|
|
|
/**
|
|
* Get external id
|
|
*
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
public function getExternalId()
|
|
{
|
|
return $this->username;
|
|
}
|
|
|
|
/**
|
|
* Get user role
|
|
*
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
public function getRole()
|
|
{
|
|
if (REVERSE_PROXY_DEFAULT_ADMIN === $this->username) {
|
|
return Role::APP_ADMIN;
|
|
}
|
|
|
|
if (isset($this->userProfile['role'])) {
|
|
return $this->userProfile['role'];
|
|
}
|
|
|
|
return Role::APP_USER;
|
|
}
|
|
|
|
/**
|
|
* Get username
|
|
*
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
public function getUsername()
|
|
{
|
|
return $this->username;
|
|
}
|
|
|
|
/**
|
|
* Get full name
|
|
*
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
public function getName()
|
|
{
|
|
return '';
|
|
}
|
|
|
|
/**
|
|
* Get user email
|
|
*
|
|
* @access public
|
|
* @return string
|
|
*/
|
|
public function getEmail()
|
|
{
|
|
return REVERSE_PROXY_DEFAULT_DOMAIN !== '' ? $this->username.'@'.REVERSE_PROXY_DEFAULT_DOMAIN : '';
|
|
}
|
|
|
|
/**
|
|
* Get external group ids
|
|
*
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public function getExternalGroupIds()
|
|
{
|
|
return array();
|
|
}
|
|
|
|
/**
|
|
* Get extra user attributes
|
|
*
|
|
* @access public
|
|
* @return array
|
|
*/
|
|
public function getExtraAttributes()
|
|
{
|
|
return array(
|
|
'is_ldap_user' => 1,
|
|
'disable_login_form' => 1,
|
|
);
|
|
}
|
|
}
|