Fix twig functions (master overrides permission)
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
namespace UserFrosting\Sprinkle\Organisations\Twig;
|
namespace UserFrosting\Sprinkle\Organisations\Twig;
|
||||||
|
|
||||||
|
use Illuminate\Database\Capsule\Manager as Capsule;
|
||||||
use Psr\Container\ContainerInterface;
|
use Psr\Container\ContainerInterface;
|
||||||
use Twig\Extension\AbstractExtension;
|
use Twig\Extension\AbstractExtension;
|
||||||
use Twig\Extension\GlobalsInterface;
|
use Twig\Extension\GlobalsInterface;
|
||||||
@@ -51,16 +52,21 @@ class OrganisationsExtension extends AbstractExtension implements GlobalsInterfa
|
|||||||
return [
|
return [
|
||||||
// Add Twig function for checking permissions during dynamic menu rendering
|
// Add Twig function for checking permissions during dynamic menu rendering
|
||||||
new TwigFunction('isOrganisationMember', function ($organisation) {
|
new TwigFunction('isOrganisationMember', function ($organisation) {
|
||||||
$authorizer = $this->services->authorizer;
|
|
||||||
$currentUser = $this->services->currentUser;
|
$currentUser = $this->services->currentUser;
|
||||||
|
|
||||||
return $authorizer->runCallback($currentUser, 'is_organisation_member', $currentUser->id, $organisation->id);
|
return Capsule::table('organisation_members')
|
||||||
|
->where('user_id', $currentUser->id)
|
||||||
|
->where('organisation_id', $organisation->id)
|
||||||
|
->count() > 0;
|
||||||
}),
|
}),
|
||||||
new TwigFunction('isOrganisationAdmin', function ($organisation) {
|
new TwigFunction('isOrganisationAdmin', function ($organisation) {
|
||||||
$authorizer = $this->services->authorizer;
|
|
||||||
$currentUser = $this->services->currentUser;
|
$currentUser = $this->services->currentUser;
|
||||||
|
|
||||||
return $authorizer->runCallback($currentUser, 'is_organisation_admin', $currentUser->id, $organisation->id);
|
return Capsule::table('organisation_members')
|
||||||
|
->where('user_id', $currentUser->id)
|
||||||
|
->where('organisation_id', $organisation->id)
|
||||||
|
->where('flag_admin', true)
|
||||||
|
->count() > 0;
|
||||||
}),
|
}),
|
||||||
new TwigFunction('hasRole', function ($roleSlug) {
|
new TwigFunction('hasRole', function ($roleSlug) {
|
||||||
$currentUser = $this->services->currentUser;
|
$currentUser = $this->services->currentUser;
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if checkAccess('leave_organisation') and (isOrganisationMember(organisation)) %}
|
{% if checkAccess('leave_organisation') and isOrganisationMember(organisation) %}
|
||||||
<li>
|
<li>
|
||||||
<a href="#" class="js-organisation-leave" data-slug="{{organisation.slug}}">
|
<a href="#" class="js-organisation-leave" data-slug="{{organisation.slug}}">
|
||||||
<i class="fas fa-door-open fa-fw"></i> {{translate('ORGANISATION.LEAVE')}}
|
<i class="fas fa-door-open fa-fw"></i> {{translate('ORGANISATION.LEAVE')}}
|
||||||
|
|||||||
Reference in New Issue
Block a user