Ejemplo n.º 1
0
 /**
  * [GROUP_ID]-group@[MAIL_HOST_NAME] (Example: "*****@*****.**")
  * @param $gid
  */
 public function onPreCreateGroup($gid)
 {
     if (!empty($gid)) {
         $prefix = $this->configurator->get('group_prefix');
         $email = $this->encodeUidToEmail($gid . $prefix);
         $result = $this->mtaConnector->insertVirtualUser($email, 'pass' . strtolower($gid));
         if (!$result) {
             $errorMessage = 'Error adding user data in the MTA database, ';
             if ($result === false) {
                 $errorMessage .= 'the domain specified in the configuration can not be found';
             } else {
                 $errorMessage .= 'possible SQL query error';
             }
             Helper::mailParserLogerError($errorMessage);
         } else {
             Helper::mailParserLoger('Added new virtual user: ' . $email);
         }
     }
 }
Ejemplo n.º 2
0
 private function parserFileHandler($files, $userForSharing)
 {
     $saveFiles = ['file_fileid' => [], 'shared_with' => []];
     if ($this->loginVirtualUser()) {
         $innerDir = date("Ymd", time());
         foreach ($files as $file) {
             if (!\OC\Files\Filesystem::is_dir('/Talks')) {
                 \OC\Files\Filesystem::mkdir('/Talks');
             }
             if (!\OC\Files\Filesystem::is_dir('/Talks/' . $innerDir)) {
                 \OC\Files\Filesystem::mkdir('/Talks/' . $innerDir);
             }
             if (is_file($file['tmpfile'])) {
                 try {
                     chmod($file['tmpfile'], 0755);
                 } catch (\Exception $e) {
                 }
                 $filePathTo = '/Talks/' . $innerDir . '/' . $file['filename'];
                 $fileInfoExist = \OC\Files\Filesystem::getFileInfo($filePathTo, false);
                 if ($fileInfoExist) {
                     $filePathTo = '/Talks/' . $innerDir . '/' . time() . '-' . $file['filename'];
                 }
                 $saved = \OC\Files\Filesystem::file_put_contents($filePathTo, file_get_contents($file['tmpfile']));
                 if ($saved) {
                     unlink($file['tmpfile']);
                     $saveFilesInfo = \OC\Files\Filesystem::getFileInfo($filePathTo);
                     Helper::mailParserLoger('FILES INFO: ' . json_encode($saveFilesInfo));
                     $saveFiles['file_fileid'][] = $saveFilesInfo['fileid'];
                     $saveFiles['shared_with'][] = $this->shareFileToUsers($saveFilesInfo, $userForSharing);
                     //todo mails sands
                 }
             }
         }
     }
     return $saveFiles;
 }
Ejemplo n.º 3
0
 public function syncVirtualAliasesWithUsers(array $users, array $groups)
 {
     $deleteVirtualUsersIds = [];
     $virtualUsers = $this->mtaConnector->getCurrentVirtualUsers(false);
     $groupPrefix = $this->configurator->get('group_prefix');
     $groupPrefixLength = strlen($groupPrefix);
     // delete fake user
     unset($users[array_search($this->configurator->get('collab_user'), $users)]);
     foreach ($virtualUsers as $virtualUser) {
         $vUid = explode('@', $virtualUser['email'])[0];
         // -group
         if (strlen($vUid) > $groupPrefixLength && substr($vUid, -$groupPrefixLength) === $groupPrefix) {
             $gvUid = substr($vUid, 0, -$groupPrefixLength);
             if (!in_array($gvUid, $groups)) {
                 $deleteVirtualUsersIds[] = $virtualUser['id'];
             } else {
                 unset($groups[array_search($gvUid, $groups)]);
             }
         } else {
             if (!in_array($vUid, $users)) {
                 $deleteVirtualUsersIds[] = $virtualUser['id'];
             } else {
                 unset($users[array_search($vUid, $users)]);
             }
         }
     }
     // Delete virtual_users . var_dump('Delete: ', $deleteVirtualUsersIds);
     if (!empty($deleteVirtualUsersIds)) {
         $deleteVirtualUsersIdsStr = join(',', $deleteVirtualUsersIds);
         $result = $this->mtaConnector->deleteVirtualUserIn($deleteVirtualUsersIdsStr);
         if ($result) {
             Helper::mailParserLoger('Deleted virtual user id: ' . $deleteVirtualUsersIdsStr);
         }
     }
     // Add new virtual_users Users . var_dump('Add users:', $users);
     if (!empty($users)) {
         foreach ($users as $user) {
             $this->onPreCreateUser($user, Helper::randomString(8));
         }
     }
     // Add new virtual_users Groups . var_dump('Add groups:', $groups);
     if (!empty($groups)) {
         foreach ($groups as $group) {
             $this->onPreCreateGroup($group);
         }
     }
 }