public function uploadTmpAvatar($file)
 {
     if (isset($file)) {
         $lang = OW::getLanguage();
         if (!UTIL_File::validateImage($file['name'])) {
             return array('result' => false, 'error' => $lang->text('base', 'not_valid_image'));
         }
         if (!empty($file['error'])) {
             $message = BOL_FileService::getInstance()->getUploadErrorMessage($file['error']);
         }
         if (!empty($message)) {
             return array('result' => false, 'error' => $message);
         }
         $filesize = OW::getConfig()->getValue('base', 'avatar_max_upload_size');
         if (empty($file['size']) || $filesize * 1024 * 1024 < $file['size']) {
             $message = OW::getLanguage()->text('base', 'upload_file_max_upload_filesize_error');
             return array('result' => false, 'error' => $message);
         }
         $avatarService = BOL_AvatarService::getInstance();
         $key = $avatarService->getAvatarChangeSessionKey();
         $uploaded = $avatarService->uploadUserTempAvatar($key, $file['tmp_name']);
         if (!$uploaded) {
             return array('result' => false, 'error' => $lang->text('base', 'upload_avatar_faild'));
         }
         $url = $avatarService->getTempAvatarUrl($key, 3);
         return array('result' => true, 'url' => $url);
     }
     return array('result' => false);
 }
Beispiel #2
0
 /**
  * Returns an instance of class (singleton pattern implementation).
  *
  * @return BOL_FileService
  */
 public static function getInstance()
 {
     if (self::$classInstance === null) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
 /**
  * @param mixed $value
  * @return bool
  */
 public function isValid($value)
 {
     if (!$this->required) {
         return true;
     }
     $language = OW::getLanguage();
     $avatarService = BOL_AvatarService::getInstance();
     if (!is_writable(BOL_AvatarService::getInstance()->getAvatarsDir())) {
         $this->setErrorMessage($language->text('base', 'not_writable_avatar_dir'));
         return false;
     }
     if (empty($_FILES['userPhoto']['name'])) {
         return false;
     }
     if (!empty($_FILES['userPhoto']['error'])) {
         $this->setErrorMessage(BOL_FileService::getInstance()->getUploadErrorMessage($_FILES['userPhoto']['error']));
         return false;
     }
     return true;
 }
Beispiel #4
0
 public function __construct($url = null)
 {
     $userId = OW::getUser()->getId();
     $document = OW::getDocument();
     $plugin = OW::getPluginManager()->getPlugin('base');
     $document->addScript($plugin->getStaticJsUrl() . 'jQueryRotate.min.js');
     $document->addScript($plugin->getStaticJsUrl() . 'codemirror.min.js');
     $document->addScript($plugin->getStaticJsUrl() . 'upload.js');
     $document->addScriptDeclarationBeforeIncludes(UTIL_JsGenerator::composeJsString(';window.ajaxFileUploadParams = {};
             Object.defineProperties(ajaxFileUploadParams, {
                 actionUrl: {
                     value: {$url},
                     writable: false,
                     enumerable: true
                 },
                 maxFileSize: {
                     value: {$size},
                     writable: false,
                     enumerable: true
                 },
                 deleteAction: {
                     value: {$deleteAction},
                     writable: false,
                     enumerable: true
                 }
             });', array('url' => OW::getRouter()->urlForRoute('admin.ajax_upload'), 'size' => BOL_FileService::getInstance()->getUploadMaxFilesizeBytes(), 'deleteAction' => OW::getRouter()->urlForRoute('admin.ajax_upload_delete'))));
     $document->addOnloadScript(';window.ajaxFileUploader.init();');
     BOL_FileTemporaryService::getInstance()->deleteUserTemporaryFiles($userId);
     $form = new BASE_CLASS_AjaxUploadForm('user', $userId, $url);
     $this->addForm($form);
     $language = OW::getLanguage();
     $language->addKeyForJs('admin', 'not_all_photos_uploaded');
     $language->addKeyForJs('admin', 'size_limit');
     $language->addKeyForJs('admin', 'type_error');
     $language->addKeyForJs('admin', 'dnd_support');
     $language->addKeyForJs('admin', 'dnd_not_support');
     $language->addKeyForJs('admin', 'drop_here');
     $language->addKeyForJs('admin', 'please_wait');
     $language->addKeyForJs('admin', 'describe_photo');
     $language->addKeyForJs('admin', 'photo_upload_error');
 }
Beispiel #5
0
 public function __construct()
 {
     parent::__construct();
     $this->fileService = BOL_FileService::getInstance();
 }
Beispiel #6
0
 public function user()
 {
     if (!OW::getRequest()->isAjax()) {
         OW::getNavigation()->activateMenuItem(OW_Navigation::ADMIN_SETTINGS, 'admin', 'sidebar_menu_item_user_settings');
     }
     $language = OW::getLanguage();
     $menu = $this->getUsersMenu();
     $menu->getElement('general')->setActive(true);
     $this->addComponent('menu', $menu);
     $avatarService = BOL_AvatarService::getInstance();
     if (isset($_GET['del-avatar']) && in_array($_GET['del-avatar'], array(1, 2))) {
         $del = $avatarService->deleteCustomDefaultAvatar((int) $_GET['del-avatar']);
         if ($del) {
             OW::getFeedback()->info($language->text('admin', 'default_avatar_deleted'));
         }
         $this->redirect(OW::getRouter()->urlForRoute('admin_settings_user'));
     }
     $uploadMaxFilesize = (double) ini_get("upload_max_filesize");
     $postMaxSize = (double) ini_get("post_max_size");
     $maxUploadMaxFilesize = BOL_FileService::getInstance()->getUploadMaxFilesize();
     $this->assign('maxUploadMaxFilesize', $maxUploadMaxFilesize);
     $userSettingsForm = new UserSettingsForm($maxUploadMaxFilesize);
     $this->addForm($userSettingsForm);
     $conf = OW::getConfig();
     $avatarSize = $conf->getValue('base', 'avatar_size');
     $bigAvatarSize = $conf->getValue('base', 'avatar_big_size');
     $avatarUploadSize = $conf->getValue('base', 'avatar_max_upload_size');
     $userSettingsForm->getElement('avatar_max_upload_size')->setValue((double) $avatarUploadSize);
     $userSettingsForm->getElement('avatarSize')->setValue($avatarSize);
     $userSettingsForm->getElement('bigAvatarSize')->setValue($bigAvatarSize);
     $userSettingsForm->getElement('displayName')->setValue($conf->getValue('base', 'display_name_question'));
     $this->assign('displayConfirmEmail', !defined('OW_PLUGIN_XP'));
     if (OW::getRequest()->isPost() && $userSettingsForm->isValid($_POST)) {
         if (!empty($_FILES['avatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['avatar']['name']) || !empty($_FILES['bigAvatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['bigAvatar']['name'])) {
             OW::getFeedback()->error($language->text('base', 'not_valid_image'));
             $this->redirect();
         }
         $res = $userSettingsForm->process();
         OW::getFeedback()->info($language->text('admin', 'user_settings_updated'));
         $this->redirect();
     }
     $avatar = $avatarService->getDefaultAvatarUrl(1);
     $avatarBig = $avatarService->getDefaultAvatarUrl(2);
     $this->assign('avatar', $avatar);
     $this->assign('avatarBig', $avatarBig);
     $custom = json_decode($conf->getValue('base', 'default_avatar'), true);
     $this->assign('customAvatar', $custom);
     $language->addKeyForJs('admin', 'confirm_avatar_delete');
     if (!OW::getRequest()->isAjax()) {
         OW::getDocument()->setHeading(OW::getLanguage()->text('admin', 'heading_user_settings'));
         OW::getDocument()->setHeadingIconClass('ow_ic_gear_wheel');
     }
     OW::getNavigation()->deactivateMenuItems(OW_Navigation::ADMIN_SETTINGS);
 }
Beispiel #7
0
 public function user()
 {
     if (!OW::getRequest()->isAjax()) {
         OW::getNavigation()->activateMenuItem(OW_Navigation::ADMIN_SETTINGS, 'admin', 'sidebar_menu_item_user_settings');
     }
     $language = OW::getLanguage();
     $avatarService = BOL_AvatarService::getInstance();
     if (isset($_GET['del-avatar']) && in_array($_GET['del-avatar'], array(1, 2))) {
         $del = $avatarService->deleteCustomDefaultAvatar((int) $_GET['del-avatar']);
         if ($del) {
             OW::getFeedback()->info($language->text('admin', 'default_avatar_deleted'));
         }
         $this->redirect(OW::getRouter()->urlForRoute('admin_settings_user'));
     }
     $uploadMaxFilesize = (double) ini_get("upload_max_filesize");
     $postMaxSize = (double) ini_get("post_max_size");
     $maxUploadMaxFilesize = BOL_FileService::getInstance()->getUploadMaxFilesize();
     $this->assign('maxUploadMaxFilesize', $maxUploadMaxFilesize);
     $userSettingsForm = new UserSettingsForm($maxUploadMaxFilesize);
     $this->addForm($userSettingsForm);
     $conf = OW::getConfig();
     $avatarSize = $conf->getValue('base', 'avatar_size');
     $bigAvatarSize = $conf->getValue('base', 'avatar_big_size');
     $avatarUploadSize = $conf->getValue('base', 'avatar_max_upload_size');
     $userSettingsForm->getElement('avatar_max_upload_size')->setValue((double) $avatarUploadSize);
     $userSettingsForm->getElement('avatarSize')->setValue($avatarSize);
     $userSettingsForm->getElement('bigAvatarSize')->setValue($bigAvatarSize);
     $userSettingsForm->getElement('displayName')->setValue($conf->getValue('base', 'display_name_question'));
     // privacy
     $userSettingsForm->getElement('who_can_join')->setValue($conf->getValue('base', 'who_can_join'));
     $userSettingsForm->getElement('who_can_invite')->setValue($conf->getValue('base', 'who_can_invite'));
     $userSettingsForm->getElement('guests_can_view')->setValue($conf->getValue('base', 'guests_can_view'));
     $userSettingsForm->getElement('user_approve')->setValue($conf->getValue('base', 'mandatory_user_approve'));
     // profile questions
     $userSettingsForm->getElement('user_view_presentation')->setValue(OW::getConfig()->getValue('base', 'user_view_presentation') == 'tabs');
     $this->assign('displayConfirmEmail', !defined('OW_PLUGIN_XP'));
     if (OW::getRequest()->isPost() && $userSettingsForm->isValid($_POST)) {
         if (!empty($_FILES['avatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['avatar']['name']) || !empty($_FILES['bigAvatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['bigAvatar']['name'])) {
             OW::getFeedback()->error($language->text('base', 'not_valid_image'));
             $this->redirect();
         }
         $values = $userSettingsForm->getValues();
         $guestPassword = OW_Config::getInstance()->getValue('base', 'guests_can_view_password');
         if ((int) $values['guests_can_view'] === 3 && empty($values['password']) && is_null($guestPassword)) {
             OW::getFeedback()->error($language->text('admin', 'permission_global_privacy_empty_pass_error_message'));
             $this->redirect();
         } else {
             if ((int) $values['guests_can_view'] === 3 && strlen(trim($values['password'])) < 4 && strlen(trim($values['password'])) > 0) {
                 OW::getFeedback()->error($language->text('admin', 'permission_global_privacy_pass_length_error_message'));
                 $this->redirect();
             }
         }
         $res = $userSettingsForm->process();
         OW::getFeedback()->info($language->text('admin', 'user_settings_updated'));
         $this->redirect();
     }
     $avatar = $avatarService->getDefaultAvatarUrl(1);
     $avatarBig = $avatarService->getDefaultAvatarUrl(2);
     $this->assign('avatar', $avatar);
     $this->assign('avatarBig', $avatarBig);
     $custom = json_decode($conf->getValue('base', 'default_avatar'), true);
     $this->assign('customAvatar', $custom);
     $language->addKeyForJs('admin', 'confirm_avatar_delete');
     if (!OW::getRequest()->isAjax()) {
         OW::getDocument()->setHeading(OW::getLanguage()->text('admin', 'heading_user_settings'));
         OW::getDocument()->setHeadingIconClass('ow_ic_gear_wheel');
     }
     OW::getNavigation()->deactivateMenuItems(OW_Navigation::ADMIN_SETTINGS);
 }
 public function moveTemporaryFile($tmpId, $desc)
 {
     $tmp = $this->fileTemporaryDao->findById($tmpId);
     if (!$tmp) {
         return false;
     }
     $tmpFilePath = $this->getTemporaryFilePath($tmp->id);
     $fileService = BOL_FileService::getInstance();
     $file = new BOL_File();
     $file->description = htmlspecialchars(trim($desc));
     $file->addDatetime = time();
     $file->filename = $tmp->filename;
     $file->userId = $tmp->userId;
     BOL_FileDao::getInstance()->save($file);
     try {
         copy($tmpFilePath, $fileService->getFilePath($file->id));
     } catch (Exception $e) {
         $photo = null;
     }
     return $file;
 }