chg: [navigation:socialProvider] Improved UI for SSO profile management
parent
0f27435251
commit
ddfc83af6f
|
@ -72,6 +72,7 @@ class UsersNavigation extends BaseNavigation
|
|||
return [];
|
||||
});
|
||||
if (
|
||||
!empty($this->loggedUser['social_profile']) &&
|
||||
!empty(Configure::read('keycloak.enabled')) &&
|
||||
!empty(Configure::read('keycloak.provider.baseUrl')) &&
|
||||
!empty(Configure::read('keycloak.provider.realm')) &&
|
||||
|
|
|
@ -13,6 +13,11 @@ class SocialProviderHelper extends Helper
|
|||
'keycloak' => '/img/keycloak_logo.png',
|
||||
];
|
||||
|
||||
public function hasSocialProfile($identity): bool
|
||||
{
|
||||
return !empty($identity['social_profile']);
|
||||
}
|
||||
|
||||
public function getIcon($identity)
|
||||
{
|
||||
if (!empty($identity['social_profile'])) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Cake\Core\Configure;
|
||||
use Cake\Routing\Router;
|
||||
?>
|
||||
<div class="btn-group">
|
||||
|
@ -29,6 +30,32 @@ use Cake\Routing\Router;
|
|||
<i class="me-1 <?= $this->FontAwesome->getClass('user-cog') ?>"></i>
|
||||
<?= __('Account Settings') ?>
|
||||
</a>
|
||||
<?php
|
||||
if (
|
||||
!empty($this->SocialProvider->hasSocialProfile($this->request->getAttribute('identity'))) &&
|
||||
!empty(Configure::read('keycloak.enabled')) &&
|
||||
!empty(Configure::read('keycloak.provider.baseUrl')) &&
|
||||
!empty(Configure::read('keycloak.provider.realm')) &&
|
||||
!empty($this->request->getAttribute('identity')['id'])
|
||||
):
|
||||
?>
|
||||
<a
|
||||
class="dropdown-item"
|
||||
title="<?= __('Manage SSO account') ?>"
|
||||
href="<?= sprintf(
|
||||
'%s/realms/%s/account',
|
||||
Configure::read('keycloak.provider.baseUrl'),
|
||||
Configure::read('keycloak.provider.realm')
|
||||
); ?>"
|
||||
>
|
||||
<?php if (!empty($this->SocialProvider->getIcon($this->request->getAttribute('identity')))): ?>
|
||||
<?= $this->SocialProvider->getIcon($this->request->getAttribute('identity')) ?>
|
||||
<?php else: ?>
|
||||
<i class="me-1 <?= $this->FontAwesome->getClass('key') ?>"></i>
|
||||
<?php endif; ?>
|
||||
<?= __('SSO Account') ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item dropdown-item-outline-danger" href="<?= Router::url(['controller' => 'users', 'action' => 'logout', 'plugin' => null]) ?>">
|
||||
<i class="me-1 <?= $this->FontAwesome->getClass('sign-out-alt') ?>"></i>
|
||||
|
|
|
@ -513,6 +513,10 @@ ul.sidebar-elements > li.category > span.category-divider > hr {
|
|||
padding: 2px;
|
||||
border-radius: 0 0 0 5px;
|
||||
}
|
||||
.header-breadcrumb-children .dropdown-menu .dropdown-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.header-breadcrumb-children .dropdown-menu .dropdown-item > i {
|
||||
min-width: 25px;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue