PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.15
Independent Analytics – WordPress Analytics Plugin v1.15
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / inc / capability_manager.php
independent-analytics / inc Last commit date
ajax 3 years ago migrations 3 years ago models 3 years ago queries 3 years ago sql 3 years ago tables 3 years ago utils 3 years ago campaign_builder.php 3 years ago capability_manager.php 3 years ago chart.php 3 years ago chart_geo.php 3 years ago dashboard_options.php 3 years ago dashboard_widget.php 3 years ago db.php 3 years ago filters.php 3 years ago freemius.php 3 years ago geo_database.php 3 years ago geo_database_download_job.php 3 years ago independent_analytics.php 3 years ago known_referrers.php 3 years ago quick_stats.php 3 years ago real_time.php 3 years ago rest_api.php 3 years ago settings.php 3 years ago track_resource_changes.php 3 years ago view_counter.php 3 years ago
capability_manager.php
97 lines
1 <?php
2
3 namespace IAWP;
4
5 class Capability_Manager
6 {
7 /**
8 * @return array
9 */
10 public static function all_capabilities(): array
11 {
12 return [
13 'iawp_read_only_access' => esc_html__('View analytics', 'iawp'),
14 'iawp_full_access' => esc_html__('View analytics and edit settings', 'iawp'),
15 ];
16 }
17
18 /**
19 * @param $capabilities
20 * @return void
21 */
22 public static function edit_all_capabilities($capabilities): void
23 {
24 foreach ($capabilities as $role => $cap) {
25 $user_role = get_role($role);
26
27 // For the role, remove all previous capabilities
28 foreach (self::all_capabilities() as $capability => $label) {
29 $user_role->remove_cap($capability);
30 }
31
32 // Add the newly chosen capability
33 $user_role->add_cap($cap);
34 }
35 }
36
37 /**
38 * @return bool
39 */
40 public static function can_view(): bool
41 {
42 return self::is_admin() || current_user_can('iawp_read_only_access') || current_user_can('iawp_full_access');
43 }
44
45 /**
46 * @return bool
47 */
48 public static function can_edit(): bool
49 {
50 return self::is_admin() || current_user_can('iawp_full_access');
51 }
52
53 /**
54 * Returns a capability string for admin menu pages. Admins can always see pages. Other roles
55 * can only see pages if they have the special capability applied.
56 *
57 * @return string
58 */
59 public static function can_view_string(): string
60 {
61 if (self::is_admin()) {
62 return 'manage_options';
63 }
64 if (self::can_edit()) {
65 return 'iawp_full_access';
66 }
67 if (self::can_view()) {
68 return 'iawp_read_only_access';
69 }
70
71 return 'manage_options';
72 }
73
74 /**
75 * @return bool
76 */
77 public static function is_admin(): bool
78 {
79 foreach (wp_get_current_user()->roles as $role) {
80 if ($role === 'administrator') {
81 return true;
82 }
83 }
84
85 return false;
86 }
87
88 public static function white_labeled(): bool
89 {
90 if (self::is_admin()) {
91 return false;
92 }
93
94 return IAWP()->get_option('iawp_white_label', false);
95 }
96 }
97