diff --git a/src/Twig/OrganisationsExtension.php b/src/Twig/OrganisationsExtension.php index 2f78b2c..b2ac3ee 100644 --- a/src/Twig/OrganisationsExtension.php +++ b/src/Twig/OrganisationsExtension.php @@ -9,6 +9,7 @@ namespace UserFrosting\Sprinkle\Organisations\Twig; +use Illuminate\Database\Capsule\Manager as Capsule; use Psr\Container\ContainerInterface; use Twig\Extension\AbstractExtension; use Twig\Extension\GlobalsInterface; @@ -51,16 +52,21 @@ class OrganisationsExtension extends AbstractExtension implements GlobalsInterfa return [ // Add Twig function for checking permissions during dynamic menu rendering new TwigFunction('isOrganisationMember', function ($organisation) { - $authorizer = $this->services->authorizer; $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) { - $authorizer = $this->services->authorizer; $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) { $currentUser = $this->services->currentUser; diff --git a/templates/pages/organisation.html.twig b/templates/pages/organisation.html.twig index 3e17f39..4d9f739 100644 --- a/templates/pages/organisation.html.twig +++ b/templates/pages/organisation.html.twig @@ -31,7 +31,7 @@ {% endif %} - {% if checkAccess('leave_organisation') and (isOrganisationMember(organisation)) %} + {% if checkAccess('leave_organisation') and isOrganisationMember(organisation) %}