/** * @param VCard $vCard * @param IUser $user * @return bool */ public function updateCard(VCard $vCard, IUser $user) { $uid = $user->getUID(); $displayName = $user->getDisplayName(); $displayName = empty($displayName) ? $uid : $displayName; $emailAddress = $user->getEMailAddress(); $cloudId = $user->getCloudId(); $image = $user->getAvatarImage(-1); $updated = false; if ($this->propertyNeedsUpdate($vCard, 'FN', $displayName)) { $vCard->FN = new Text($vCard, 'FN', $displayName); unset($vCard->N); $vCard->add(new Text($vCard, 'N', $this->splitFullName($displayName))); $updated = true; } if ($this->propertyNeedsUpdate($vCard, 'EMAIL', $emailAddress)) { $vCard->EMAIL = new Text($vCard, 'EMAIL', $emailAddress); $updated = true; } if ($this->propertyNeedsUpdate($vCard, 'CLOUD', $cloudId)) { $vCard->CLOUD = new Text($vCard, 'CLOUD', $cloudId); $updated = true; } if ($this->propertyNeedsUpdate($vCard, 'PHOTO', $image)) { $vCard->add('PHOTO', $image->data(), ['ENCODING' => 'b', 'TYPE' => $image->mimeType()]); $updated = true; } if (empty($emailAddress) && !is_null($vCard->EMAIL)) { unset($vCard->EMAIL); $updated = true; } if (empty($cloudId) && !is_null($vCard->CLOUD)) { unset($vCard->CLOUD); $updated = true; } if (empty($image) && !is_null($vCard->PHOTO)) { unset($vCard->PHOTO); $updated = true; } return $updated; }
/** * @param IUser $user * @param array $userGroups * @return array */ private function formatUserForIndex(IUser $user, array $userGroups = null) { return array('name' => $user->getUID(), 'displayname' => $user->getDisplayName(), 'groups' => empty($userGroups) ? $this->groupManager->getUserGroupIds($user) : $userGroups, 'subadmin' => \OC_SubAdmin::getSubAdminsGroups($user->getUID()), 'quota' => $this->config->getUserValue($user->getUID(), 'files', 'quota', 'default'), 'storageLocation' => $user->getHome(), 'lastLogin' => $user->getLastLogin(), 'backend' => $user->getBackendClassName(), 'email' => $this->config->getUserValue($user->getUID(), 'settings', 'email', '')); }
/** * @param IUser $user * @param array $userGroups * @return array */ private function formatUserForIndex(IUser $user, array $userGroups = null) { // TODO: eliminate this encryption specific code below and somehow // hook in additional user info from other apps // recovery isn't possible if admin or user has it disabled and encryption // is enabled - so we eliminate the else paths in the conditional tree // below $restorePossible = false; if ($this->isEncryptionAppEnabled) { if ($this->isRestoreEnabled) { // check for the users recovery setting $recoveryMode = $this->config->getUserValue($user->getUID(), 'encryption', 'recoveryEnabled', '0'); // method call inside empty is possible with PHP 5.5+ $recoveryModeEnabled = !empty($recoveryMode); if ($recoveryModeEnabled) { // user also has recovery mode enabled $restorePossible = true; } } } else { // recovery is possible if encryption is disabled (plain files are // available) $restorePossible = true; } return ['name' => $user->getUID(), 'displayname' => $user->getDisplayName(), 'groups' => empty($userGroups) ? $this->groupManager->getUserGroupIds($user) : $userGroups, 'subadmin' => $this->subAdminFactory->getSubAdminsOfGroups($user->getUID()), 'quota' => $this->config->getUserValue($user->getUID(), 'files', 'quota', 'default'), 'storageLocation' => $user->getHome(), 'lastLogin' => $user->getLastLogin() * 1000, 'backend' => $user->getBackendClassName(), 'email' => $this->config->getUserValue($user->getUID(), 'settings', 'email', ''), 'isRestoreDisabled' => !$restorePossible]; }
/** * @param IUser $user * @return array */ protected function userToPrincipal($user) { $userId = $user->getUID(); $displayName = $user->getDisplayName(); $principal = ['uri' => $this->principalPrefix . '/' . $userId, '{DAV:}displayname' => is_null($displayName) ? $userId : $displayName]; $email = $user->getEMailAddress(); if (!empty($email)) { $principal['{http://sabredav.org/ns}email-address'] = $email; return $principal; } return $principal; }
/** * @param IUser $user * @return array */ protected function userToPrincipal($user) { $principal = ['uri' => 'principals/users/' . $user->getUID(), '{DAV:}displayname' => $user->getDisplayName()]; return $principal; }
/** * @param VCard $vCard * @param IUser $user * @return bool */ public function updateCard(VCard $vCard, IUser $user) { $uid = $user->getUID(); $displayName = $user->getDisplayName(); $displayName = empty($displayName) ? $uid : $displayName; $emailAddress = $user->getEMailAddress(); $cloudId = $user->getCloudId(); $image = $this->getAvatarImage($user); $groups = \OC::$server->getGroupManager()->getUserGroups($user); $updated = false; if ($this->propertyNeedsUpdate($vCard, 'FN', $displayName)) { $vCard->FN = new Text($vCard, 'FN', $displayName); unset($vCard->N); $vCard->add(new Text($vCard, 'N', $this->splitFullName($displayName))); $updated = true; } if ($this->propertyNeedsUpdate($vCard, 'EMAIL', $emailAddress)) { $vCard->EMAIL = new Text($vCard, 'EMAIL', $emailAddress); $updated = true; } if ($this->propertyNeedsUpdate($vCard, 'CLOUD', $cloudId)) { $vCard->CLOUD = new Text($vCard, 'CLOUD', $cloudId); $updated = true; } if ($this->propertyNeedsUpdate($vCard, 'PHOTO', $image)) { $vCard->add('PHOTO', $image->data(), ['ENCODING' => 'b', 'TYPE' => $image->mimeType()]); $updated = true; } if (empty($emailAddress) && !is_null($vCard->EMAIL)) { unset($vCard->EMAIL); $updated = true; } if (empty($cloudId) && !is_null($vCard->CLOUD)) { unset($vCard->CLOUD); $updated = true; } if (empty($image) && !is_null($vCard->PHOTO)) { unset($vCard->PHOTO); $updated = true; } /** * Sabre\VObject\Property\Text $categories */ $categoriesProperty = $vCard->CATEGORIES; if (method_exists($categoriesProperty, 'count')) { $categoriesCount = $categoriesProperty->count(); $categories = []; for ($i = 0; $i < $categoriesCount; $i++) { $categories[] = $categoriesProperty->getValue(); $categoriesProperty->getIterator()->next(); $categoriesProperty = $categoriesProperty->getIterator()->current(); } // var_dump(array_keys($groups),$categories); // var_dump(array_diff(array_keys($groups), $categories)); // exit; if (count(array_keys($groups)) != count($categories) || !empty(array_diff(array_keys($groups), $categories))) { unset($vCard->CATEGORIES); $updated = true; } } else { if ($groups) { $updated = true; } } return $updated; }