*/
class UserCurrent extends UserAbstract
{
/**
* @var bool
*/
protected $affectationFineSiDispo = false;
/**
* Point d'entrée.
*
* @param boolean $affectationFineSiDispo Indique s'il faut prendre en compte l'affectation
* plus fine (ucbnSousStructure) si elle existe, à la place de l'affectation standard (niveau 2)
* @return self
*/
public function __invoke($affectationFineSiDispo = false)
{
$this->setAffectationFineSiDispo($affectationFineSiDispo);
return $this;
}
/**
* Retourne le code HTML généré par cette aide de vue.
*
* @return string
*/
public function __toString()
{
$id = 'user-current-info';
$userStatusHelper = $this->getView()->plugin('userStatus'); /* @var $userStatusHelper \UnicaenAuth\View\Helper\UserStatus */
$status = $userStatusHelper(false);
$userProfileSelectable = true;
if ($this->getIdentity()) {
if ($userProfileSelectable) {
// DS : cas où aucun rôle n'est sélectionné, on affiche le rôle "user"
$role = $this->getUserContext()->getSelectedIdentityRole() ?: $this->getUserContext()->getIdentityRole('user');
$status .= sprintf(", %s", !method_exists($role, '__toString') ? $role->getRoleId() : $role);
}
$userProfileHelper = $this->getView()->plugin('userProfile'); /* @var $userProfileHelper \UnicaenAuth\View\Helper\UserProfile */
$userProfileHelper->setUserProfileSelectable($userProfileSelectable);
$userInfoHelper = $this->getView()->plugin('userInfo'); /* @var $userInfoHelper \UnicaenAuth\View\Helper\UserInfo */
$content = $userProfileHelper . $userInfoHelper($this->getAffectationFineSiDispo());
}
else {
$content = _("Aucun");
if ($this->getTranslator()) {
$content = $this->getTranslator()->translate($content, $this->getTranslatorTextDomain());
}
}
$content = htmlspecialchars(preg_replace('/\r\n|\n|\r/', '', $content));
$title = _("Utilisateur connecté à l'application");
if ($this->getTranslator()) {
$title = $this->getTranslator()->translate($title, $this->getTranslatorTextDomain());
}
$out = <<$status
EOS;
$out .= PHP_EOL;
$js = <<getView()->plugin('inlineScript')->offsetSetScript(1000, $js);
return $out;
}
/**
* Indique si l'affichage de l'affectation fine éventuelle est activé ou non.
*
* @return bool
*/
public function getAffectationFineSiDispo()
{
return $this->affectationFineSiDispo;
}
/**
* Active ou non l'affichage de l'affectation fine éventuelle.
*
* @param bool $affectationFineSiDispo
* @return self
*/
public function setAffectationFineSiDispo($affectationFineSiDispo = true)
{
$this->affectationFineSiDispo = $affectationFineSiDispo;
return $this;
}
}