Jake Vanderwerf
2026-04-15 c4aa5cdb5e90ad4b420e22772797d16980232a2b
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;