chg: [navigation] Breadcrumb generation is user aware
- moved the initialisation of the generation to be invoked from the appcontroller's beforefilter, after the user is loaded into the ACL component - Only show user setting edits when the user is editing themselvescli-modification-summary
parent
9a0ddef2af
commit
c186c88d5c
|
@ -110,6 +110,7 @@ class AppController extends Controller
|
|||
}
|
||||
unset($user['password']);
|
||||
$this->ACL->setUser($user);
|
||||
$this->Navigation->genBreadcrumbs($user);
|
||||
$this->request->getSession()->write('authUser', $user);
|
||||
$this->isAdmin = $user['role']['perm_admin'];
|
||||
if (!$this->ParamHandler->isRest()) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
namespace BreadcrumbNavigation;
|
||||
|
||||
require_once(APP . 'Controller' . DS . 'Component' . DS . 'Navigation' . DS . 'base.php');
|
||||
require_once(APP . 'Controller' . DS . 'Component' . DS . 'Navigation' . DS . 'base.php');
|
||||
|
||||
class UsersNavigation extends BaseNavigation
|
||||
{
|
||||
|
@ -24,17 +24,21 @@ class UsersNavigation extends BaseNavigation
|
|||
$bcf = $this->bcf;
|
||||
$request = $this->request;
|
||||
$passedData = $this->request->getParam('pass');
|
||||
$this->bcf->addLink('Users', 'view', 'UserSettings', 'index', function ($config) use ($bcf, $request, $passedData) {
|
||||
if (!empty($passedData[0])) {
|
||||
$user_id = $passedData[0];
|
||||
$linkData = [
|
||||
'label' => __('Account settings', h($user_id)),
|
||||
'url' => sprintf('/users/settings/%s', h($user_id))
|
||||
];
|
||||
return $linkData;
|
||||
}
|
||||
return [];
|
||||
});
|
||||
$currentUser = $this->currentUser;
|
||||
$ownUser = (!empty($passedData[0]) && $passedData[0] === $currentUser['id']);
|
||||
if ($ownUser) {
|
||||
$this->bcf->addLink('Users', 'view', 'UserSettings', 'index', function ($config) use ($bcf, $request, $passedData, $currentUser) {
|
||||
if (!empty($passedData[0])) {
|
||||
$user_id = $passedData[0];
|
||||
$linkData = [
|
||||
'label' => __('Account settings', h($user_id)),
|
||||
'url' => sprintf('/users/settings/%s', h($user_id))
|
||||
];
|
||||
return $linkData;
|
||||
}
|
||||
return [];
|
||||
});
|
||||
}
|
||||
$this->bcf->addLink('Users', 'view', 'UserSettings', 'index', function ($config) use ($bcf, $request, $passedData) {
|
||||
if (!empty($passedData[0])) {
|
||||
$user_id = $passedData[0];
|
||||
|
|
|
@ -5,6 +5,7 @@ class BaseNavigation
|
|||
{
|
||||
protected $bcf;
|
||||
protected $request;
|
||||
public $currentUser;
|
||||
|
||||
public function __construct($bcf, $request)
|
||||
{
|
||||
|
@ -12,8 +13,13 @@ class BaseNavigation
|
|||
$this->request = $request;
|
||||
}
|
||||
|
||||
public function setCurrentUser($currentUser)
|
||||
{
|
||||
$this->currentUser = $currentUser;
|
||||
}
|
||||
|
||||
public function addRoutes() {}
|
||||
public function addParents() {}
|
||||
public function addLinks() {}
|
||||
public function addActions() {}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue