X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FUser.php;h=18da3e956046c2d79968de025e8a01138981aae8;hb=0a45bdd3b71ec0f8744abb3830858a91a4bca146;hp=11d55e7f7e26529fa507f8ddacd2b5a60124b385;hpb=4eec2804de78a6aeb30f843b3b295a563f78a3fe;p=friendica.git diff --git a/src/Model/User.php b/src/Model/User.php index 11d55e7f7e..18da3e9560 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -88,7 +88,7 @@ class User * ACCOUNT_TYPE_NEWS - the account is a news reflector * Associated page type: PAGE_FLAGS_SOAPBOX * - * ACCOUNT_TYPE_COMMUNITY - the account is community forum + * ACCOUNT_TYPE_COMMUNITY - the account is community group * Associated page types: PAGE_COMMUNITY, PAGE_FLAGS_PRVGROUP * * ACCOUNT_TYPE_RELAY - the account is a relay @@ -132,6 +132,17 @@ class User return null; } + /** + * Get the Uri-Id of the system account + * + * @return integer + */ + public static function getSystemUriId(): int + { + $system = self::getSystemAccount(); + return $system['uri-id'] ?? 0; + } + /** * Fetch the system account * @@ -167,7 +178,7 @@ class User $system['region'] = ''; $system['postal-code'] = ''; $system['country-name'] = ''; - $system['homepage'] = DI::baseUrl(); + $system['homepage'] = (string)DI::baseUrl(); $system['dob'] = '0000-00-00'; // Ensure that the user contains data @@ -483,23 +494,41 @@ class User } /** - * Returns the default group for a given user and network + * Returns the default circle for a given user * * @param int $uid User id * - * @return int group id + * @return int circle id * @throws Exception */ - public static function getDefaultGroup(int $uid): int + public static function getDefaultCircle(int $uid): int { $user = DBA::selectFirst('user', ['def_gid'], ['uid' => $uid]); if (DBA::isResult($user)) { - $default_group = $user["def_gid"]; + $default_circle = $user['def_gid']; } else { - $default_group = 0; + $default_circle = 0; } - return $default_group; + return $default_circle; + } + + /** + * Returns the default circle for groups for a given user + * + * @param int $uid User id + * + * @return int circle id + * @throws Exception + */ + public static function getDefaultGroupCircle(int $uid): int + { + $default_circle = DI::pConfig()->get($uid, 'system', 'default-group-gid'); + if (empty($default_circle)) { + $default_circle = self::getDefaultCircle($uid); + } + + return $default_circle; } /** @@ -675,6 +704,10 @@ class User */ public static function updateLastActivity(int $uid) { + if (!$uid) { + return; + } + $user = User::getById($uid, ['last-activity']); if (empty($user)) { return; @@ -847,6 +880,20 @@ class User ]); } + /** + * Returns if the given uid is valid and a moderator + * + * @param int $uid + * + * @return bool + * @throws Exception + */ + public static function isModerator(int $uid): bool + { + // @todo Replace with a moderator check in the future + return self::isSiteAdmin($uid); + } + /** * Checks if a nickname is in the list of the forbidden nicknames * @@ -1188,13 +1235,13 @@ class User throw new Exception(DI::l10n()->t('An error occurred creating your self contact. Please try again.')); } - // Create a group with no members. This allows somebody to use it - // right away as a default group for new contacts. - $def_gid = Group::create($uid, DI::l10n()->t('Friends')); + // Create a circle with no members. This allows somebody to use it + // right away as a default circle for new contacts. + $def_gid = Circle::create($uid, DI::l10n()->t('Friends')); if (!$def_gid) { DBA::delete('user', ['uid' => $uid]); - throw new Exception(DI::l10n()->t('An error occurred creating your default contact group. Please try again.')); + throw new Exception(DI::l10n()->t('An error occurred creating your default contact circle. Please try again.')); } $fields = ['def_gid' => $def_gid]; @@ -1204,6 +1251,11 @@ class User DBA::update('user', $fields, ['uid' => $uid]); + $def_gid_groups = Circle::create($uid, DI::l10n()->t('Groups')); + if ($def_gid_groups) { + DI::pConfig()->set($uid, 'system', 'default-group-gid', $def_gid_groups); + } + // if we have no OpenID photo try to look up an avatar if (!strlen($photo)) { $photo = Network::lookupAvatarByEmail($email); @@ -1640,7 +1692,7 @@ class User */ public static function identities(int $uid): array { - if (empty($uid)) { + if (!$uid) { return []; } @@ -1651,7 +1703,7 @@ class User return $identities; } - if ($user['parent-uid'] == 0) { + if (!$user['parent-uid']) { // First add our own entry $identities = [[ 'uid' => $user['uid'], @@ -1712,7 +1764,7 @@ class User */ public static function hasIdentities(int $uid): bool { - if (empty($uid)) { + if (!$uid) { return false; } @@ -1721,7 +1773,7 @@ class User return false; } - if ($user['parent-uid'] != 0) { + if ($user['parent-uid']) { return true; } @@ -1848,8 +1900,8 @@ class User { $condition = [ 'email' => self::getAdminEmailList(), - 'parent-uid' => 0, - 'blocked' => 0, + 'parent-uid' => null, + 'blocked' => false, 'verified' => true, 'account_removed' => false, 'account_expired' => false,