Fix twig functions (master overrides permission)

This commit is contained in:
2022-02-10 18:14:54 +00:00
parent 575aa68bca
commit c6c69b773b
2 changed files with 11 additions and 5 deletions

View File

@@ -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;

View File

@@ -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')}}