From 235ce5716edc2f7cbe80fdccf26eac7269587839 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 08 Jun 2026 04:38:18 +0000
Subject: [PATCH] =FavouritesManager.php and FavouritesRoutes.php fixes. Moving all logic to FavouritesManager.php. Still some left to do
---
base/Membership.php | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/base/Membership.php b/base/Membership.php
index 9032758..dd57219 100644
--- a/base/Membership.php
+++ b/base/Membership.php
@@ -1,5 +1,7 @@
<?php
namespace JVBase\base;
+use JVBase\registrar\Registrar;
+
/**
* JVB_MEMBERSHIP defines the structure of the directory
* Options include:
@@ -38,6 +40,7 @@
{
protected bool $member_content = true;
protected bool $invitable = false;
+ protected bool $member_verified = false;
protected array $can_invite = [];
protected bool $notifications = true;
protected bool $member_expires = false;
@@ -89,6 +92,35 @@
return false;
}
+ public function setInvitable(array $invitable):void
+ {
+ $users = Registrar::getRegistered('user');
+
+ $invitable = array_filter($invitable, function($role) use ($users) {
+ if (!in_array($role, $users)) {
+ error_log('[Membership]::set Invitable role '.$role.' does not exist.');
+ return false;
+ }
+ return true;
+ }, ARRAY_FILTER_USE_KEY);
+ $allowed = [];
+ foreach ($invitable as $inviter => $canInvites) {
+ $canInvites = array_filter($canInvites, function($role) use ($users){
+ if (!in_array($role, $users)) {
+ error_log('[Membership]::set Invitable role '.$role.' does not exist.');
+ return false;
+ }
+ return true;
+ });
+ if (!empty($canInvites)) {
+ $allowed[$inviter] = $canInvites;
+ }
+ }
+ if (!empty($allowed)) {
+ $this->can_invite = $allowed;
+ }
+ }
+
public function getInviters():array
{
return $this->can_invite;
@@ -102,6 +134,13 @@
return array_key_exists($role, $this->can_invite) ? $this->can_invite[$role] : [];
}
+ public function setApprovers(array $roles):void
+ {
+ $allowed = Registrar::getRegistered('users');
+ $this->can_approve = array_filter($roles, function($role) use ($allowed){
+ return in_array($role, $allowed);
+ });
+ }
public function getApprovers():array
{
return $this->can_approve;
@@ -113,6 +152,13 @@
}
+ public function setCanSeeForum(array $roles):void
+ {
+ $allowed = Registrar::getRegistered('users');
+ $this->member_only = array_filter($roles, function($role) use ($allowed){
+ return in_array($role, $allowed);
+ });
+ }
public function canSeeForum(string $role):bool
{
return $this->forum && (empty($this->member_only) || in_array($role, $this->member_only));
--
Gitblit v1.10.0