]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/User.php
Meaningful notification message
[friendica.git] / src / Model / User.php
index 14f40662b2ea162dcf36689cb579cd731e9ae17b..49423ce9ef74792b17423aabd52380ef7ec5006e 100644 (file)
@@ -146,10 +146,21 @@ class User
                $system['sprvkey'] = $system['uprvkey'] = $system['prvkey'];
                $system['spubkey'] = $system['upubkey'] = $system['pubkey'];
                $system['nickname'] = $system['nick'];
+               $system['page-flags'] = User::PAGE_FLAGS_SOAPBOX;
+               $system['account-type'] = $system['contact-type'];
+               $system['guid'] = '';
+               $system['nickname'] = $system['nick'];
+               $system['pubkey'] = $system['pubkey'];
+               $system['locality'] = '';
+               $system['region'] = '';
+               $system['country-name'] = '';
+               $system['net-publish'] = false;
+               $system['picdate'] = '';
+               $system['theme'] = '';
 
                // Ensure that the user contains data
-               $user = DBA::selectFirst('user', ['prvkey'], ['uid' => 0]);
-               if (empty($user['prvkey'])) {
+               $user = DBA::selectFirst('user', ['prvkey', 'guid'], ['uid' => 0]);
+               if (empty($user['prvkey']) || empty($user['guid'])) {
                        $fields = [
                                'username' => $system['name'],
                                'nickname' => $system['nick'],
@@ -158,12 +169,17 @@ class User
                                'prvkey' => $system['prvkey'],
                                'spubkey' => $system['spubkey'],
                                'sprvkey' => $system['sprvkey'],
+                               'guid' => System::createUUID(),
                                'verified' => true,
                                'page-flags' => User::PAGE_FLAGS_SOAPBOX,
                                'account-type' => User::ACCOUNT_TYPE_RELAY,
                        ];
 
                        DBA::update('user', $fields, ['uid' => 0]);
+
+                       $system['guid'] = $fields['guid'];
+               } else {
+                       $system['guid'] = $user['guid'];
                }
 
                return $system;
@@ -412,7 +428,7 @@ class User
 
                // Check for correct url and normalised nurl
                $url = DI::baseUrl() . '/profile/' . $owner['nickname'];
-               $repair = ($owner['url'] != $url) || ($owner['nurl'] != Strings::normaliseLink($owner['url']));
+               $repair = empty($owner['network']) || ($owner['url'] != $url) || ($owner['nurl'] != Strings::normaliseLink($owner['url']));
 
                if (!$repair) {
                        // Check if "addr" is present and correct
@@ -467,20 +483,11 @@ class User
         */
        public static function getDefaultGroup($uid, $network = '')
        {
-               $default_group = 0;
-
-               if ($network == Protocol::OSTATUS) {
-                       $default_group = DI::pConfig()->get($uid, "ostatus", "default_group");
-               }
-
-               if ($default_group != 0) {
-                       return $default_group;
-               }
-
                $user = DBA::selectFirst('user', ['def_gid'], ['uid' => $uid]);
-
                if (DBA::isResult($user)) {
                        $default_group = $user["def_gid"];
+               } else {
+                       $default_group = 0;
                }
 
                return $default_group;
@@ -1569,6 +1576,38 @@ class User
                return $identities;
        }
 
+       /**
+        * Check if the given user id has delegations or is delegated
+        *
+        * @param int $uid 
+        * @return bool 
+        */
+       public static function hasIdentities(int $uid):bool
+       {
+               if (empty($uid)) {
+                       return false;
+               }
+
+               $user = DBA::selectFirst('user', ['parent-uid'], ['uid' => $uid, 'account_removed' => false]);
+               if (!DBA::isResult($user)) {
+                       return false;
+               }
+
+               if ($user['parent-uid'] != 0) {
+                       return true;
+               }
+
+               if (DBA::exists('user', ['parent-uid' => $uid, 'account_removed' => false])) {
+                       return true;
+               }
+
+               if (DBA::exists('manage', ['uid' => $uid])) {
+                       return true;
+               }
+
+               return false;
+       }
+
        /**
         * Returns statistical information about the current users of this node
         *