$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'],
'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;
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
*