[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f7nG3fVPmAm2L1x4ShOZvxertjLxjSyb0YAO-Smzc-CY":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":39,"analysis":127,"fingerprints":794},"bbp-private-groups","Private groups","3.9.7","Robin W","https:\u002F\u002Fprofiles.wordpress.org\u002Frobin-w\u002F","\u003Cp>An add-on to the bbPress forum plugin – creates private forum groups\u003C\u002Fp>\n\u003Cp>This Plugin creates unlimited private forum groups.\u003C\u002Fp>\n\u003Cp>Forums are then allocated to one or more groups, and users allocated to one or more groups.\u003C\u002Fp>\n\u003Cp>What this achieves\u003Cbr \u002F>\nunlimited private groups\u003Cbr \u002F>\nEach user is set to a group or groups, and each forum can have any or all the groups associated with it\u003Cbr \u002F>\nAny number of public forums combined with any number of group forums.  The group forums can be individually set to public or private.\u003Cbr \u002F>\nForum title and description (but not topics or replies) can be set to be visible to non-group users, allowing people to see that a forum exists but not access it\u003Cbr \u002F>\nSeparate pages can be set to allow redirection of non group users for sign-up or information\u003Cbr \u002F>\nTopic Permissions\u003Cbr \u002F>\nTopic Permissions is designed for sites where users need to have different permissions to different forums.\u003Cbr \u002F>\nFor instance the ability for users to contribute to one forum whilst only being able to view another, or only start topics in one forum, or only reply to topics in another.\u003C\u002Fp>\n\u003Cp>Example\u003C\u002Fp>\n\u003Cp>So if\u003Cbr \u002F>\nUser a belongs to group 1\u003Cbr \u002F>\nUser b belongs to group 2\u003Cbr \u002F>\nUser c belongs to group 3\u003C\u002Fp>\n\u003Cp>and\u003Cbr \u002F>\nForum x is set to allow group 2\u003Cbr \u002F>\nForum y is set to allow group 2 and group 3\u003Cbr \u002F>\nForum z is set to allow group 1 and group 3\u003C\u002Fp>\n\u003Cp>Then\u003Cbr \u002F>\nUser a can access only forum z\u003Cbr \u002F>\nUser b can access forum x and forum y\u003Cbr \u002F>\nUser c can access forum y and forum z\u003C\u002Fp>\n\u003Cp>Restrictions\u002Fwarnings\u003C\u002Fp>\n\u003Cp>The widgets (bbpress) forums list, (bbpress) recent replies, and (bbpress) recent topics SHOULD NOT BE USED, as they will show topics headings and author names for all forums.  Replacement widgets called (private groups) forums list, (private groups) recent replies, and (private groups) recent topics are available instead\u003C\u002Fp>\n\u003Cp>Works with bbpress 2.5.3 or higher\u003C\u002Fp>\n","For bbPress - Creates private forum groups",1000,152657,98,49,"2025-12-05T16:18:00.000Z","6.9.4","",[19,20,21,22,23],"bbp","bbpress","forum","groups","private","http:\u002F\u002Fwww.rewweb.co.uk\u002Fbbp-private-groups\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbbp-private-groups.3.9.7.zip",100,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"robin-w",8,8210,95,312,76,"2026-04-06T09:29:34.844Z",[40,61,81,98,113],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":13,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":17,"tags":54,"homepage":17,"download_link":59,"security_score":60,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"bbpress-private-replies","bbPress – Private Replies","1.3.3","Pippin Williamson","https:\u002F\u002Fprofiles.wordpress.org\u002Fmordauk\u002F","\u003Cp>This add-on plugin for bbPress will allow your forum posters to mark their replies as private, meaning that only the original poster and forum moderators can see the content of the reply. This is a great plugin to install if you use bbPress as a support forum where users may need to share confidential information, such as site URLs, passwords, etc.\u003C\u002Fp>\n\u003Cp>If you have suggestions or bugfixes for the plugin, please report them on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpippinsplugins\u002FbbPress-Private-replies\" rel=\"nofollow ugc\">Github\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Languages\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Private Replies for bbPress as been translated into the following languages:\u003C\u002Fp>\n\u003Col>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>French\u003C\u002Fli>\n\u003Cli>German\u003C\u002Fli>\n\u003Cli>Dutch\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Would you like to help translate the plugin into more languages? \u003Ca href=\"http:\u002F\u002Fpippinsplugins.com\u002Fcontact\" rel=\"nofollow ugc\">Contact Pippin\u003C\u002Fa>.\u003C\u002Fp>\n","A simple plugin to allow your bbPress users to mark their replies as private.",300,30033,12,"2016-10-14T15:47:00.000Z","4.7.32","3.2",[20,55,56,57,58],"forums","mordauk","private-replies","replies","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbbpress-private-replies.zip",85,{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":26,"downloaded":69,"rating":70,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":17,"tags":75,"homepage":79,"download_link":80,"security_score":60,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"bbp-messages","bbPress Messages","2.0.9.1","DevriX","https:\u002F\u002Fprofiles.wordpress.org\u002Fdevrix\u002F","\u003Cp>bbPress Messages – Simple yet powerful private messaging system tailored for bbPress.\u003C\u002Fp>\n\u003Ch3>What’s New in 2.0?\u003C\u002Fh3>\n\u003Ch4>Fully Optimized\u003C\u002Fh4>\n\u003Cp>Now bbPress Messages loads faster due to optimization and messages caching.\u003C\u002Fp>\n\u003Ch4>Background Schedules\u003C\u002Fh4>\n\u003Cp>For better experience and load time, now the tasks are processed in the background. Tasks that would take some time to finish such as email notifications, after send events, cleanup schedules and others.\u003C\u002Fp>\n\u003Ch4>Translation ready\u003C\u002Fh4>\n\u003Cp>Now you can use the languages files to \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FI18n_for_WordPress_Developers\" rel=\"nofollow ugc\">translate\u003C\u002Fa> bbPress Messages to your language. You can also contribute your translations and \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fbbp-messages\" rel=\"nofollow ugc\">help translate this plugin\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Shortcodes\u003C\u002Fh4>\n\u003Cp>We’ve added couple shortcodes and rewrote older shortcodes, you can find out about shortcodes in the shortcodes tab in the settings page.\u003C\u002Fp>\n\u003Ch4>Widgets\u003C\u002Fh4>\n\u003Cp>We’ve redesigned the widgets for 2.0! Navigate to your dashboard and search for bbPM widgets now.\u003C\u002Fp>\n\u003Cp>Other than that, bbPress Messages 2.0 is easy to extend, supports multisite installations, and we will be working on some free addons to extend its features and improve more. Please consult the project Github page \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Felhardoum\u002Fbbp-messages\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Felhardoum\u002Fbbp-messages\u003C\u002Fa> to report a bug, contribute to the project or make suggestions.\u003C\u002Fp>\n\u003Cp>If this is the first time you update, you should be migrating your older messages from the legacy database table to the new one. This could be done using the import tab in settings.\u003C\u002Fp>\n\u003Cp>We will cover some free and premium addons to power group chats and other features, sign up for the newsletter to get notified.\u003C\u002Fp>\n\u003Cp>\u003Cem>More documentation coming soon..\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>For more WordPress\u002FbbPress\u002FBuddyPress free and premium plugins, sign up for the newsletter: http:\u002F\u002Fgo.samelh.com\u002Fnewsletter\u003C\u002Fp>\n","bbPress Messages - Simple yet powerful private messaging system tailored for bbPress.",23686,90,11,"2017-11-15T18:12:00.000Z","4.8.28","3.0.1",[20,76,55,77,78],"buddypress","messages","private-messages","https:\u002F\u002Fgithub.com\u002Felhardoum\u002Fbbp-messages","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbbp-messages.2.0.9.1.zip",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":27,"num_ratings":27,"last_updated":91,"tested_up_to":16,"requires_at_least":92,"requires_php":17,"tags":93,"homepage":96,"download_link":97,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"groups-bbpress","Groups bbPress","1.5.0","itthinx","https:\u002F\u002Fprofiles.wordpress.org\u002Fitthinx\u002F","\u003Cp>\u003Cem>Groups bbPress\u003C\u002Fem> integrates \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgroups\u002F\" rel=\"ugc\">Groups\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbbpress\u002F\" rel=\"ugc\">bbPress\u003C\u002Fa> so that all topics and replies related to protected forums are also protected automatically.\u003C\u002Fp>\n\u003Cp>This additional plugin is necessary if you want to run member-only forums with bbPress and Groups. As the topics and replies in bbPress are custom post types, it is not sufficient to protect a forum using Groups.\u003Cbr \u002F>\nThe topics and replies in a protected forum would still be accessible unless they are also protected.\u003Cbr \u002F>\nThis plugin extends the access restrictions on a forum to its related topics.\u003Cbr \u002F>\nThis also applies to replies posted on topics: replies posted on a topic will be accessible to users who can access the topic and the forum only.\u003Cbr \u002F>\nIf additional access restrictions are set on a topic, its replies are protected by both the forum’s and the topic’s access restrictions.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.itthinx.com\u002Fshop\u002Fgroups-forums\u002F\" rel=\"nofollow ugc\">Groups Forums\u003C\u002Fa> is an alternative to using \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbbpress\u002F\" rel=\"ugc\">bbPress\u003C\u002Fa> as your forum system with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgroups\u002F\" rel=\"ugc\">Groups\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Feedback\u003C\u002Fh3>\n\u003Cp>Feedback is welcome!\u003C\u002Fp>\n\u003Cp>If you need help, have problems, want to leave feedback or want to provide constructive criticism, please do so here at the \u003Ca href=\"http:\u002F\u002Fwww.itthinx.com\u002Fplugins\u002Fgroups-bbpress\u002F\" rel=\"nofollow ugc\">Groups bbPress\u003C\u002Fa> plugin page.\u003C\u002Fp>\n\u003Cp>Please try to solve problems there before you rate this plugin or say it doesn’t work. There goes a \u003Cem>lot\u003C\u002Fem> of work into providing you with quality plugins!\u003C\u002Fp>\n\u003Cp>Please help with your feedback and we’re also grateful if you help spread the word about this plugin.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Thanks!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Twitter\u003C\u002Fh4>\n\u003Cp>Follow \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fitthinx\" rel=\"nofollow ugc\">@itthinx\u003C\u002Fa> on Twitter for updates on this and other plugins.\u003C\u002Fp>\n","Protect bbPress Forums, Topics and Replies using Groups.",40,3727,"2025-12-20T18:16:00.000Z","5.0",[94,20,55,22,95],"access-control","memberships","https:\u002F\u002Fwww.itthinx.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgroups-bbpress.1.5.0.zip",{"slug":99,"name":100,"version":101,"author":7,"author_profile":8,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":106,"num_ratings":107,"last_updated":108,"tested_up_to":109,"requires_at_least":74,"requires_php":17,"tags":110,"homepage":111,"download_link":112,"security_score":60,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"bbp-private-forum-visibility","Private forums visibility","2.1","\u003Cp>This Plugin IS NO LONGER MAINTAINED\u003C\u002Fp>\n\u003Cp>use https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbbp-private-groups\u002F\u003C\u002Fp>\n\u003Cp>This plugin displays private forums titles to non logged-in users in main index.\u003C\u002Fp>\n\u003Cp>This allows non logged-in users to see that forums exist, but have no acces to these.\u003C\u002Fp>\n\u003Cp>If selected by a non logged-in user, the use is sent to a page (determined in settings), allowing the admin to determine what information is given, eg login, registration, text etc.\u003C\u002Fp>\n\u003Cp>It also has the options to\u003C\u002Fp>\n\u003Cp>display forum content (descriptions) for sub forums\u003C\u002Fp>\n\u003Cp>remove the prefix ‘private’ from all private forums\u003C\u002Fp>\n\u003Cp>Works with bbpress 2.5.4\u003C\u002Fp>\n","For bbPress - displays private forums titles and optional descriptions to non-logged in users, and optionally hides the prefix 'private'",10,4264,30,2,"2022-01-23T18:19:00.000Z","5.0.25",[19,20,21,23],"http:\u002F\u002Fwww.rewweb.co.uk\u002FPrivate%20Forums%20Visibility\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbbp-private-forum-visibility.2.1.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":104,"downloaded":121,"rating":27,"num_ratings":27,"last_updated":122,"tested_up_to":17,"requires_at_least":17,"requires_php":17,"tags":123,"homepage":125,"download_link":126,"security_score":60,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"group-forum-subscription-for-buddypress","Group Forum Subscripton for BuddyPress","1.4.1","Boone Gorges","https:\u002F\u002Fprofiles.wordpress.org\u002Fboonebgorges\u002F","\u003Cp>** Use of this plugin is not recommended in versions of BuddyPress 1.2 and higher. Please consider using BuddyPress Group Activity Notifications instead: https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fbuddypress-group-activity-stream-subscription\u002F. A conversion script for converting subscription data from this plugin to that one is coming soon **\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\nUsers can subscribe to individual discussion topics from within BuddyPress;\u003Cbr \u002F>\nUsers can subscribe to discussions on a group-by-group basis;\u003Cbr \u002F>\nUsers are automatically unsubscribed from a group’s discussions when they leave the group;\u003Cbr \u002F>\nAdministrators can subscribe all users to the appropriate forums with a single click (potentially handy for first-time setup);\u003Cbr \u002F>\nAdministrators can toggle whether email notification is turned on by default;\u003Cbr \u002F>\nAdministrators can toggle whether posters receive notification of their own posts.\u003C\u002Fp>\n\u003Cp>Developed for the CUNY Academic Commons. Visit http:\u002F\u002Fcommons.gc.cuny.edu to learn more about this neat project.\u003C\u002Fp>\n\u003Ch3>Running BP \u003C 1.1?\u003C\u002Fh3>\n\u003Cp>If you plan on having your members use the bbPress interface in addition to\u002Finstead of the BuddyPress forums interface (something you can only do if you are running bbPress in a separate installation, which means you’re almost certainly running BP \u003C 1.1) do the following steps as well:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Upload \u003Ccode>bb-group-forum-subscription\u003C\u002Fcode> to \u003Ccode>[bbpress-directory]\u002Fmy-plugins\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Activate the plugin on the bbPress admin page\u003Cbr \u002F>\nIn \u003Ccode>[bbpress-template-directory]\u002Ftopic.php\u003C\u002Fcode>, replace the code\u003Cbr \u002F>\nuser_favorites_link();\u003Cbr \u002F>\nwith\u003Cbr \u002F>\nuser_favorites_link( array(‘mid’ => __(‘Subscribe to this discussion’)),array(‘mid’ => __(‘Unsubscribe from this discussion’)));\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fh3>\n\u003Ch3>Translation credits\u003C\u002Fh3>\n\u003Cp>Many thanks to the following translators:\u003Cbr \u002F>\n* German: Markus Schubert\u003Cbr \u002F>\n* French: Daniel H\u003Cbr \u002F>\n* Italian: Luca Camellini\u003Cbr \u002F>\n* Russian: slaFFik\u003Cbr \u002F>\n* Spanish: Admin at dominicana.net.do\u003Cbr \u002F>\n* Traditional Chinese: Levin\u003C\u002Fp>\n","** Use of this plugin is not recommended in versions of BuddyPress 1.2 and higher. Please consider using BuddyPress Group Activity Notifications inste &hellip;",15714,"2010-08-27T20:04:00.000Z",[20,76,55,22,124],"subscribe","http:\u002F\u002Fdev.commons.gc.cuny.edu","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgroup-forum-subscription-for-buddypress.1.4.1.zip",{"attackSurface":128,"codeSignals":352,"taintFlows":725,"riskAssessment":784,"analyzedAt":793},{"hooks":129,"ajaxHandlers":335,"restRoutes":336,"shortcodes":337,"cronEvents":351,"entryPointCount":331,"unprotectedCount":27},[130,136,142,145,149,152,154,158,162,166,171,175,179,182,185,189,192,195,199,203,206,210,214,217,220,223,226,230,234,238,242,246,249,252,256,260,264,268,271,274,278,282,286,290,293,297,301,306,311,314,318,321,324,327,332],{"type":131,"name":132,"callback":133,"file":134,"line":135},"action","plugins_loaded","bbp_private_groups_init","bbp-private-groups.php",50,{"type":137,"name":138,"callback":139,"priority":104,"file":140,"line":141},"filter","bbp_before_has_forums_parse_args","private_groups_forums","includes\\forum-filters.php",5,{"type":131,"name":132,"callback":143,"file":140,"line":144},"rpg_filter_sub_forums",9,{"type":137,"name":146,"callback":147,"priority":104,"file":140,"line":148},"bbp_forum_get_subforums","private_groups_get_permitted_subforums_2",14,{"type":137,"name":146,"callback":150,"priority":104,"file":140,"line":151},"private_groups_get_permitted_subforums",15,{"type":137,"name":146,"callback":150,"priority":104,"file":140,"line":153},17,{"type":137,"name":155,"callback":156,"file":140,"line":157},"bbp_before_forum_get_subforums_parse_args","bbp_list_private_groups_subforums",19,{"type":137,"name":159,"callback":160,"priority":104,"file":140,"line":161},"bbp_list_forums","private_groups_list_forums",21,{"type":137,"name":163,"callback":164,"file":140,"line":165},"bbp_before_get_dropdown_parse_args","pg_forum_dropdown",23,{"type":131,"name":167,"callback":168,"priority":169,"file":170,"line":141},"bbp_template_redirect","private_group_enforce_permissions",1,"includes\\functions.php",{"type":137,"name":172,"callback":173,"file":170,"line":174},"protected_title_format","pg_remove_protected_title",6,{"type":137,"name":176,"callback":177,"file":170,"line":178},"private_title_format","pg_remove_private_title",7,{"type":137,"name":180,"callback":181,"file":170,"line":144},"bbp_get_user_favorites","rpg_get_user_favorites",{"type":137,"name":183,"callback":184,"priority":104,"file":170,"line":50},"bbp_get_forum_freshness_link","pg_get_forum_freshness_link",{"type":137,"name":186,"callback":187,"priority":104,"file":170,"line":188},"bbp_get_single_forum_description","rpg_get_single_forum_description",13,{"type":137,"name":190,"callback":191,"priority":104,"file":170,"line":148},"bbp_get_forum_topic_count","rpg_get_forum_topic_count",{"type":137,"name":193,"callback":194,"priority":104,"file":170,"line":151},"bbp_get_forum_reply_count","rpg_get_forum_reply_count",{"type":137,"name":196,"callback":197,"priority":104,"file":170,"line":198},"bbp_get_forum_post_count","rpg_get_forum_post_count",16,{"type":137,"name":200,"callback":201,"priority":104,"file":170,"line":202},"bbp_get_forum_last_active_id","rpg_get_forum_last_active_id",18,{"type":137,"name":204,"callback":205,"priority":104,"file":170,"line":157},"bbp_user_can_view_forum","rpg_user_can_view_forum",{"type":137,"name":207,"callback":208,"priority":104,"file":170,"line":209},"bbp_request","rpg_filter_bbp_request",22,{"type":131,"name":211,"callback":212,"file":170,"line":213},"admin_notices","rpg_warning",24,{"type":137,"name":215,"callback":216,"file":170,"line":106},"wp_get_nav_menu_items","rpg_exclude_menu_items",{"type":137,"name":218,"callback":219,"priority":104,"file":170,"line":89},"bbp_get_author_link","pg_check_profile",{"type":137,"name":221,"callback":219,"priority":104,"file":170,"line":222},"bbp_get_topic_author_link",41,{"type":137,"name":224,"callback":219,"priority":104,"file":170,"line":225},"bbp_get_reply_author_link",42,{"type":131,"name":227,"callback":228,"file":170,"line":229},"bbp_user_register","pg_role_group",46,{"type":131,"name":231,"callback":232,"priority":104,"file":170,"line":233},"wp_login","pg_assign_role_on_login",51,{"type":131,"name":235,"callback":236,"file":170,"line":237},"init","pg_assign_role_on_init",55,{"type":131,"name":239,"callback":240,"file":170,"line":241},"manage_edit-forum_columns","rpg_ID_column_add",59,{"type":137,"name":243,"callback":244,"priority":104,"file":170,"line":245},"manage_forum_posts_custom_column","rpg_ID_column_value",60,{"type":131,"name":239,"callback":247,"file":170,"line":248},"rpg_groups_column_add",63,{"type":137,"name":243,"callback":250,"priority":104,"file":170,"line":251},"rpg_groups_column_value",64,{"type":137,"name":253,"callback":254,"file":170,"line":255},"bsp_get_freshness_display_title","pg_get_forum_freshness_title",68,{"type":137,"name":257,"callback":258,"file":170,"line":259},"bsp_display_topic_index_query","pg_display_topic_index_query_filter",69,{"type":137,"name":261,"callback":262,"file":170,"line":263},"bsp_display_forum_query","pg_display_forum_query_filter",70,{"type":137,"name":265,"callback":266,"file":170,"line":267},"bsp_activity_widget","pg_latest_activity_forum_query_filter",71,{"type":137,"name":269,"callback":258,"file":170,"line":270},"asc_display_topic_index_query",74,{"type":137,"name":272,"callback":262,"file":170,"line":273},"asc_display_forum_query",75,{"type":137,"name":275,"callback":276,"file":170,"line":277},"bbp_get_forum_permalink","bbp_add_view_all",778,{"type":137,"name":279,"callback":280,"priority":104,"file":281,"line":174},"wp_link_query","rpg_link_query","includes\\link_query.php",{"type":137,"name":283,"callback":284,"file":285,"line":141},"bbp_get_user_unread","pg_get_user_unread","includes\\mark-as-read-filter.php",{"type":131,"name":287,"callback":288,"file":289,"line":33},"admin_menu","private_groups_create_meta_box","includes\\meta-box.php",{"type":131,"name":291,"callback":292,"priority":169,"file":289,"line":71},"save_post","private_groups_save_meta",{"type":131,"name":294,"callback":295,"file":296,"line":198},"widgets_init","register_pg_widgets","includes\\pg_forum_widgets.php",{"type":137,"name":298,"callback":299,"file":300,"line":178},"bbp_get_user_replies_created","pg_get_user_replies_created","includes\\replies.php",{"type":137,"name":302,"callback":303,"file":304,"line":305},"bbp_has_search_results","pg_has_search_results","includes\\search.php",143,{"type":131,"name":307,"callback":308,"file":309,"line":310},"admin_init","rpg_register_settings","includes\\settings.php",398,{"type":131,"name":287,"callback":312,"file":309,"line":313},"rpg_settings_menu",406,{"type":137,"name":315,"callback":316,"file":317,"line":178},"bbp_before_has_topics_parse_args","pg_has_topics","includes\\topics.php",{"type":137,"name":315,"callback":319,"priority":104,"file":320,"line":144},"private_groups_topics","includes\\topic_filters.php",{"type":137,"name":322,"callback":323,"file":320,"line":71},"bbp_current_user_can_access_create_topic_form","pg_current_user_can_access_create_topic_form",{"type":137,"name":325,"callback":326,"file":320,"line":50},"bbp_current_user_can_access_create_reply_form","pg_current_user_can_access_create_reply_form",{"type":131,"name":328,"callback":329,"priority":135,"file":330,"line":331},"edit_user_profile","rpg_user_profile_field","includes\\user-profile.php",4,{"type":131,"name":333,"callback":334,"file":330,"line":141},"edit_user_profile_update","bbp_edit_user_pg",[],[],[338,342,345,348],{"tag":339,"callback":340,"file":341,"line":144},"list-pg-users","list_pg_users","includes\\shortcodes.php",{"tag":343,"callback":344,"file":341,"line":104},"pg-single-forum","pg_single_forum",{"tag":346,"callback":347,"file":341,"line":71},"pg-single-topic","pg_display_topic",{"tag":349,"callback":350,"file":341,"line":50},"pg-single-reply","pg_display_reply",[],{"dangerousFunctions":353,"sqlUsage":354,"outputEscaping":385,"fileOperations":27,"externalRequests":27,"nonceChecks":722,"capabilityChecks":723,"bundledLibraries":724},[],{"prepared":107,"raw":151,"locations":355},[356,359,361,363,365,367,369,371,372,373,376,378,380,382,384],{"file":357,"line":248,"context":358},"includes\\disable_groups.php","$wpdb->get_col() with variable interpolation",{"file":140,"line":360,"context":358},44,{"file":140,"line":362,"context":358},385,{"file":170,"line":364,"context":358},860,{"file":170,"line":366,"context":358},876,{"file":170,"line":368,"context":358},1009,{"file":370,"line":222,"context":358},"includes\\management_info.php",{"file":370,"line":241,"context":358},{"file":285,"line":106,"context":358},{"file":374,"line":375,"context":358},"includes\\plugin-info.php",235,{"file":374,"line":377,"context":358},254,{"file":300,"line":379,"context":358},53,{"file":317,"line":381,"context":358},77,{"file":317,"line":383,"context":358},81,{"file":320,"line":37,"context":358},{"escaped":245,"rawEcho":386,"locations":387},199,[388,391,393,395,397,399,402,404,406,408,409,411,412,414,416,418,420,422,424,426,427,429,431,432,433,434,435,437,439,441,443,445,447,449,451,452,454,455,457,459,461,463,465,467,468,470,472,474,476,477,479,481,483,484,486,488,489,490,492,493,494,496,498,500,501,502,504,505,506,508,510,511,513,514,515,517,518,519,521,523,524,526,528,530,532,534,535,536,538,539,540,542,543,544,546,547,548,550,552,554,556,558,560,561,563,565,566,567,569,570,571,573,575,576,578,579,580,582,583,584,586,587,588,590,591,592,594,595,596,598,600,601,602,604,606,608,609,610,612,614,616,618,620,622,624,626,628,630,632,634,635,637,639,642,644,647,649,651,652,654,655,657,658,660,662,664,666,668,670,672,673,674,676,678,680,682,684,685,687,689,692,693,694,696,697,699,700,702,703,705,706,708,709,710,712,714,716,718,720],{"file":357,"line":389,"context":390},99,"raw output",{"file":357,"line":392,"context":390},106,{"file":140,"line":394,"context":390},363,{"file":170,"line":396,"context":390},960,{"file":170,"line":398,"context":390},982,{"file":400,"line":401,"context":390},"includes\\help.php",104,{"file":400,"line":403,"context":390},127,{"file":370,"line":405,"context":390},26,{"file":370,"line":407,"context":390},38,{"file":370,"line":233,"context":390},{"file":370,"line":410,"context":390},67,{"file":370,"line":37,"context":390},{"file":370,"line":413,"context":390},129,{"file":370,"line":415,"context":390},130,{"file":370,"line":417,"context":390},144,{"file":370,"line":419,"context":390},150,{"file":370,"line":421,"context":390},161,{"file":370,"line":423,"context":390},177,{"file":370,"line":425,"context":390},178,{"file":289,"line":405,"context":390},{"file":289,"line":428,"context":390},47,{"file":289,"line":430,"context":390},58,{"file":289,"line":245,"context":390},{"file":289,"line":245,"context":390},{"file":289,"line":245,"context":390},{"file":289,"line":245,"context":390},{"file":289,"line":436,"context":390},61,{"file":289,"line":438,"context":390},80,{"file":289,"line":440,"context":390},115,{"file":289,"line":442,"context":390},119,{"file":289,"line":444,"context":390},120,{"file":289,"line":446,"context":390},122,{"file":289,"line":448,"context":390},125,{"file":289,"line":450,"context":390},126,{"file":289,"line":403,"context":390},{"file":289,"line":453,"context":390},128,{"file":289,"line":413,"context":390},{"file":289,"line":456,"context":390},154,{"file":289,"line":458,"context":390},167,{"file":289,"line":460,"context":390},193,{"file":289,"line":462,"context":390},195,{"file":289,"line":464,"context":390},196,{"file":289,"line":466,"context":390},198,{"file":289,"line":386,"context":390},{"file":289,"line":469,"context":390},200,{"file":296,"line":471,"context":390},111,{"file":296,"line":473,"context":390},114,{"file":296,"line":475,"context":390},137,{"file":296,"line":456,"context":390},{"file":296,"line":478,"context":390},172,{"file":296,"line":480,"context":390},215,{"file":296,"line":482,"context":390},216,{"file":296,"line":482,"context":390},{"file":296,"line":485,"context":390},221,{"file":296,"line":487,"context":390},222,{"file":296,"line":487,"context":390},{"file":296,"line":375,"context":390},{"file":296,"line":491,"context":390},237,{"file":296,"line":491,"context":390},{"file":296,"line":310,"context":390},{"file":296,"line":495,"context":390},401,{"file":296,"line":497,"context":390},449,{"file":296,"line":499,"context":390},495,{"file":296,"line":499,"context":390},{"file":296,"line":499,"context":390},{"file":296,"line":503,"context":390},496,{"file":296,"line":503,"context":390},{"file":296,"line":503,"context":390},{"file":296,"line":507,"context":390},499,{"file":296,"line":509,"context":390},500,{"file":296,"line":509,"context":390},{"file":296,"line":512,"context":390},508,{"file":296,"line":512,"context":390},{"file":296,"line":512,"context":390},{"file":296,"line":516,"context":390},509,{"file":296,"line":516,"context":390},{"file":296,"line":516,"context":390},{"file":296,"line":520,"context":390},511,{"file":296,"line":522,"context":390},512,{"file":296,"line":522,"context":390},{"file":296,"line":525,"context":390},634,{"file":296,"line":527,"context":390},637,{"file":296,"line":529,"context":390},645,{"file":296,"line":531,"context":390},702,{"file":296,"line":533,"context":390},740,{"file":296,"line":533,"context":390},{"file":296,"line":533,"context":390},{"file":296,"line":537,"context":390},741,{"file":296,"line":537,"context":390},{"file":296,"line":537,"context":390},{"file":296,"line":541,"context":390},742,{"file":296,"line":541,"context":390},{"file":296,"line":541,"context":390},{"file":296,"line":545,"context":390},743,{"file":296,"line":545,"context":390},{"file":296,"line":545,"context":390},{"file":296,"line":549,"context":390},916,{"file":296,"line":551,"context":390},919,{"file":296,"line":553,"context":390},927,{"file":296,"line":555,"context":390},963,{"file":296,"line":557,"context":390},987,{"file":296,"line":559,"context":390},1001,{"file":296,"line":559,"context":390},{"file":296,"line":562,"context":390},1015,{"file":296,"line":564,"context":390},1063,{"file":296,"line":564,"context":390},{"file":296,"line":564,"context":390},{"file":296,"line":568,"context":390},1064,{"file":296,"line":568,"context":390},{"file":296,"line":568,"context":390},{"file":296,"line":572,"context":390},1067,{"file":296,"line":574,"context":390},1068,{"file":296,"line":574,"context":390},{"file":296,"line":577,"context":390},1077,{"file":296,"line":577,"context":390},{"file":296,"line":577,"context":390},{"file":296,"line":581,"context":390},1078,{"file":296,"line":581,"context":390},{"file":296,"line":581,"context":390},{"file":296,"line":585,"context":390},1079,{"file":296,"line":585,"context":390},{"file":296,"line":585,"context":390},{"file":296,"line":589,"context":390},1080,{"file":296,"line":589,"context":390},{"file":296,"line":589,"context":390},{"file":296,"line":593,"context":390},1081,{"file":296,"line":593,"context":390},{"file":296,"line":593,"context":390},{"file":296,"line":597,"context":390},1084,{"file":296,"line":599,"context":390},1085,{"file":296,"line":599,"context":390},{"file":374,"line":381,"context":390},{"file":374,"line":603,"context":390},87,{"file":374,"line":605,"context":390},97,{"file":374,"line":607,"context":390},109,{"file":374,"line":442,"context":390},{"file":374,"line":475,"context":390},{"file":374,"line":611,"context":390},148,{"file":374,"line":613,"context":390},158,{"file":374,"line":615,"context":390},168,{"file":374,"line":617,"context":390},186,{"file":374,"line":619,"context":390},219,{"file":374,"line":621,"context":390},245,{"file":374,"line":623,"context":390},262,{"file":374,"line":625,"context":390},314,{"file":374,"line":627,"context":390},315,{"file":374,"line":629,"context":390},329,{"file":374,"line":631,"context":390},335,{"file":374,"line":633,"context":390},347,{"file":374,"line":394,"context":390},{"file":374,"line":636,"context":390},364,{"file":374,"line":638,"context":390},391,{"file":640,"line":641,"context":390},"includes\\role-new.php",52,{"file":640,"line":643,"context":390},93,{"file":645,"line":646,"context":390},"includes\\role_assignment.php",79,{"file":645,"line":648,"context":390},113,{"file":645,"line":650,"context":390},133,{"file":645,"line":475,"context":390},{"file":645,"line":653,"context":390},145,{"file":645,"line":653,"context":390},{"file":645,"line":656,"context":390},159,{"file":645,"line":656,"context":390},{"file":309,"line":659,"context":390},283,{"file":309,"line":661,"context":390},287,{"file":309,"line":663,"context":390},413,{"file":309,"line":665,"context":390},420,{"file":309,"line":667,"context":390},428,{"file":309,"line":669,"context":390},435,{"file":309,"line":671,"context":390},442,{"file":309,"line":497,"context":390},{"file":341,"line":165,"context":390},{"file":341,"line":675,"context":390},37,{"file":341,"line":677,"context":390},83,{"file":341,"line":679,"context":390},155,{"file":341,"line":681,"context":390},228,{"file":683,"line":225,"context":390},"includes\\topic_permissions.php",{"file":683,"line":430,"context":390},{"file":330,"line":686,"context":390},48,{"file":330,"line":688,"context":390},56,{"file":690,"line":691,"context":390},"includes\\user_management.php",112,{"file":690,"line":453,"context":390},{"file":690,"line":453,"context":390},{"file":690,"line":695,"context":390},151,{"file":690,"line":695,"context":390},{"file":690,"line":698,"context":390},166,{"file":690,"line":698,"context":390},{"file":690,"line":701,"context":390},210,{"file":690,"line":701,"context":390},{"file":690,"line":704,"context":390},213,{"file":690,"line":482,"context":390},{"file":690,"line":707,"context":390},218,{"file":690,"line":707,"context":390},{"file":690,"line":485,"context":390},{"file":690,"line":711,"context":390},227,{"file":690,"line":713,"context":390},240,{"file":690,"line":715,"context":390},248,{"file":690,"line":717,"context":390},265,{"file":690,"line":719,"context":390},321,{"file":690,"line":721,"context":390},353,3,28,[],[726,766],{"entryPoint":727,"graph":728,"unsanitizedCount":107,"severity":765},"pg_user_management (includes\\user_management.php:7)",{"nodes":729,"edges":757},[730,735,740,744,748,750,752,755],{"id":731,"type":732,"label":733,"file":690,"line":734},"n0","source","$_POST (x4)",89,{"id":736,"type":737,"label":738,"file":690,"line":698,"wp_function":739},"n1","sink","echo() [XSS]","echo",{"id":741,"type":732,"label":742,"file":690,"line":743},"n2","$_POST['users']",34,{"id":745,"type":746,"label":747,"file":690,"line":743},"n3","transform","→ pg_no_group_users()",{"id":749,"type":737,"label":738,"file":690,"line":719,"wp_function":739},"n4",{"id":751,"type":732,"label":742,"file":690,"line":407},"n5",{"id":753,"type":746,"label":754,"file":690,"line":407},"n6","→ pg_group_users()",{"id":756,"type":737,"label":738,"file":690,"line":721,"wp_function":739},"n7",[758,760,762,763,764],{"from":731,"to":736,"sanitized":759},true,{"from":741,"to":745,"sanitized":761},false,{"from":745,"to":749,"sanitized":761},{"from":751,"to":753,"sanitized":761},{"from":753,"to":756,"sanitized":761},"low",{"entryPoint":767,"graph":768,"unsanitizedCount":107,"severity":765},"\u003Cuser_management> (includes\\user_management.php:0)",{"nodes":769,"edges":778},[770,771,772,773,774,775,776,777],{"id":731,"type":732,"label":733,"file":690,"line":734},{"id":736,"type":737,"label":738,"file":690,"line":698,"wp_function":739},{"id":741,"type":732,"label":742,"file":690,"line":743},{"id":745,"type":746,"label":747,"file":690,"line":743},{"id":749,"type":737,"label":738,"file":690,"line":719,"wp_function":739},{"id":751,"type":732,"label":742,"file":690,"line":407},{"id":753,"type":746,"label":754,"file":690,"line":407},{"id":756,"type":737,"label":738,"file":690,"line":721,"wp_function":739},[779,780,781,782,783],{"from":731,"to":736,"sanitized":759},{"from":741,"to":745,"sanitized":761},{"from":745,"to":749,"sanitized":761},{"from":751,"to":753,"sanitized":761},{"from":753,"to":756,"sanitized":761},{"summary":785,"deductions":786},"The bbp-private-groups plugin v3.9.7 exhibits a generally good security posture with strong emphasis on capability checks and a lack of known vulnerabilities. The static analysis reveals a relatively small attack surface, with all identified entry points (shortcodes) having adequate protection. The presence of a significant number of nonce checks further strengthens its defenses against common attack vectors.  \n\nHowever, there are areas for improvement. A concerning aspect is the relatively low percentage of SQL queries using prepared statements, suggesting a potential for SQL injection vulnerabilities if the sanitization of input for these queries is not robust. Additionally, the low percentage of properly escaped output is a significant concern, as it could lead to cross-site scripting (XSS) vulnerabilities. The taint analysis, while showing no critical or high-severity issues, did identify flows with unsanitized paths, which warrants further investigation.\n\nOverall, the plugin's lack of past vulnerabilities and its focus on access control are positive indicators. The primary risks lie in the areas of SQL query sanitization and output escaping. Addressing these would significantly enhance the plugin's security.",[787,789,791],{"reason":788,"points":151},"SQL queries not using prepared statements",{"reason":790,"points":50},"Output not properly escaped",{"reason":792,"points":33},"Unsanitized paths in taint flows","2026-03-16T18:46:12.747Z",{"wat":795,"direct":804},{"assetPaths":796,"generatorPatterns":799,"scriptPaths":800,"versionParams":801},[797,798],"\u002Fwp-content\u002Fplugins\u002Fbbp-private-groups\u002Fjs\u002Fbbp-private-groups.js","\u002Fwp-content\u002Fplugins\u002Fbbp-private-groups\u002Fcss\u002Fbbp-private-groups.css",[],[797],[802,803],"bbp-private-groups\u002Fcss\u002Fbbp-private-groups.css?ver=","bbp-private-groups\u002Fjs\u002Fbbp-private-groups.js?ver=",{"cssClasses":805,"htmlComments":808,"htmlAttributes":814,"restEndpoints":816,"jsGlobals":817,"shortcodeOutput":823},[806,807],"private-groups-admin-content","bbp-private-groups-admin-content",[809,810,811,812,813],"\u003C!-- Private Groups Admin Settings -->","\u003C!-- new shortcodes first"," then versions of bbpress ones with filtering -->","\u003C!--  NEW SHORTCODES   ","\u003C!-- NEW PG VERSIONS OF EXISTING SHORTCODES   ",[815],"private_group",[],[818,819,344,347,350,340,820,821,822,818,819,818,820,821,822,819,818,819,820,821],"private_groups_can_user_view_post_id","private_groups_get_forum_id_from_post_id","pg_start","pg_end","pg_unset_globals",[824,825,826,827],"[list-pg-users","[pg-single-forum","[pg-single-topic","[pg-single-reply"]