PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Settings / Plugin / UserSetting.php
matomo / app / core / Settings / Plugin Last commit date
SystemConfigSetting.php 6 years ago SystemSetting.php 6 years ago SystemSettings.php 6 years ago UserSetting.php 6 years ago UserSettings.php 6 years ago
UserSetting.php
74 lines
1 <?php
2 /**
3 * Piwik - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9
10 namespace Piwik\Settings\Plugin;
11
12 use Piwik\Container\StaticContainer;
13 use Piwik\Db;
14 use Piwik\Piwik;
15 use Exception;
16 use Piwik\Settings\Setting;
17 use Piwik\Settings\Storage;
18
19 /**
20 * Describes a per user setting. Each user will be able to change this setting for themselves,
21 * but not for other users.
22 *
23 * See {@link \Piwik\Settings\Setting}.
24 */
25 class UserSetting extends Setting
26 {
27 /**
28 * @var null|string
29 */
30 private $userLogin = null;
31
32 /**
33 * Constructor.
34 *
35 * @param string $name The setting's persisted name.
36 * @param mixed $defaultValue Default value for this setting if no value was specified.
37 * @param string $type Eg an array, int, ... see TYPE_* constants
38 * @param string $pluginName The name of the plugin the setting belongs to
39 * @param string $userLogin The name of the user the value should be set or get for
40 * @throws Exception
41 */
42 public function __construct($name, $defaultValue, $type, $pluginName, $userLogin)
43 {
44 parent::__construct($name, $defaultValue, $type, $pluginName);
45
46 if (empty($userLogin)) {
47 throw new Exception('No userLogin given to create setting ' . $name);
48 }
49
50 $this->userLogin = $userLogin;
51
52 $factory = StaticContainer::get('Piwik\Settings\Storage\Factory');
53 $this->storage = $factory->getPluginStorage($this->pluginName, $this->userLogin);
54 }
55
56 /**
57 * Returns `true` if this setting can be displayed for the current user, `false` if otherwise.
58 *
59 * @return bool
60 */
61 public function isWritableByCurrentUser()
62 {
63 if (isset($this->hasWritePermission)) {
64 return $this->hasWritePermission;
65 }
66
67 // performance improvement, do not detect this in __construct otherwise likely rather "big" query to DB.
68 $this->hasWritePermission = Piwik::isUserHasSomeViewAccess();
69
70 return $this->hasWritePermission;
71 }
72
73 }
74