]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #7389 from MrPetovan/bug/7387-local_user-int
authorPhilipp <admin+Github@philipp.info>
Tue, 16 Jul 2019 14:37:38 +0000 (16:37 +0200)
committerGitHub <noreply@github.com>
Tue, 16 Jul 2019 14:37:38 +0000 (16:37 +0200)
Ensure NULL isn't passed to Feature::isEnabled

13 files changed:
mod/cal.php
mod/photos.php
src/Content/Feature.php
src/Content/Widget.php
src/Content/Widget/CalendarExport.php
src/Core/Config/JitPConfiguration.php
src/Core/Config/PConfiguration.php
src/Core/Config/PreloadPConfiguration.php
src/Core/PConfig.php
src/Model/Profile.php
tests/src/Core/Config/JitPConfigurationTest.php
tests/src/Core/Config/PConfigurationTest.php
tests/src/Core/Config/PreloadPConfigurationTest.php

index 0a2a02e53c49e1613b8c02c6702c34aeb3f6afe6..05ad314b039a351dc2a790cbac33a34882542364 100644 (file)
@@ -110,7 +110,7 @@ function cal_content(App $a)
        $remote_contact = false;
        $contact_id = 0;
 
-       $owner_uid = $a->data['user']['uid'];
+       $owner_uid = intval($a->data['user']['uid']);
        $nick = $a->data['user']['nickname'];
 
        if (!empty($_SESSION['remote']) && is_array($_SESSION['remote'])) {
@@ -290,14 +290,14 @@ function cal_content(App $a)
        }
 
        if ($mode == 'export') {
-               if (!intval($owner_uid)) {
+               if (!$owner_uid) {
                        notice(L10n::t('User not found'));
                        return;
                }
 
                // Test permissions
                // Respect the export feature setting for all other /cal pages if it's not the own profile
-               if ((local_user() !== intval($owner_uid)) && !Feature::isEnabled($owner_uid, "export_calendar")) {
+               if ((local_user() !== $owner_uid) && !Feature::isEnabled($owner_uid, "export_calendar")) {
                        notice(L10n::t('Permission denied.') . EOL);
                        $a->internalRedirect('cal/' . $nick);
                }
@@ -314,7 +314,7 @@ function cal_content(App $a)
 
                        // If it the own calendar return to the events page
                        // otherwise to the profile calendar page
-                       if (local_user() === intval($owner_uid)) {
+                       if (local_user() === $owner_uid) {
                                $return_path = "events";
                        } else {
                                $return_path = "cal/" . $nick;
index 5a477c3bce4a468145cd829eb6b476dd2694b517..1ccfecdefe2acffeb5318713255b24a797880885 100644 (file)
@@ -149,7 +149,7 @@ function photos_post(App $a)
        $can_post  = false;
        $visitor   = 0;
 
-       $page_owner_uid = $a->data['user']['uid'];
+       $page_owner_uid = intval($a->data['user']['uid']);
        $community_page = $a->data['user']['page-flags'] == User::PAGE_FLAGS_COMMUNITY;
 
        if (local_user() && (local_user() == $page_owner_uid)) {
index 58ef856f3d7cc5b02d5228ff872bd2d151dabf97..0aa3e87cb0446452b79d334916e9c9da8e4b0a3d 100644 (file)
@@ -20,7 +20,7 @@ class Feature
         * @return boolean
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function isEnabled($uid, $feature)
+       public static function isEnabled(int $uid, $feature)
        {
                $x = Config::get('feature_lock', $feature, false);
 
index dcfc1d0e3d95da631db6899dc781c10eff9f017c..e8b08d42781e22f9250ebf921db932650c850592 100644 (file)
@@ -297,11 +297,13 @@ class Widget
        {
                $a = \get_app();
 
-               if (!Feature::isEnabled($a->profile['profile_uid'], 'categories')) {
+               $uid = intval($a->profile['profile_uid']);
+
+               if (!Feature::isEnabled($uid, 'categories')) {
                        return '';
                }
 
-               $saved = PConfig::get($a->profile['profile_uid'], 'system', 'filetags');
+               $saved = PConfig::get($uid, 'system', 'filetags');
                if (!strlen($saved)) {
                        return;
                }
@@ -420,17 +422,19 @@ class Widget
        {
                $a = \get_app();
 
-               if (!$a->profile['profile_uid'] || !$a->profile['url']) {
+               $uid = intval($a->profile['profile_uid']);
+
+               if (!$uid || !$a->profile['url']) {
                        return '';
                }
 
-               if (Feature::isEnabled($a->profile['profile_uid'], 'tagadelic')) {
+               if (Feature::isEnabled($uid, 'tagadelic')) {
                        $owner_id = Contact::getIdForURL($a->profile['url'], 0, true);
 
                        if (!$owner_id) {
                                return '';
                        }
-                       return Widget\TagCloud::getHTML($a->profile['profile_uid'], $limit, $owner_id, 'wall');
+                       return Widget\TagCloud::getHTML($uid, $limit, $owner_id, 'wall');
                }
 
                return '';
index 84482f638b90e8a7be334712749ec5505e5b147a..829d267d8fd5ea9ee5668efade3a72cef6fdd936 100644 (file)
@@ -30,7 +30,7 @@ class CalendarExport
                        return;
                }
 
-               $owner_uid = $a->data['user']['uid'];
+               $owner_uid = intval($a->data['user']['uid']);
 
                // The permission testing is a little bit tricky because we have to respect many cases.
 
index 82fcbe110c31b0a499677403fa92f11f55858ca7..fb5c9d1a9845dcc8dfb2dda7db27edd3c0eeea35 100644 (file)
@@ -32,10 +32,10 @@ class JitPConfiguration extends PConfiguration
         * {@inheritDoc}
         *
         */
-       public function load($uid, string $cat = 'config')
+       public function load(int $uid, string $cat = 'config')
        {
                // If not connected or no uid, do nothing
-               if (!is_int($uid) || !$this->configModel->isConnected()) {
+               if (!$uid || !$this->configModel->isConnected()) {
                        return;
                }
 
@@ -54,9 +54,9 @@ class JitPConfiguration extends PConfiguration
        /**
         * {@inheritDoc}
         */
-       public function get($uid, string $cat, string $key, $default_value = null, bool $refresh = false)
+       public function get(int $uid, string $cat, string $key, $default_value = null, bool $refresh = false)
        {
-               if (!is_int($uid)) {
+               if (!$uid) {
                        return $default_value;
                }
 
@@ -84,9 +84,9 @@ class JitPConfiguration extends PConfiguration
        /**
         * {@inheritDoc}
         */
-       public function set($uid, string $cat, string $key, $value)
+       public function set(int $uid, string $cat, string $key, $value)
        {
-               if (!is_int($uid)) {
+               if (!$uid) {
                        return false;
                }
 
@@ -108,9 +108,9 @@ class JitPConfiguration extends PConfiguration
        /**
         * {@inheritDoc}
         */
-       public function delete($uid, string $cat, string $key)
+       public function delete(int $uid, string $cat, string $key)
        {
-               if (!is_int($uid)) {
+               if (!$uid) {
                        return false;
                }
 
index a00da819a44a6346f22a119a6e0a2bd4682b9359..badec9dfca094d5a60057065a919fc07ab9bb89e 100644 (file)
@@ -46,16 +46,16 @@ abstract class PConfiguration
        /**
         * Loads all configuration values of a user's config family into a cached storage.
         *
-        * All configuration values of the given user are stored with the $uid in
-        * the cache ( @param int $uid The user_id
+        * All configuration values of the given user are stored with the $uid in the cache
         *
+        * @param int $uid The user_id
         * @param string $cat The category of the configuration value
         *
         * @return void
         * @see PConfigCache )
         *
         */
-       abstract public function load($uid, string $cat = 'config');
+       abstract public function load(int $uid, string $cat = 'config');
 
        /**
         * Get a particular user's config variable given the category name
@@ -73,7 +73,7 @@ abstract class PConfiguration
         *
         * @return mixed Stored value or null if it does not exist
         */
-       abstract public function get($uid, string $cat, string $key, $default_value = null, bool $refresh = false);
+       abstract public function get(int $uid, string $cat, string $key, $default_value = null, bool $refresh = false);
 
        /**
         * Sets a configuration value for a user
@@ -90,7 +90,7 @@ abstract class PConfiguration
         *
         * @return bool Operation success
         */
-       abstract public function set($uid, string $cat, string $key, $value);
+       abstract public function set(int $uid, string $cat, string $key, $value);
 
        /**
         * Deletes the given key from the users's configuration.
@@ -105,5 +105,5 @@ abstract class PConfiguration
         *
         * @return bool
         */
-       abstract public function delete($uid, string $cat, string $key);
+       abstract public function delete(int $uid, string $cat, string $key);
 }
index dd1a72bafd7d698057adf6f4e8683aea7bfa0ad6..975a15c50fb19a8c69f56c8685799f4bb6a301a0 100644 (file)
@@ -31,10 +31,10 @@ class PreloadPConfiguration extends PConfiguration
         * This loads all config values everytime load is called
         *
         */
-       public function load($uid, string $cat = 'config')
+       public function load(int $uid, string $cat = 'config')
        {
                // Don't load the whole configuration twice or with invalid uid
-               if (!is_int($uid) || !empty($this->config_loaded[$uid])) {
+               if (!$uid || !empty($this->config_loaded[$uid])) {
                        return;
                }
 
@@ -53,9 +53,9 @@ class PreloadPConfiguration extends PConfiguration
        /**
         * {@inheritDoc}
         */
-       public function get($uid, string $cat, string $key, $default_value = null, bool $refresh = false)
+       public function get(int $uid, string $cat, string $key, $default_value = null, bool $refresh = false)
        {
-               if (!is_int($uid)) {
+               if (!$uid) {
                        return $default_value;
                }
 
@@ -79,9 +79,9 @@ class PreloadPConfiguration extends PConfiguration
        /**
         * {@inheritDoc}
         */
-       public function set($uid, string $cat, string $key, $value)
+       public function set(int $uid, string $cat, string $key, $value)
        {
-               if (!is_int($uid)) {
+               if (!$uid) {
                        return false;
                }
 
@@ -105,9 +105,9 @@ class PreloadPConfiguration extends PConfiguration
        /**
         * {@inheritDoc}
         */
-       public function delete($uid, string $cat, string $key)
+       public function delete(int $uid, string $cat, string $key)
        {
-               if (!is_int($uid)) {
+               if (!$uid) {
                        return false;
                }
 
index da4c802937d301271f3d80497bb454a50b5a2983..49e34720f55aa47785b900214a6e5fe5ce37808e 100644 (file)
@@ -35,12 +35,12 @@ class PConfig
        /**
         * @brief Loads all configuration values of a user's config family into a cached storage.
         *
-        * @param string $uid The user_id
+        * @param int    $uid The user_id
         * @param string $cat The category of the configuration value
         *
         * @return void
         */
-       public static function load($uid, $cat)
+       public static function load(int $uid, string $cat)
        {
                self::$config->load($uid, $cat);
        }
@@ -49,7 +49,7 @@ class PConfig
         * @brief Get a particular user's config variable given the category name
         * ($cat) and a key.
         *
-        * @param string  $uid           The user_id
+        * @param int     $uid           The user_id
         * @param string  $cat           The category of the configuration value
         * @param string  $key           The configuration key to query
         * @param mixed   $default_value optional, The value to return if key is not set (default: null)
@@ -57,7 +57,7 @@ class PConfig
         *
         * @return mixed Stored value or null if it does not exist
         */
-       public static function get($uid, $cat, $key, $default_value = null, $refresh = false)
+       public static function get(int $uid, string $cat, string $key, $default_value = null, bool $refresh = false)
        {
                return self::$config->get($uid, $cat, $key, $default_value, $refresh);
        }
@@ -65,14 +65,14 @@ class PConfig
        /**
         * @brief Sets a configuration value for a user
         *
-        * @param string $uid    The user_id
+        * @param int    $uid    The user_id
         * @param string $cat    The category of the configuration value
         * @param string $key    The configuration key to set
         * @param mixed  $value  The value to store
         *
         * @return bool Operation success
         */
-       public static function set($uid, $cat, $key, $value)
+       public static function set(int $uid, string $cat, string $key, $value)
        {
                return self::$config->set($uid, $cat, $key, $value);
        }
@@ -80,13 +80,13 @@ class PConfig
        /**
         * @brief Deletes the given key from the users's configuration.
         *
-        * @param string $uid The user_id
+        * @param int    $uid The user_id
         * @param string $cat The category of the configuration value
         * @param string $key The configuration key to delete
         *
         * @return bool
         */
-       public static function delete($uid, $cat, $key)
+       public static function delete(int $uid, string $cat, string $key)
        {
                return self::$config->delete($uid, $cat, $key);
        }
index 10bd3a1d7542843aaad239c512c4e892bba45b80..5a2adea9dba85cf43dcb8c8bcc1d23169199f35c 100644 (file)
@@ -717,7 +717,7 @@ class Profile
 
        public static function getAdvanced(App $a)
        {
-               $uid = $a->profile['uid'];
+               $uid = intval($a->profile['uid']);
 
                if ($a->profile['name']) {
                        $tpl = Renderer::getMarkupTemplate('profile_advanced.tpl');
index 4eafb43b3ddcacf22476d2616bb9d7cafe7f0d71..8ceea93ff46dfc94b950b247b94b3983c23675d3 100644 (file)
@@ -116,15 +116,6 @@ class JitPConfigurationTest extends PConfigurationTest
                parent::testGetWithRefresh($uid, $data);
        }
 
-       public function testGetWrongWithoutDB()
-       {
-               $this->configModel->shouldReceive('isConnected')
-                                 ->andReturn(false)
-                                 ->times(3);
-
-               parent::testGetWrongWithoutDB();
-       }
-
        /**
         * @dataProvider dataTests
         */
@@ -145,7 +136,7 @@ class JitPConfigurationTest extends PConfigurationTest
 
                // mocking one get without result
                $this->configModel->shouldReceive('get')
-                                 ->with(0, 'test', 'it')
+                                 ->with(42, 'test', 'it')
                                  ->andReturn(null)
                                  ->once();
 
index 1d5e9c0a17e2b0c15e9cb8f7046fc809ebb1500e..40c6970a5cb9bc261e3b1ffff7a1bf089e853ade 100644 (file)
@@ -365,22 +365,24 @@ abstract class PConfigurationTest extends MockedTest
         */
        public function testDeleteWithDB()
        {
-               $this->configCache->load(0, ['test' => ['it' => 'now', 'quarter' => 'true']]);
+               $uid = 42;
+
+               $this->configCache->load($uid, ['test' => ['it' => 'now', 'quarter' => 'true']]);
 
                $this->configModel->shouldReceive('delete')
-                                 ->with(0, 'test', 'it')
+                                 ->with($uid, 'test', 'it')
                                  ->andReturn(false)
                                  ->once();
                $this->configModel->shouldReceive('delete')
-                                 ->with(0, 'test', 'second')
+                                 ->with($uid, 'test', 'second')
                                  ->andReturn(true)
                                  ->once();
                $this->configModel->shouldReceive('delete')
-                                 ->with(0, 'test', 'third')
+                                 ->with($uid, 'test', 'third')
                                  ->andReturn(false)
                                  ->once();
                $this->configModel->shouldReceive('delete')
-                                 ->with(0, 'test', 'quarter')
+                                 ->with($uid, 'test', 'quarter')
                                  ->andReturn(true)
                                  ->once();
 
@@ -388,19 +390,19 @@ abstract class PConfigurationTest extends MockedTest
                $this->assertInstanceOf(PConfigCache::class, $this->testedConfig->getCache());
 
                // directly set the value to the cache
-               $this->testedConfig->getCache()->set(0, 'test', 'it', 'now');
+               $this->testedConfig->getCache()->set($uid, 'test', 'it', 'now');
 
-               $this->assertEquals('now', $this->testedConfig->get(0, 'test', 'it'));
-               $this->assertEquals('now', $this->testedConfig->getCache()->get(0, 'test', 'it'));
+               $this->assertEquals('now', $this->testedConfig->get($uid, 'test', 'it'));
+               $this->assertEquals('now', $this->testedConfig->getCache()->get($uid, 'test', 'it'));
 
                // delete from cache only
-               $this->assertTrue($this->testedConfig->delete(0, 'test', 'it'));
+               $this->assertTrue($this->testedConfig->delete($uid, 'test', 'it'));
                // delete from db only
-               $this->assertTrue($this->testedConfig->delete(0, 'test', 'second'));
+               $this->assertTrue($this->testedConfig->delete($uid, 'test', 'second'));
                // no delete
-               $this->assertFalse($this->testedConfig->delete(0, 'test', 'third'));
+               $this->assertFalse($this->testedConfig->delete($uid, 'test', 'third'));
                // delete both
-               $this->assertTrue($this->testedConfig->delete(0, 'test', 'quarter'));
+               $this->assertTrue($this->testedConfig->delete($uid, 'test', 'quarter'));
 
                $this->assertEmpty($this->testedConfig->getCache()->getAll());
        }
@@ -460,7 +462,7 @@ abstract class PConfigurationTest extends MockedTest
        public function testInvalidUid()
        {
                // bad UID!
-               $uid = null;
+               $uid = 0;
 
                $this->testedConfig = $this->getInstance();
 
index ca916d4404099e94aaa39779dc6288fb4b060be1..270a7a2e0bf4af79712fb0254840c9e1292f94c8 100644 (file)
@@ -108,16 +108,6 @@ class PreloadPConfigurationTest extends PConfigurationTest
                parent::testGetWithRefresh($uid, $data);
        }
 
-
-       public function testGetWrongWithoutDB()
-       {
-               $this->configModel->shouldReceive('isConnected')
-                                 ->andReturn(false)
-                                 ->times(3);
-
-               parent::testGetWrongWithoutDB();
-       }
-
        /**
         * @dataProvider dataTests
         */
@@ -138,7 +128,7 @@ class PreloadPConfigurationTest extends PConfigurationTest
 
                // constructor loading
                $this->configModel->shouldReceive('load')
-                                 ->with(0)
+                                 ->with(42)
                                  ->andReturn(['config' => []])
                                  ->once();