From c4aa5cdb5e90ad4b420e22772797d16980232a2b Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 15 Apr 2026 18:38:55 +0000
Subject: [PATCH] =Updating custom tables to utilize CustomTable.php
---
inc/managers/RoleManager.php | 41 ++++++++++++++++++++++++++++++++++++++---
1 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/inc/managers/RoleManager.php b/inc/managers/RoleManager.php
index 0f235d6..4de3271 100644
--- a/inc/managers/RoleManager.php
+++ b/inc/managers/RoleManager.php
@@ -16,9 +16,7 @@
public function __construct()
{
- $this->roles = array_keys(array_map(function ($instance) {
- return $instance->slug;
- }, Registrar::getRegistered('user')));
+ $this->roles = Registrar::getRegistered('user');
$this->content = array_map(function($content) {
$registrar = Registrar::getInstance($content);
@@ -475,6 +473,15 @@
$user->add_cap(BASE . 'can_own_' . $termID);
$user->add_cap(BASE . 'can_manage_' . $termID);
+ $owners = get_term_meta($termID, BASE.'owners', true);
+ if (empty($owners)) {
+ $owners = [];
+ }
+ $owners[] = $userID;
+ $owners = array_unique($owners);
+ update_term_meta($termID, BASE.'owners', $owners);
+
+
do_action(BASE . 'granted_ownership', $userID, $termID, $taxonomy);
return true;
@@ -500,6 +507,16 @@
return false;
}
+ $owners = get_term_meta($termID, BASE.'owners', true);
+ if (empty($owners)) {
+ $owners = [];
+ }
+ if (in_array($userID, $owners)) {
+ unset($owners[array_search($userID, $owners)]);
+ }
+ $owners = array_unique($owners);
+ update_term_meta($termID, BASE.'owners', $owners);
+
$user->remove_cap(BASE . 'can_own_' . $termID);
do_action(BASE . 'revoked_ownership', $userID, $termID, $taxonomy);
@@ -537,6 +554,14 @@
$user->add_cap(BASE . 'can_manage_' . $termID);
+ $managers = get_term_meta($termID, BASE.'managers', true);
+ if (empty($managers)) {
+ $managers = [];
+ }
+ $managers[] = $userID;
+ $managers = array_unique($managers);
+ update_term_meta($termID, BASE.'managers', $managers);
+
do_action(BASE . 'granted_management', $userID, $termID, $taxonomy);
return true;
@@ -564,6 +589,16 @@
$user->remove_cap(BASE . 'can_manage_' . $termID);
+ $managers = get_term_meta($termID, BASE.'managers', true);
+ if (empty($managers)) {
+ $managers = [];
+ }
+ if (in_array($userID, $managers)) {
+ unset($managers[array_search($userID, $managers)]);
+ }
+ $managers = array_unique($managers);
+ update_term_meta($termID, BASE.'managers', $managers);
+
do_action(BASE . 'revoked_management', $userID, $termID, $taxonomy);
return true;
--
Gitblit v1.10.0