From 48721c85ebcfa973ee81719d2467ca80e4253dc9 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 01 May 2026 17:30:03 +0000
Subject: [PATCH] =Edmonton Ink hard test begins! Real testing of the managers and reset routes will commence. So far, just ensuring our classes are all loaded correctly: Site() and its sub-classes Membership, Login, etc. Care should be taken to load conditionally on 'init', as we finish defining most settings by 'plugins_loaded' at priority 5
---
inc/helpers/dashboard.php | 114 ++++++++++-----------------------------------------------
1 files changed, 20 insertions(+), 94 deletions(-)
diff --git a/inc/helpers/dashboard.php b/inc/helpers/dashboard.php
index e9a32b4..bd1b1ac 100644
--- a/inc/helpers/dashboard.php
+++ b/inc/helpers/dashboard.php
@@ -1,5 +1,7 @@
<?php
+use JVBase\registrar\Registrar;
+
if (!defined('ABSPATH')) {
exit;
}
@@ -60,91 +62,12 @@
array_map(function ($role) {
return BASE.$role;
},
- jvbRolesWithDashboard())
+ Registrar::getFeatured('has_dashboard', 'user'))
)
)>0;
}
-/**
- * The basis for the dashboard navigation
- * @return array
- */
-function jvbGetUserDashboardPages():array
-{
- if (!isOurPeople() && !current_user_can('manage_options')) {
- return [];
- }
- $user = wp_get_current_user();
- $pages = get_transient('jvb_'.$user->ID.'_dashboard_pages');
- $pages = false;
- if (!$pages) {
- $pages = ['dash'];
- $roles = array_intersect(
- jvbRolesWithDashboard(),
- array_map(function ($role) {
- return jvbNoBase($role);
- },
- $user->roles)
- );
- $content = [];
-
- foreach ($roles as $role) {
- $content = array_unique(array_merge(jvbRolePages($role), $content));
- }
- error_log('Content: '.print_r($content, true));
- foreach ($content as $c) {
-
- $permission = JVB_CONTENT[$c]['plural']??$c.'s';
- if (current_user_can('edit_'.$permission)) {
- $pages[] = $c;
- }
- }
-
-
- if (jvbCheck('can_invite', JVB_MEMBERSHIP) && jvbUserIsVerified()) {
- $pages[] = 'invites';
- }
- if (jvbCheck('term_approval', JVB_MEMBERSHIP) && jvbUserIsVerified()) {
- $pages[] = 'approvals';
- }
- if (jvbSiteHasTermContent()) {
- $terms = array_filter(JVB_TAXONOMY, function ($tax) {
- return jvbCheck('is_content', $tax);
- });
- foreach ($terms as $term => $config) {
- if (current_user_can('manage_'.$term)) {
- $pages[] = $config['plural'];
- }
- }
- }
-
- if (jvbSiteHasIntegrations()) {
- //TODO: Check that user has integrations enabled
- $pages[] = 'integrations';
- }
- if (jvbSiteHasForum() &&
- (empty(JVB_MEMBERSHIP['member_only']??[]) || array_intersect(JVB_MEMBERSHIP['member_only'], $roles) > 0)) {
- $pages[] = 'news';
- }
-
- if (jvbCheck('member_content', JVB_MEMBERSHIP) && jvbUserCanCreate()) {
- $pages[] = 'metrics';
- }
-
- if (jvbCheck('favourites', JVB_SITE)) {
- $pages[] = 'favourites';
- }
-
- if (jvbSiteHasSupport()) {
- $pages[] = 'support';
- }
- $pages = apply_filters('jvbUserDashboardPages', $pages, $user->roles);
- set_transient('jvb_'.$user->ID.'_dashboard_pages', $pages, WEEK_IN_SECONDS);
- }
-
- return $pages;
-}
/**
@@ -155,7 +78,7 @@
$types = get_post_meta($postID, BASE.'content_types', true);
if ($types === '') {
$types = [];
- $link = (int) get_post_meta($postID, BASE.'link', true);
+ $link = (int) get_post_meta($postID, BASE.'profile_link', true);
if ($link === '' || !is_numeric($link)) {
return $types;
}
@@ -167,25 +90,28 @@
}
$role = jvbUserRole((int) $link);
- $config = JVB_USER[$role];
- foreach ($config['can_create'] as $type) {
- if (is_array($type)) {
- $types = array_unique(array_merge($types, array_values($type)[0]));
- } else {
- $types[] = $type;
- }
- }
+ $registrar = Registrar::getInstance($role);
+ if ($registrar && !empty($registrar->getCreatable())){
+ foreach ($registrar->getCreatable() as $type) {
+ if (is_array($type)) {
+ $types = array_unique(array_merge($types, array_values($type)[0]));
+ } else {
+ $types[] = $type;
+ }
+ }
+ }
+
$temp = [];
foreach ($types as $t) {
- $permission = JVB_CONTENT[$t]['plural']??$t.'s';
- if (user_can($link, 'edit_'.$permission)){
+ $permission = JVB()->roles()->getPermission('edit',$t);
+ if (user_can($link, $permission)){
$temp[] = $t;
}
}
- global $jvb_feed;
- $types = array_filter($temp, function ($type) use ($jvb_feed) {
- return array_key_exists($type, $jvb_feed);
+ $types = Registrar::getFeatured('show_feed');
+ $types = array_filter($temp, function ($type) use ($types) {
+ return in_array($type, $types);
});
update_post_meta($postID, BASE.'content_types', $types);
--
Gitblit v1.10.0