PluginProbe
Groups – Memberships and Access Control / 4.7.1
Groups – Memberships and Access Control v4.7.1
4.7.1 4.7.0 4.6.0 4.5.0 4.4.0 4.3.0 trunk 1.0.0-beta-1 1.0.0-beta-2 1.0.0-beta-3 1.0.0-beta-3b 1.0.0-beta-3c 1.0.0-beta-3d 1.1.4 1.1.5 1.10.0 1.10.1 1.10.2 1.10.3 1.11.0 1.11.1 1.11.2 1.11.3 1.12.0 1.13.0 All 131 releases
← All changes | lib/core/wp-init.php +121 -34 1.10.14.7.1 View file →
@@ -1,20 +1,20 @@
1 1 <?php
2 2 /**
3 3 * wp-init.php
4 - *
4 + *
5 5 * Copyright (c) "kento" Karim Rahimpur www.itthinx.com
6 - *
6 + *
7 7 * This code is released under the GNU General Public License.
8 8 * See COPYRIGHT.txt and LICENSE.txt.
9 - *
9 + *
10 10 * This code is distributed in the hope that it will be useful,
11 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 13 * GNU General Public License for more details.
14 - *
14 + *
15 15 * This header and all notices must be kept intact.
16 - *
16 + *
17 17 * @author Karim Rahimpur
18 18 * @package groups
19 19 * @since groups 1.0.0
20 20 */
@@ -35,10 +35,10 @@
35 35 }
36 36
37 37 // <= 3.2.1
38 38 if ( !function_exists( 'is_user_member_of_blog' ) ) {
39 - function is_user_member_of_blog( $user_id, $blog_id = 0 ) {
40 - return false !== get_user_by( "id", $user_id );
39 + function is_user_member_of_blog( $user_id, $blog_id = 0 ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
40 + return false !== get_user_by( 'id', $user_id );
41 41 }
42 42 }
43 43
44 44 /**
@@ -44,67 +44,101 @@
44 44 /**
45 45 * Load core :
46 46 */
47 47
48 +require_once GROUPS_VIEWS_LIB . '/class-groups-log.php';
49 +
50 +require_once GROUPS_CORE_LIB . '/class-groups-lock.php';
51 +require_once GROUPS_CORE_LIB . '/class-groups-lock-exception.php';
52 +
48 53 require_once GROUPS_CORE_LIB . '/class-groups-cache.php';
49 54 require_once GROUPS_CORE_LIB . '/class-groups-cache-object.php';
50 55
51 -require_once( GROUPS_CORE_LIB . '/class-groups-utility.php' );
56 +require_once GROUPS_CORE_LIB . '/class-groups-utility.php';
52 57
53 58 // options
54 -require_once( GROUPS_CORE_LIB . '/class-groups-options.php' );
59 +require_once GROUPS_CORE_LIB . '/class-groups-options.php';
55 60
56 61 // plugin control: activation, deactivation, ...
57 -require_once( GROUPS_CORE_LIB . '/class-groups-controller.php' );
62 +require_once GROUPS_CORE_LIB . '/class-groups-controller.php';
58 63
64 +// legacy enabled?
65 +$groups_legacy_enable = Groups_Options::get_option( GROUPS_LEGACY_ENABLE, GROUPS_LEGACY_ENABLE_DEFAULT );
66 +
59 67 // admin
60 68 if ( is_admin() ) {
61 - require_once( GROUPS_ADMIN_LIB . '/class-groups-admin.php' );
69 + require_once GROUPS_ADMIN_LIB . '/class-groups-admin.php';
70 + require_once GROUPS_ADMIN_LIB . '/class-groups-admin-welcome.php';
62 71 if ( Groups_Options::get_option( GROUPS_SHOW_IN_USER_PROFILE, GROUPS_SHOW_IN_USER_PROFILE_DEFAULT ) ) {
63 - require_once( GROUPS_ADMIN_LIB . '/class-groups-admin-user-profile.php' );
72 + require_once GROUPS_ADMIN_LIB . '/class-groups-admin-user-profile.php';
64 73 }
65 - require_once( GROUPS_ADMIN_LIB . '/class-groups-admin-users.php' );
66 - require_once( GROUPS_ADMIN_LIB . '/class-groups-admin-posts.php' );
67 - require_once( GROUPS_ADMIN_LIB . '/class-groups-admin-post-columns.php' );
74 + require_once GROUPS_ADMIN_LIB . '/class-groups-admin-users.php';
75 + require_once GROUPS_ADMIN_LIB . '/class-groups-admin-posts.php';
76 + require_once GROUPS_ADMIN_LIB . '/class-groups-admin-post-columns.php';
77 + if ( $groups_legacy_enable ) {
78 + require_once GROUPS_ADMIN_LIB . '/class-groups-admin-deprecation-notice.php'; // @since 4.2.0
79 + require_once GROUPS_LEGACY_LIB . '/admin/class-groups-admin-posts-legacy.php';
80 + require_once GROUPS_LEGACY_LIB . '/admin/class-groups-admin-post-columns-legacy.php';
81 + }
68 82 }
69 83
70 84 // help
71 85 if ( is_admin() ) {
72 - require_once( GROUPS_CORE_LIB . '/class-groups-help.php' );
86 + require_once GROUPS_CORE_LIB . '/class-groups-help.php';
73 87 }
74 88
75 -require_once( GROUPS_CORE_LIB . '/class-groups-capability.php' );
76 -require_once( GROUPS_CORE_LIB . '/class-groups-group.php' );
77 -require_once( GROUPS_CORE_LIB . '/class-groups-group-capability.php' );
78 -require_once( GROUPS_CORE_LIB . '/class-groups-user.php' );
79 -require_once( GROUPS_CORE_LIB . '/class-groups-user-capability.php' );
80 -require_once( GROUPS_CORE_LIB . '/class-groups-user-group.php' );
89 +require_once GROUPS_CORE_LIB . '/class-groups-capability.php';
90 +require_once GROUPS_CORE_LIB . '/class-groups-group.php';
91 +require_once GROUPS_CORE_LIB . '/class-groups-group-capability.php';
92 +require_once GROUPS_CORE_LIB . '/class-groups-user.php';
93 +require_once GROUPS_CORE_LIB . '/class-groups-user-capability.php';
94 +require_once GROUPS_CORE_LIB . '/class-groups-user-group.php';
81 95
82 96 /**
83 97 * Load auto :
84 98 */
85 99
86 -require_once( GROUPS_AUTO_LIB . '/class-groups-registered.php' );
100 +require_once GROUPS_AUTO_LIB . '/class-groups-registered.php';
87 101
88 102 /**
89 103 * Load access :
90 104 */
91 105
92 -require_once( GROUPS_ACCESS_LIB . '/class-groups-post-access.php' );
106 +require_once GROUPS_ACCESS_LIB . '/class-groups-post-access.php';
107 +if ( $groups_legacy_enable ) {
108 + require_once GROUPS_LEGACY_LIB . '/access/class-groups-post-access-legacy.php';
109 +}
110 +require_once GROUPS_ACCESS_LIB . '/class-groups-comment-access.php';
93 111
94 112 if ( is_admin() ) {
95 - require_once( GROUPS_ACCESS_LIB . '/class-groups-access-meta-boxes.php' );
113 + require_once GROUPS_ACCESS_LIB . '/class-groups-access-meta-boxes.php';
114 + if ( $groups_legacy_enable ) {
115 + require_once GROUPS_LEGACY_LIB . '/access/class-groups-access-meta-boxes-legacy.php';
116 + }
96 117 }
97 -require_once( GROUPS_ACCESS_LIB . '/class-groups-access-shortcodes.php' );
98 -require_once( GROUPS_VIEWS_LIB . '/class-groups-shortcodes.php' );
118 +require_once GROUPS_ACCESS_LIB . '/class-groups-access-shortcodes.php';
119 +require_once GROUPS_VIEWS_LIB . '/class-groups-shortcodes.php';
99 120
100 121 /**
101 122 * Load wp :
102 123 */
103 -require_once( GROUPS_WP_LIB . '/class-groups-wordpress.php' );
124 +require_once GROUPS_WP_LIB . '/class-groups-wordpress.php';
104 125
126 +/**
127 + * Load blocks :
128 + */
129 +require_once GROUPS_BLOCKS_LIB . '/src/class-groups-blocks.php';
130 +
131 +/**
132 + * Extras ...
133 + */
134 +require_once GROUPS_EXTRA_LIB . '/class-groups-extra.php';
135 +
136 +// @since 4.0.0
137 +require_once GROUPS_CORE_LIB . '/class-groups-cache-robot.php';
138 +
105 139 // widgets
106 -// include_once( GROUPS_CORE_LIB . '/class-groups-widgets.php' );
140 +// include_once GROUPS_CORE_LIB . '/class-groups-widgets.php';
107 141 // add_action( 'widgets_init', 'groups_widgets_init' );
108 142
109 143 /**
110 144 * Register widgets
@@ -112,16 +146,69 @@
112 146 // function groups_widgets_init() {
113 147 // register_widget( 'Groups_Widget' );
114 148 // }
115 149
116 -
117 -
118 -
119 150 /**
120 151 * Returns the prefixed DB table name.
152 + *
121 153 * @param string $name the name of the DB table
154 + *
122 155 * @return string prefixed DB table name
123 156 */
124 -function _groups_get_tablename( $name ) {
157 +function _groups_get_tablename( $name ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
125 158 global $wpdb;
126 - return $wpdb->prefix . GROUPS_TP . $name;
159 +
160 + /**
161 + * Filters the prefix of the database table to query.
162 + *
163 + * @since 2.11.0
164 + *
165 + * @param str $wpdb->prefix The current WordPress table prefix. Allowed characters are a-z, A-Z, 0-9, the dash - and the underscore _.
166 + *
167 + * @return str The possibly-modified table prefix.
168 + */
169 + $prefix = apply_filters( 'groups_get_table_prefix', $wpdb->prefix );
170 +
171 + if ( is_string( $prefix ) ) {
172 + $prefix = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $prefix );
173 + }
174 +
175 + // use the default if the filter returned nonsense or null due to error
176 + if ( !is_string( $prefix ) ) {
177 + $prefix = $wpdb->prefix;
178 + }
179 +
180 + // Return the constructed table name.
181 + return $prefix . GROUPS_TP . $name;
182 +}
183 +
184 +/**
185 + * This returns true if admin override is enabled and the current user
186 + * is an administrator, otherwise false.
187 + * To enable admin override (AKA god mode for admins), add this to
188 + * your wp-config.php :
189 + *
190 + * define( 'GROUPS_ADMINISTRATOR_OVERRIDE', true );
191 + *
192 + * Enabling this is NOT recommended for production sites.
193 + *
194 + * @param int $user_id indicate the user ID or omit to check for the current user
195 + *
196 + * @return boolean
197 + */
198 +function _groups_admin_override( $user_id = null ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
199 + $result = false;
200 + if ( ( $user_id === null ) && function_exists( 'get_current_user_id' ) ) {
201 + $user_id = get_current_user_id();
202 + }
203 + if ( $user_id ) {
204 + if ( defined( 'GROUPS_ADMINISTRATOR_OVERRIDE' ) && ( GROUPS_ADMINISTRATOR_OVERRIDE === true ) ) {
205 + // @since 3.1.0 user_can() relies on get_userdata() which is defined in wp-includes/pluggable.php
206 + if ( function_exists( 'user_can' ) && function_exists( 'get_userdata' ) ) {
207 + if ( user_can( $user_id, 'administrator' ) ) {
208 + $result = true;
209 + }
210 + }
211 + }
212 + }
213 + return $result;
127 214 }