getPermissionsForGroup($groupId); return count($groupPerms) && array_key_exists($permissionId, $groupPerms); } /** * Gets all permissions for a group in a way that can be * easily used to check against: * * [ * id => name, * id => name * ] * * @param int $groupId * * @return array */ public function getPermissionsForGroup(int $groupId): array { if (!($found = cache("group{$groupId}_permissions"))) { $groupPermissions = $this->db ->table('auth_groups_permissions') ->select('id, auth_permissions.name') ->join( 'auth_permissions', 'auth_permissions.id = permission_id', 'inner' ) ->where('group_id', $groupId) ->get() ->getResultObject(); $found = []; foreach ($groupPermissions as $row) { $found[$row->id] = strtolower($row->name); } cache()->save("group{$groupId}_permissions", $found, 300); } return $found; } }