示例#1
0
文件: converter.php 项目: evanjt/core
 /**
  * @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;
 }
示例#2
0
 /**
  * @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', ''));
 }
示例#3
0
 /**
  * @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];
 }
示例#4
0
 /**
  * @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;
 }
示例#6
0
 /**
  * @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;
 }