Example #1
0
 /**
  *
  * Selects the username with the id of the user who has loggged on.
  * @global      $objDatabase
  */
 function getUserID($userName)
 {
     global $objDatabase;
     $arrSettings = \User_Setting::getSettings();
     $where = array();
     $where[] = '`email` = "' . $userName . '"';
     if ($arrSettings['use_usernames']['status']) {
         $where[] = '`username` = "' . $userName . '"';
     }
     $userName = contrexx_addslashes($userName);
     $selUserID = 'SELECT id FROM ' . DBPREFIX . 'access_users
                    WHERE (' . implode(' OR ', $where) . ') AND
                    active=1';
     $objResult = $objDatabase->Execute($selUserID);
     while (!$objResult->EOF) {
         $ID = $objResult->fields['id'];
         $objResult->MoveNext();
     }
     return $ID;
 }
Example #2
0
 /**
  * Searchs for an user with the given user id of the social media platform.
  * If there is no user, create one and directly log in.
  *
  * @param string $oauth_id the user id of the social media platform
  * @return bool
  * @throws OAuth_Exception
  */
 protected function getContrexxUser($oauth_id)
 {
     global $sessionObj;
     //\DBG::activate();
     $arrSettings = \User_Setting::getSettings();
     $provider = $this::OAUTH_PROVIDER;
     $FWUser = \FWUser::getFWUserObject();
     $objUser = $FWUser->objUser->getByNetwork($provider, $oauth_id);
     if (!$objUser) {
         // check whether the user is already logged in
         // if the user is logged in just add a new network to the user object
         if ($FWUser->objUser->login()) {
             $objUser = $FWUser->objUser;
             $this->addProviderToUserObject($provider, $oauth_id, $objUser);
             $objUser->getNetworks()->save();
             return true;
         }
         // create a new user with the default profile attributes
         $objUser = new \User();
         $objUser->setEmail($this->getEmail());
         $objUser->setAdminStatus(0);
         $objUser->setProfile(array('firstname' => array($this->getFirstname()), 'lastname' => array($this->getLastname())));
         $registrationRedirectNeeded = $arrSettings['sociallogin_show_signup']['status'];
         // if user_account_verification is true (1), then we need to do checkMandatoryCompliance(), because
         // the required fields must be set.
         if ($registrationRedirectNeeded == false && $arrSettings['user_account_verification']['value'] === 1) {
             $registrationRedirectNeeded = !$objUser->checkMandatoryCompliance();
         }
         $objUser->setActiveStatus(!$registrationRedirectNeeded);
         if ($registrationRedirectNeeded) {
             $objUser->setRestoreKey();
             $objUser->setRestoreKeyTime(intval($arrSettings['sociallogin_activation_timeout']['value']) * 60);
         }
         if (!empty($arrSettings['sociallogin_assign_to_groups']['value'])) {
             $groups = $arrSettings['sociallogin_assign_to_groups']['value'];
         } else {
             $groups = $arrSettings['assigne_to_groups']['value'];
         }
         $objUser->setGroups(explode(',', $groups));
         // if we can create the user without sign up page
         if (!$objUser->store()) {
             // if the email address already exists but not with the given oauth-provider
             throw new OAuth_Exception();
         }
         // add the social network to user
         $this->addProviderToUserObject($provider, $oauth_id, $objUser);
         $objUser->getNetworks()->save();
         // check whether there are empty mandatory fields or the setting to show sign up everytime
         if ($registrationRedirectNeeded) {
             // start session if no session is open
             if (!isset($sessionObj) || !is_object($sessionObj)) {
                 $sessionObj = \cmsSession::getInstance();
             }
             // write the user id to session so we can pre-fill the sign up form
             $_SESSION['user_id'] = $objUser->getId();
             // generate url for sign up page and redirect
             $signUpPageUri = \Cx\Core\Routing\Url::fromModuleAndCmd('Access', 'signup');
             \Cx\Core\Csrf\Controller\Csrf::header('Location: ' . $signUpPageUri->__toString());
             exit;
         }
     }
     $FWUser->loginUser($objUser);
 }
 function isSomeonesBirthdayToday()
 {
     $arrSettings = \User_Setting::getSettings();
     $filter = array('active' => true, 'birthday_day' => date('j'), 'birthday_month' => date('n'));
     if ($arrSettings['block_birthday_users_pic']['status']) {
         $filter['picture'] = array('!=' => '');
     }
     $objFWUser = \FWUser::getFWUserObject();
     if ($objFWUser->objUser->getUsers($filter, null, null, null, 1)) {
         return true;
     }
     return false;
 }
Example #4
0
 /**
  * Parse the sociallogin login buttons in the template given.
  *
  * @static
  * @param $objTpl template object to parse
  * @param string $prefix the prefix for the template blocks and variables
  */
 public static function parseSociallogin($objTpl, $prefix = 'login_')
 {
     $arrSettings = \User_Setting::getSettings();
     if (function_exists('curl_init') && $arrSettings['sociallogin']['status'] && !isset($_SESSION['user_id'])) {
         if (!empty($_GET['redirect'])) {
             $_SESSION['redirect'] = $_GET['redirect'];
         }
         $redirect = isset($_SESSION['redirect']) ? $_SESSION['redirect'] : null;
         $socialloginProviders = \Cx\Lib\SocialLogin::getProviders();
         foreach ($socialloginProviders as $provider => $providerData) {
             if (!$objTpl->blockExists($prefix . 'social_networks_' . $provider)) {
                 continue;
             }
             $objTpl->setVariable(strtoupper($prefix) . 'SOCIALLOGIN_' . strtoupper($provider), contrexx_raw2xhtml(\Cx\Lib\SocialLogin::getLoginUrl($provider, $redirect)));
             if ($providerData->isActive()) {
                 $objTpl->touchBlock($prefix . 'social_networks_' . $provider);
             } else {
                 $objTpl->hideBlock($prefix . 'social_networks_' . $provider);
             }
         }
     } else {
         if ($objTpl->blockExists($prefix . 'social_networks')) {
             $objTpl->hideBlock($prefix . 'social_networks');
         }
     }
 }
Example #5
0
 /**
  * Returns the HTML dropdown menu string for the User account
  * validity period.
  * @param   integer   $selectedValidity   The selected validity period
  *                                        in days.  Defaults to 0 (zero).
  * @param   string    $attrs              Additional attributes for the
  *                                        menu, to be included in the
  *                                        <SELECT> tag.
  * @return  string                        The HTML dropdown menu code
  */
 public static function getValidityMenuOptions($selectedValidity = 0, $attrs = '')
 {
     $strOptions = '';
     foreach (User_Setting::getUserValidities() as $validity) {
         $strValidity = FWUser::getValidityString($validity);
         $strOptions .= '<option value="' . $validity . '"' . ($selectedValidity == $validity ? ' selected="selected"' : '') . (empty($attrs) ? '' : ' ' . $attrs) . '>' . $strValidity . '</option>';
     }
     return $strOptions;
 }
Example #6
0
 function handleSignUp($objUser)
 {
     global $_ARRAYLANG, $_CONFIG, $_LANGID;
     $objFWUser = \FWUser::getFWUserObject();
     $objUserMail = $objFWUser->getMail();
     $arrSettings = \User_Setting::getSettings();
     if ($arrSettings['user_activation']['status']) {
         $mail2load = 'reg_confirm';
         $mail2addr = $objUser->getEmail();
     } else {
         $mail2load = 'new_user';
         $mail2addr = $arrSettings['notification_address']['value'];
     }
     if (($objUserMail->load($mail2load, $_LANGID) || $objUserMail->load($mail2load)) && \Env::get('ClassLoader')->loadFile(ASCMS_LIBRARY_PATH . '/phpmailer/class.phpmailer.php') && ($objMail = new \PHPMailer()) !== false) {
         if ($_CONFIG['coreSmtpServer'] > 0 && \Env::get('ClassLoader')->loadFile(ASCMS_CORE_PATH . '/SmtpSettings.class.php')) {
             if (($arrSmtp = \SmtpSettings::getSmtpAccount($_CONFIG['coreSmtpServer'])) !== false) {
                 $objMail->IsSMTP();
                 $objMail->Host = $arrSmtp['hostname'];
                 $objMail->Port = $arrSmtp['port'];
                 $objMail->SMTPAuth = true;
                 $objMail->Username = $arrSmtp['username'];
                 $objMail->Password = $arrSmtp['password'];
             }
         }
         $objMail->CharSet = CONTREXX_CHARSET;
         $objMail->From = $objUserMail->getSenderMail();
         $objMail->FromName = $objUserMail->getSenderName();
         $objMail->AddReplyTo($objUserMail->getSenderMail());
         $objMail->Subject = $objUserMail->getSubject();
         if (in_array($objUserMail->getFormat(), array('multipart', 'text'))) {
             $objUserMail->getFormat() == 'text' ? $objMail->IsHTML(false) : false;
             $objMail->{($objUserMail->getFormat() == 'text' ? '' : 'Alt') . 'Body'} = str_replace(array('[[HOST]]', '[[USERNAME]]', '[[ACTIVATION_LINK]]', '[[HOST_LINK]]', '[[SENDER]]', '[[LINK]]'), array($_CONFIG['domainUrl'], $objUser->getUsername(), 'http://' . $_CONFIG['domainUrl'] . CONTREXX_SCRIPT_PATH . '?section=Access&cmd=signup&u=' . $objUser->getId() . '&k=' . $objUser->getRestoreKey(), 'http://' . $_CONFIG['domainUrl'], $objUserMail->getSenderName(), 'http://' . $_CONFIG['domainUrl'] . ASCMS_PATH_OFFSET . ASCMS_BACKEND_PATH . '/index.php?cmd=Access&act=user&tpl=modify&id=' . $objUser->getId()), $objUserMail->getBodyText());
         }
         if (in_array($objUserMail->getFormat(), array('multipart', 'html'))) {
             $objUserMail->getFormat() == 'html' ? $objMail->IsHTML(true) : false;
             $objMail->Body = str_replace(array('[[HOST]]', '[[USERNAME]]', '[[ACTIVATION_LINK]]', '[[HOST_LINK]]', '[[SENDER]]', '[[LINK]]'), array($_CONFIG['domainUrl'], htmlentities($objUser->getUsername(), ENT_QUOTES, CONTREXX_CHARSET), 'http://' . $_CONFIG['domainUrl'] . CONTREXX_SCRIPT_PATH . '?section=Access&cmd=signup&u=' . $objUser->getId() . '&k=' . $objUser->getRestoreKey(), 'http://' . $_CONFIG['domainUrl'], htmlentities($objUserMail->getSenderName(), ENT_QUOTES, CONTREXX_CHARSET), 'http://' . $_CONFIG['domainUrl'] . ASCMS_PATH_OFFSET . ASCMS_BACKEND_PATH . '/index.php?cmd=Access&act=user&tpl=modify&id=' . $objUser->getId()), $objUserMail->getBodyHtml());
         }
         $objMail->AddAddress($mail2addr);
         if ($objMail->Send()) {
             $this->arrStatusMsg['ok'][] = $_ARRAYLANG['TXT_ACCESS_ACCOUNT_SUCCESSFULLY_CREATED'];
             if ($arrSettings['user_activation']['status']) {
                 $timeoutStr = '';
                 if ($arrSettings['user_activation_timeout']['status']) {
                     if ($arrSettings['user_activation_timeout']['value'] > 1) {
                         $timeoutStr = $arrSettings['user_activation_timeout']['value'] . ' ' . $_ARRAYLANG['TXT_ACCESS_HOURS_IN_STR'];
                     } else {
                         $timeoutStr = ' ' . $_ARRAYLANG['TXT_ACCESS_HOUR_IN_STR'];
                     }
                     $timeoutStr = str_replace('%TIMEOUT%', $timeoutStr, $_ARRAYLANG['TXT_ACCESS_ACTIVATION_TIMEOUT']);
                 }
                 $this->arrStatusMsg['ok'][] = str_replace('%TIMEOUT%', $timeoutStr, $_ARRAYLANG['TXT_ACCESS_ACTIVATION_BY_USER_MSG']);
             } else {
                 $this->arrStatusMsg['ok'][] = str_replace("%HOST%", $_CONFIG['domainUrl'], $_ARRAYLANG['TXT_ACCESS_ACTIVATION_BY_SYSTEM']);
             }
             return true;
         }
     }
     $mailSubject = str_replace("%HOST%", "http://" . $_CONFIG['domainUrl'], $_ARRAYLANG['TXT_ACCESS_COULD_NOT_SEND_ACTIVATION_MAIL']);
     $adminEmail = '<a href="mailto:' . $_CONFIG['coreAdminEmail'] . '?subject=' . $mailSubject . '" title="' . $_CONFIG['coreAdminEmail'] . '">' . $_CONFIG['coreAdminEmail'] . '</a>';
     $this->arrStatusMsg['error'][] = str_replace("%EMAIL%", $adminEmail, $_ARRAYLANG['TXT_ACCESS_COULD_NOT_SEND_EMAIL']);
     return false;
 }
Example #7
0
 /**
  * Checks if the user has been successfully authenticated
  *
  * If a user has been successfully authenticated then he will be
  * redirected to the requested page, otherwise the login page will be displayed
  *
  * @access private
  * @global array
  * @see cmsSession::cmsSessionStatusUpdate(), contrexx_strip_tags, \Cx\Core\Html\Sigma::get()
  * @return string \Cx\Core\Html\Sigma::get()
  */
 function _login()
 {
     global $_CORELANG, $sessionObj;
     $objFWUser = \FWUser::getFWUserObject();
     if (isset($_REQUEST['redirect'])) {
         $redirect = contrexx_strip_tags($_REQUEST['redirect']);
     } elseif (isset($_SESSION['redirect'])) {
         $redirect = $_SESSION['redirect'];
     } else {
         $redirect = "";
     }
     \Cx\Lib\SocialLogin::parseSociallogin($this->_objTpl);
     $arrSettings = \User_Setting::getSettings();
     if (function_exists('curl_init') && $arrSettings['sociallogin']['status'] && !empty($_GET['provider'])) {
         $providerLogin = $this->loginWithProvider($_GET['provider']);
         if ($providerLogin) {
             return $providerLogin;
         }
     }
     if ($objFWUser->objUser->login()) {
         if (isset($_POST['login']) && $objFWUser->checkLogin() || isset($_GET['auth-token']) && isset($_GET['user-id'])) {
             $objFWUser->objUser->reset();
             $objFWUser->logoutAndDestroySession();
             $sessionObj = \cmsSession::getInstance();
         } elseif (isset($_POST['login'])) {
             $_GET['relogin'] = '******';
         }
     }
     if ((!isset($_GET['relogin']) || $_GET['relogin'] != 'true') && $objFWUser->objUser->login() || $objFWUser->checkAuth()) {
         $groupRedirect = ($objGroup = $objFWUser->objGroup->getGroup($objFWUser->objUser->getPrimaryGroupId())) && $objGroup->getHomepage() ? preg_replace('/\\[\\[([A-Z0-9_-]+)\\]\\]/', '{\\1}', $objGroup->getHomepage()) : CONTREXX_SCRIPT_PATH;
         \LinkGenerator::parseTemplate($groupRedirect);
         if (isset($_SESSION['redirect'])) {
             unset($_SESSION['redirect']);
         }
         if (!empty($redirect)) {
             $redirect = \FWUser::getRedirectUrl(urlencode(base64_decode($redirect)));
         }
         \Cx\Core\Csrf\Controller\Csrf::header('Location: ' . (empty($redirect) ? $groupRedirect : $redirect));
         exit;
     } else {
         if (isset($_POST['login'])) {
             $this->_statusMessage = $_CORELANG['TXT_PASSWORD_OR_USERNAME_IS_INCORRECT'];
         }
     }
     if (isset($_SESSION['auth']['loginLastAuthFailed'])) {
         $this->_objTpl->setVariable(array('TXT_CORE_CAPTCHA' => $_CORELANG['TXT_CORE_CAPTCHA'], 'CAPTCHA_CODE' => \Cx\Core_Modules\Captcha\Controller\Captcha::getInstance()->getCode()));
         $this->_objTpl->parse('captcha');
     } else {
         $this->_objTpl->hideBlock('captcha');
     }
     // TODO: loading the language data of component Access at this
     //       point is a workaround as the integration of the Access
     //       component's functionality itself is hard-coded too and
     //       has not been implemented through the system component
     //       framework.
     $accessLang = \Env::get('init')->getComponentSpecificLanguageData('Access');
     $this->_objTpl->setVariable(array('TXT_ACCESS_SIGNUP_BY_FACEBOOK' => $accessLang['TXT_ACCESS_SIGNUP_BY_FACEBOOK'], 'TXT_ACCESS_SIGNUP_BY_GOOGLE' => $accessLang['TXT_ACCESS_SIGNUP_BY_GOOGLE'], 'TXT_ACCESS_SIGNUP_BY_TWITTER' => $accessLang['TXT_ACCESS_SIGNUP_BY_TWITTER'], 'TXT_CORE_SIGN_UP' => $_CORELANG['TXT_CORE_SIGN_UP'], 'TXT_LOGIN' => $_CORELANG['TXT_LOGIN'], 'TXT_USER_NAME' => $_CORELANG['TXT_USER_NAME'], 'TXT_EMAIL' => $_CORELANG['TXT_EMAIL'], 'TXT_PASSWORD' => $_CORELANG['TXT_PASSWORD'], 'TXT_LOGIN_REMEMBER_ME' => $_CORELANG['TXT_CORE_REMEMBER_ME'], 'TXT_PASSWORD_LOST' => $_CORELANG['TXT_PASSWORD_LOST'], 'LOGIN_REDIRECT' => $redirect, 'LOGIN_STATUS_MESSAGE' => $this->_statusMessage));
     return $this->_objTpl->get();
 }
 function _configGeneral()
 {
     global $_ARRAYLANG, $_CORELANG;
     $status = true;
     $arrSettings = \User_Setting::getSettings();
     $this->_objTpl->addBlockfile('ACCESS_CONFIG_TEMPLATE', 'module_access_config_general', 'module_access_config_general.html');
     $this->_objTpl->setVariable(array('TXT_ACCESS_PROFILE' => $_ARRAYLANG['TXT_ACCESS_PROFILE'], 'TXT_ACCESS_PROFILE_AVATAR_PIC' => $_ARRAYLANG['TXT_ACCESS_PROFILE_AVATAR_PIC'], 'TXT_ACCESS_PERMISSIONS' => $_ARRAYLANG['TXT_ACCESS_PERMISSIONS'], 'TXT_ACCESS_YES' => $_ARRAYLANG['TXT_ACCESS_YES'], 'TXT_ACCESS_NO' => $_ARRAYLANG['TXT_ACCESS_NO'], 'TXT_ACCESS_ALLOW_USERS_DELETE_ACCOUNT' => $_ARRAYLANG['TXT_ACCESS_ALLOW_USERS_DELETE_ACCOUNT'], 'TXT_ACCESS_ALLOW_USERS_SET_PROFILE_ACCESS' => $_ARRAYLANG['TXT_ACCESS_ALLOW_USERS_SET_PROFILE_ACCESS'], 'TXT_ACCESS_ALLOW_USERS_SET_EMAIL_ACCESS' => $_ARRAYLANG['TXT_ACCESS_ALLOW_USERS_SET_EMAIL_ACCESS'], 'TXT_ACCESS_FRONTEND_BLOCK_FUNCTIONS' => $_ARRAYLANG['TXT_ACCESS_FRONTEND_BLOCK_FUNCTIONS'], 'TXT_ACCESS_CURRENTLY_ONLINE' => $_ARRAYLANG['TXT_ACCESS_CURRENTLY_ONLINE'], 'TXT_ACCESS_LAST_ACTIVE' => $_ARRAYLANG['TXT_ACCESS_LAST_ACTIVE'], 'TXT_ACCESS_LATEST_REGISTERED_USERS' => $_ARRAYLANG['TXT_ACCESS_LATEST_REGISTERED_USERS'], 'TXT_ACCESS_BIRTHDAYS' => $_ARRAYLANG['TXT_ACCESS_BIRTHDAYS'], 'TXT_ACCESS_ACTIVATE_BLOCK_FUNCTION' => $_ARRAYLANG['TXT_ACCESS_ACTIVATE_BLOCK_FUNCTION'], 'TXT_ACCESS_SHOW_USERS_ONLY_WITH_PHOTO' => $_ARRAYLANG['TXT_ACCESS_SHOW_USERS_ONLY_WITH_PHOTO'], 'TXT_ACCESS_MAX_USER_COUNT' => $_ARRAYLANG['TXT_ACCESS_MAX_USER_COUNT'], 'TXT_ACCESS_SAVE' => $_ARRAYLANG['TXT_ACCESS_SAVE'], 'TXT_ACCESS_PROFILE_PIC' => $_CORELANG['TXT_ACCESS_PROFILE_PIC'], 'TXT_ACCESS_MAX_WIDTH' => $_ARRAYLANG['TXT_ACCESS_MAX_WIDTH'], 'TXT_ACCESS_MAX_HEIGHT' => $_ARRAYLANG['TXT_ACCESS_MAX_HEIGHT'], 'TXT_ACCESS_MAX_FILE_SIZE' => $_ARRAYLANG['TXT_ACCESS_MAX_FILE_SIZE'], 'TXT_ACCESS_THUMBNAIL_WIDTH' => $_ARRAYLANG['TXT_ACCESS_THUMBNAIL_WIDTH'], 'TXT_ACCESS_THUMBNAIL_HEIGHT' => $_ARRAYLANG['TXT_ACCESS_THUMBNAIL_HEIGHT'], 'TXT_ACCESS_MAX_THUMBNAIL_WIDTH' => $_ARRAYLANG['TXT_ACCESS_MAX_THUMBNAIL_WIDTH'], 'TXT_ACCESS_MAX_THUMBNAIL_HEIGHT' => $_ARRAYLANG['TXT_ACCESS_MAX_THUMBNAIL_HEIGHT'], 'TXT_ACCESS_PICTURES' => $_ARRAYLANG['TXT_ACCESS_PICTURES'], 'TXT_ACCESS_OTHER_PICTURES' => $_ARRAYLANG['TXT_ACCESS_OTHER_PICTURES'], 'TXT_ACCESS_MISCELLANEOUS' => $_ARRAYLANG['TXT_ACCESS_MISCELLANEOUS'], 'TXT_ACCESS_STANDARD' => $_ARRAYLANG['TXT_ACCESS_STANDARD'], 'TXT_ACCESS_EMAIL' => $_ARRAYLANG['TXT_ACCESS_EMAIL'], 'TXT_ACCESS_SESSION_ON_INTERVAL' => $_ARRAYLANG['TXT_ACCESS_SESSION_ON_INTERVAL'], 'TXT_ACCESS_SESSION_DESCRIPTION' => $_ARRAYLANG['TXT_ACCESS_SESSION_DESCRIPTION'], 'TXT_ACCESS_SESSION_TITLE' => $_ARRAYLANG['TXT_ACCESS_SESSION_TITLE'], 'TXT_ACCESS_USE_SELECTED_ACCESS_FOR_EVERYONE' => $_ARRAYLANG['TXT_ACCESS_USE_SELECTED_ACCESS_FOR_EVERYONE'], 'TXT_ACCESS_CROP_THUMBNAIL_TXT' => $_ARRAYLANG['TXT_ACCESS_CROP_THUMBNAIL_TXT'], 'TXT_ACCESS_SCALE_THUMBNAIL_TXT' => $_ARRAYLANG['TXT_ACCESS_SCALE_THUMBNAIL_TXT'], 'TXT_ACCESS_BACKGROUND_COLOR' => $_ARRAYLANG['TXT_ACCESS_BACKGROUND_COLOR'], 'TXT_ACCESS_THUMBNAIL_GENERATION' => $_ARRAYLANG['TXT_ACCESS_THUMBNAIL_GENERATION'], 'TXT_ACCESS_USE_USERNAMES' => $_ARRAYLANG['TXT_ACCESS_USE_USERNAMES'], 'TXT_ACCESS_USE_USERNAMES_TOOLTIP' => $_ARRAYLANG['TXT_ACCESS_USE_USERNAMES_TOOLTIP'], 'TXT_ACCESS_SOCIALLOGIN_INFORMATION_TITLE' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_INFORMATION_TITLE'], 'TXT_ACCESS_DESCRIPTION' => $_ARRAYLANG['TXT_ACCESS_DESCRIPTION'], 'TXT_ACCESS_SOCIALLOGIN_DESCRIPTION' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_DESCRIPTION'], 'TXT_ACCESS_SOCIALLOGIN' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN'], 'TXT_ACCESS_ENABLE_SOCIALLOGIN' => $_ARRAYLANG['TXT_ACCESS_ENABLE_SOCIALLOGIN'], 'TXT_ACCESS_SOCIALLOGIN_PROVIDERS' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_PROVIDERS'], 'TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP'], 'TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP_TOOLTIP' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_SHOW_SIGN_UP_TOOLTIP'], 'TXT_ACCESS_GROUP_ASSOCIATION_TEXT' => $_ARRAYLANG['TXT_ACCESS_GROUP_ASSOCIATION_TEXT'], 'TXT_ACCESS_AVAILABLE_GROUPS' => $_ARRAYLANG['TXT_ACCESS_AVAILABLE_GROUPS'], 'TXT_ACCESS_CHECK_ALL' => $_ARRAYLANG['TXT_ACCESS_CHECK_ALL'], 'TXT_ACCESS_UNCHECK_ALL' => $_ARRAYLANG['TXT_ACCESS_UNCHECK_ALL'], 'TXT_ACCESS_ASSOCIATED_GROUPS' => $_ARRAYLANG['TXT_ACCESS_ASSOCIATED_GROUPS'], 'TXT_ACCESS_USER_ACCOUNT_ACTIVATION_METHOD_TEXT' => $_ARRAYLANG['TXT_ACCESS_USER_ACCOUNT_ACTIVATION_METHOD_TEXT'], 'TXT_ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY'], 'TXT_ACCESS_SOCIALLOGIN_ACTIVATED_NOT_AUTOMATICALLY' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_ACTIVATED_NOT_AUTOMATICALLY'], 'TXT_ACCESS_SOCIALLOGIN_ACTIVATION_TIME' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_ACTIVATION_TIME'], 'TXT_ACCESS_SOCIALLOGIN_UNCOMPLETED_SIGN_UP' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_UNCOMPLETED_SIGN_UP'], 'TXT_ACCESS_USER_ACCOUNT_VERIFICATION' => $_ARRAYLANG['TXT_ACCESS_USER_ACCOUNT_VERIFICATION'], 'TXT_ACCESS_USER_ACCOUNT_VERIFICATION_TEXT' => $_ARRAYLANG['TXT_ACCESS_USER_ACCOUNT_VERIFICATION_TEXT']));
     $this->_objTpl->setGlobalVariable(array('TXT_ACCESS_SOCIALLOGIN_MANUAL' => sprintf($_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_MANUAL'], "http://www.cloudrexx.com/wiki/de/index.php?title=Social_Login")));
     if (isset($_POST['access_save_settings'])) {
         // only administrators are allowed to modify the config
         if (!\Permission::hasAllAccess()) {
             \Permission::noAccess();
         }
         $arrSettings['user_delete_account']['status'] = !empty($_POST['access_permissions_delete_account']) ? intval($_POST['access_permissions_delete_account']) : 0;
         $arrSettings['user_config_profile_access']['status'] = !empty($_POST['access_permissions_profile_access']) ? intval($_POST['access_permissions_profile_access']) : 0;
         $arrSettings['user_config_email_access']['status'] = !empty($_POST['access_permissions_email_access']) ? intval($_POST['access_permissions_email_access']) : 0;
         $arrSettings['sociallogin']['status'] = function_exists('curl_init') && !empty($_POST['access_sociallogin_activate']) ? intval($_POST['access_sociallogin_activate']) : 0;
         $arrSettings['use_usernames']['status'] = !empty($_POST['access_permissions_use_usernames']) ? intval($_POST['access_permissions_use_usernames']) : 0;
         $arrSettings['sociallogin_show_signup']['status'] = !empty($_POST['access_sociallogin_show_signup']) ? intval($_POST['access_sociallogin_show_signup']) : 0;
         $arrSettings['sociallogin_assign_to_groups']['value'] = isset($_POST['access_user_associated_groups']) ? implode(',', $_POST['access_user_associated_groups']) : '';
         $arrSettings['sociallogin_active_automatically']['status'] = !empty($_POST['sociallogin_active_automatically']) ? intval($_POST['sociallogin_active_automatically']) : 0;
         $arrSettings['sociallogin_activation_timeout']['value'] = !empty($_POST['sociallogin_activation_timeout']) ? intval($_POST['sociallogin_activation_timeout']) : 10;
         $arrSettings['default_profile_access']['value'] = isset($_POST['access_user_profile_access']) && in_array($_POST['access_user_profile_access'], array('everyone', 'members_only', 'nobody')) ? $_POST['access_user_profile_access'] : 'members_only';
         $arrSettings['default_email_access']['value'] = isset($_POST['access_user_email_access']) && in_array($_POST['access_user_email_access'], array('everyone', 'members_only', 'nobody')) ? $_POST['access_user_email_access'] : 'members_only';
         if (!empty($_POST['access_blocks_currently_online_users'])) {
             $arrSettings['block_currently_online_users']['status'] = 1;
             $arrSettings['block_currently_online_users']['value'] = !empty($_POST['access_blocks_currently_online_users_user_count']) ? intval($_POST['access_blocks_currently_online_users_user_count']) : 0;
             $arrSettings['block_currently_online_users_pic']['status'] = !empty($_POST['access_blocks_currently_online_users_only_with_photo']) && intval($_POST['access_blocks_currently_online_users_only_with_photo']);
         } else {
             $arrSettings['block_currently_online_users']['status'] = 0;
         }
         if (!empty($_POST['access_blocks_last_active_users'])) {
             $arrSettings['block_last_active_users']['status'] = 1;
             $arrSettings['block_last_active_users']['value'] = !empty($_POST['access_blocks_last_active_users_user_count']) ? intval($_POST['access_blocks_last_active_users_user_count']) : 0;
             $arrSettings['block_last_active_users_pic']['status'] = !empty($_POST['access_blocks_last_active_users_only_with_photo']) && intval($_POST['access_blocks_last_active_users_only_with_photo']);
         } else {
             $arrSettings['block_last_active_users']['status'] = 0;
         }
         if (!empty($_POST['access_blocks_latest_registered_users'])) {
             $arrSettings['block_latest_reg_users']['status'] = 1;
             $arrSettings['block_latest_reg_users']['value'] = !empty($_POST['access_blocks_latest_registered_users_user_count']) ? intval($_POST['access_blocks_latest_registered_users_user_count']) : 0;
             $arrSettings['block_latest_reg_users_pic']['status'] = !empty($_POST['access_blocks_latest_registered_users_only_with_photo']) && intval($_POST['access_blocks_latest_registered_users_only_with_photo']);
         } else {
             $arrSettings['block_latest_reg_users']['status'] = 0;
         }
         if (!empty($_POST['access_blocks_birthday_users'])) {
             $arrSettings['block_birthday_users']['status'] = 1;
             $arrSettings['block_birthday_users']['value'] = !empty($_POST['access_blocks_birthday_users_user_count']) ? intval($_POST['access_blocks_birthday_users_user_count']) : 0;
             $arrSettings['block_birthday_users_pic']['status'] = !empty($_POST['access_blocks_birthday_users_only_with_photo']) && intval($_POST['access_blocks_birthday_users_only_with_photo']);
         } else {
             $arrSettings['block_birthday_users']['status'] = 0;
         }
         if (!empty($_POST['accessMaxProfilePicWidth'])) {
             $arrSettings['max_profile_pic_width']['value'] = intval($_POST['accessMaxProfilePicWidth']);
         }
         if (!empty($_POST['accessMaxProfilePicHeight'])) {
             $arrSettings['max_profile_pic_height']['value'] = intval($_POST['accessMaxProfilePicHeight']);
         }
         if (!empty($_POST['accessProfileThumbnailPicWidth'])) {
             $arrSettings['profile_thumbnail_pic_width']['value'] = intval($_POST['accessProfileThumbnailPicWidth']);
         }
         if (!empty($_POST['accessProfileThumbnailPicHeight'])) {
             $arrSettings['profile_thumbnail_pic_height']['value'] = intval($_POST['accessProfileThumbnailPicHeight']);
         }
         if (!empty($_POST['accessMaxProfilePicSize'])) {
             // TODO
             //                if (\FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxProfilePicSize']) != $arrSettings['max_profile_pic_size']['value']) {
             //                    // resize profile pics
             //                }
             $arrSettings['max_profile_pic_size']['value'] = \FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxProfilePicSize']);
         }
         if (isset($_POST['accessProfileThumbnailMethod']) && $_POST['accessProfileThumbnailMethod'] == 'scale') {
             $arrSettings['profile_thumbnail_method']['value'] = 'scale';
             $color = !empty($_POST['accessProfileThumbnailScaleColor']) ? contrexx_input2raw($_POST['accessProfileThumbnailScaleColor']) : NULL;
             $arrSettings['profile_thumbnail_scale_color']['value'] = $this->validateHexRGBColor($color);
         } else {
             $arrSettings['profile_thumbnail_method']['value'] = 'crop';
         }
         if (!empty($_POST['accessMaxPicWidth'])) {
             $arrSettings['max_pic_width']['value'] = intval($_POST['accessMaxPicWidth']);
         }
         if (!empty($_POST['accessMaxPicHeight'])) {
             $arrSettings['max_pic_height']['value'] = intval($_POST['accessMaxPicHeight']);
         }
         if (!empty($_POST['accessMaxThumbnailPicWidth'])) {
             $arrSettings['max_thumbnail_pic_width']['value'] = intval($_POST['accessMaxThumbnailPicWidth']);
         }
         if (!empty($_POST['accessMaxThumbnailPicHeight'])) {
             $arrSettings['max_thumbnail_pic_height']['value'] = intval($_POST['accessMaxThumbnailPicHeight']);
         }
         // user_account_verification is a checkbox, if this is not set, its not checked. If it is set, it is checked
         // 0 = unchecked, false, 1 = checked, active, true
         $arrSettings['user_account_verification']['value'] = 0;
         if (isset($_POST['user_account_verification'])) {
             $arrSettings['user_account_verification']['value'] = 1;
         }
         if (!empty($_POST['accessMaxPicSize'])) {
             // TODO
             //                if (\FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxPicSize']) != $arrSettings['max_pic_size']['value']) {
             //                    // resize pics
             //                }
             $arrSettings['max_pic_size']['value'] = \FWSystem::getBytesOfLiteralSizeFormat($_POST['accessMaxPicSize']);
         }
         $session_on_interval = intval($_POST['sessioninterval']);
         if (trim($session_on_interval) != null) {
             if ($session_on_interval >= 0 && $session_on_interval <= 300) {
                 $arrSettings['session_user_interval']['value'] = $session_on_interval;
             }
         }
         if (!empty($_POST["sociallogin_providers"])) {
             \Cx\Lib\SocialLogin::updateProviders($_POST["sociallogin_providers"]);
         }
         if ($status) {
             if (\User_Setting::setSettings($arrSettings)) {
                 self::$arrStatusMsg['ok'][] = $_ARRAYLANG['TXT_ACCESS_CONFIG_SUCCESSFULLY_SAVED'];
                 if (!empty($_POST['access_force_selected_profile_access'])) {
                     if (!\User::forceDefaultProfileAccess()) {
                         self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_SET_DEFAULT_PROFILE_ACCESS_FAILED'];
                     }
                 }
                 if (!empty($_POST['access_force_selected_email_access'])) {
                     if (!\User::forceDefaultEmailAccess()) {
                         self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_SET_DEFAULT_EMAIL_ACCESS_FAILED'];
                     }
                 }
             } else {
                 self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_CONFIG_FAILED_SAVED'];
                 self::$arrStatusMsg['error'][] = $_ARRAYLANG['TXT_ACCESS_TRY_TO_REPEAT_OPERATION'];
             }
         }
     }
     $curlAvailable = true;
     try {
         $socialloginProviders = \Cx\Lib\SocialLogin::getProviders();
     } catch (\Exception $e) {
         if (!function_exists('curl_init')) {
             $this->_objTpl->setVariable('TXT_ACCESS_SOCIALLOGIN_WARNING', $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_NEED_CURL']);
             $this->_objTpl->parse('sociallogin_need_curl');
             $curlAvailable = false;
         }
     }
     if ($curlAvailable) {
         $this->_objTpl->touchBlock('access_sociallogin_settings');
     } else {
         $this->_objTpl->hideBlock('access_sociallogin_settings');
     }
     // if the current user is no admin, show a message
     $currentUserIsAdmin = \FWUser::getFWUserObject()->objUser->getAdminStatus();
     if (!$currentUserIsAdmin) {
         $this->_objTpl->setVariable('TXT_ACCESS_SOCIALLOGIN_PERMISSION_DENIED', $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_PERMISSION_DENIED']);
         $this->_objTpl->parse('access_sociallogin_permission_denied');
     }
     $socialloginProviderRow = 0;
     foreach ($socialloginProviders as $socialloginProviderName => $providerObject) {
         $settings = $providerObject->getApplicationData();
         $paramId = 0;
         if ($currentUserIsAdmin) {
             foreach (call_user_func(\Cx\Lib\SocialLogin::getClassByProvider($socialloginProviderName) . '::configParams') as $configParam) {
                 $this->_objTpl->setVariable(array('TXT_ACCESS_SOCIALLOGIN_PROVIDER_PARAM_TITLE' => $_ARRAYLANG[$configParam], 'ACCESS_SOCIALLOGIN_PROVIDER_PARAM_VALUE' => contrexx_raw2xhtml(!empty($settings[$paramId]) ? $settings[$paramId] : ''), 'ACCESS_SOCIALLOGIN_PROVIDER_TOGGLE' => $providerObject->isActive() ? '' : 'none', 'ACCESS_SOCIALLOGIN_PROVIDER_NAME' => contrexx_raw2xhtml($socialloginProviderName), 'ACCESS_SOCIALLOGIN_PROVIDER_NAME_UPPER' => contrexx_raw2xhtml(ucfirst($socialloginProviderName))));
                 $this->_objTpl->parse('access_sociallogin_provider_params');
                 $paramId++;
             }
         }
         $this->_objTpl->setVariable(array('ACCESS_SOCIALLOGIN_PROVIDER_ROW' => $socialloginProviderRow % 2 == 0 ? 1 : 2, 'ACCESS_SOCIALLOGIN_PROVIDER_NAME' => contrexx_raw2xhtml($socialloginProviderName), 'ACCESS_SOCIALLOGIN_PROVIDER_NAME_UPPER' => contrexx_raw2xhtml(ucfirst($socialloginProviderName)), 'TXT_ACCESS_SOCIALLOGIN_PROVIDER_ENABLED' => $_ARRAYLANG['TXT_ACCESS_SOCIALLOGIN_PROVIDER_ENABLED'], 'ACCESS_SOCIALLOGIN_PROVIDER_ENABLED_CHECKED' => $currentUserIsAdmin && $providerObject->isActive() ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_PROVIDER_DISABLED' => $currentUserIsAdmin ? '' : 'disabled="disabled"'));
         $this->_objTpl->parse('access_sociallogin_provider');
         $socialloginProviderRow++;
     }
     $this->_objTpl->setVariable(array('ACCESS_SOCIALLOGIN_TOGGLE' => $arrSettings['sociallogin']['status'] ? '' : 'none'));
     $arrAssignedGroups = explode(',', $arrSettings['sociallogin_assign_to_groups']['value']);
     $notAssignedGroups = '';
     $assignedGroups = '';
     $objFWUser = \FWUser::getFWUserObject();
     $objGroup = $objFWUser->objGroup->getGroups();
     while (!$objGroup->EOF) {
         $groupVar = in_array($objGroup->getId(), $arrAssignedGroups) ? 'assignedGroups' : 'notAssignedGroups';
         ${$groupVar} .= '<option value="' . $objGroup->getId() . '">' . contrexx_raw2xhtml($objGroup->getName()) . ' [' . $objGroup->getType() . ']</option>';
         $objGroup->next();
     }
     $this->_objTpl->setVariable(array('ACCESS_USER_NOT_ASSOCIATED_GROUPS' => $notAssignedGroups, 'ACCESS_USER_ASSOCIATED_GROUPS' => $assignedGroups));
     $this->parseAccountAttribute(null, 'profile_access', true, $arrSettings['default_profile_access']['value']);
     $this->parseAccountAttribute(null, 'email_access', true, $arrSettings['default_email_access']['value']);
     $this->_objTpl->setVariable(array('ACCESS_ALLOW_USERS_DELETE_ACCOUNT' => $arrSettings['user_delete_account']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_ALLOW_USERS_DELETE_ACCOUNT' => $arrSettings['user_delete_account']['status'] ? '' : 'checked="checked"', 'ACCESS_ALLOW_USERS_SET_PROFILE_ACCESS' => $arrSettings['user_config_profile_access']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_ALLOW_USERS_SET_PROFILE_ACCESS' => $arrSettings['user_config_profile_access']['status'] ? '' : 'checked="checked"', 'ACCESS_ALLOW_USERS_SET_EMAIL_ACCESS' => $arrSettings['user_config_email_access']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_ALLOW_USERS_SET_EMAIL_ACCESS' => $arrSettings['user_config_email_access']['status'] ? '' : 'checked="checked"', 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS' => $arrSettings['block_currently_online_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS_DISPLAY' => $arrSettings['block_currently_online_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS_USER_COUNT' => $arrSettings['block_currently_online_users']['value'], 'ACCESS_BLOCKS_CURRENTLY_ONLINE_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_currently_online_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LAST_ACTIVE_USERS' => $arrSettings['block_last_active_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LAST_ACTIVE_USERS_DISPLAY' => $arrSettings['block_last_active_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_LAST_ACTIVE_USERS_USER_COUNT' => $arrSettings['block_last_active_users']['value'], 'ACCESS_BLOCKS_LAST_ACTIVE_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_last_active_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS' => $arrSettings['block_latest_reg_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS_DISPLAY' => $arrSettings['block_latest_reg_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS_USER_COUNT' => $arrSettings['block_latest_reg_users']['value'], 'ACCESS_BLOCKS_LATEST_REGISTERED_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_latest_reg_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_BIRTHDAY_USERS' => $arrSettings['block_birthday_users']['status'] ? 'checked="checked"' : '', 'ACCESS_BLOCKS_BIRTHDAY_USERS_DISPLAY' => $arrSettings['block_birthday_users']['status'] ? '' : 'none', 'ACCESS_BLOCKS_BIRTHDAY_USERS_USER_COUNT' => $arrSettings['block_birthday_users']['value'], 'ACCESS_BLOCKS_BIRTHDAY_USERS_ONLY_WITH_PHOTO' => $arrSettings['block_birthday_users_pic']['status'] ? 'checked="checked"' : '', 'ACCESS_MAX_PROFILE_PIC_WIDTH' => $arrSettings['max_profile_pic_width']['value'], 'ACCESS_MAX_PROFILE_PIC_HEIGHT' => $arrSettings['max_profile_pic_height']['value'], 'ACCESS_PROFILE_THUMBNAIL_PIC_WIDTH' => $arrSettings['profile_thumbnail_pic_width']['value'], 'ACCESS_PROFILE_THUMBNAIL_PIC_HEIGHT' => $arrSettings['profile_thumbnail_pic_height']['value'], 'ACCESS_MAX_PROFILE_PIC_SIZE' => \FWSystem::getLiteralSizeFormat($arrSettings['max_profile_pic_size']['value']), 'ACCESS_MAX_PIC_WIDTH' => $arrSettings['max_pic_width']['value'], 'ACCESS_MAX_PIC_HEIGHT' => $arrSettings['max_pic_height']['value'], 'ACCESS_MAX_THUMBNAIL_PIC_WIDTH' => $arrSettings['max_thumbnail_pic_width']['value'], 'ACCESS_MAX_THUMBNAIL_PIC_HEIGHT' => $arrSettings['max_thumbnail_pic_height']['value'], 'ACCESS_SESSION_USER_INTERVAL' => $arrSettings['session_user_interval']['value'], 'ACCESS_MAX_PIC_SIZE' => \FWSystem::getLiteralSizeFormat($arrSettings['max_pic_size']['value']), 'ACCESS_PROFILE_THUMBNAIL_CROP' => $arrSettings['profile_thumbnail_method']['value'] == 'crop' ? 'selected="selected"' : '', 'ACCESS_PROFILE_THUMBNAIL_SCALE' => $arrSettings['profile_thumbnail_method']['value'] == 'scale' ? 'selected="selected"' : '', 'ACCESS_PROFILE_THUMBNAIL_SCALE_BOX' => $arrSettings['profile_thumbnail_method']['value'] == 'scale' ? 'inline' : 'none', 'ACCESS_PROFILE_THUMBNAIL_SCALE_COLOR' => $arrSettings['profile_thumbnail_scale_color']['value'], 'ACCESS_USE_USERNAMES' => $arrSettings['use_usernames']['status'] ? 'checked="checked"' : '', 'ACCESS_DONT_USE_USERNAMES' => $arrSettings['use_usernames']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_ENABLED' => $arrSettings['sociallogin']['status'] ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_NOT_ENABLED' => $arrSettings['sociallogin']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_SHOW_SIGNUP_ENABLED' => $arrSettings['sociallogin_show_signup']['status'] ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_SHOW_SIGNUP_NOT_ENABLED' => $arrSettings['sociallogin_show_signup']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY_ENABLED' => $arrSettings['sociallogin_active_automatically']['status'] ? 'checked="checked"' : '', 'ACCESS_SOCIALLOGIN_ACTIVATED_AUTOMATICALLY_NOT_ENABLED' => $arrSettings['sociallogin_active_automatically']['status'] ? '' : 'checked="checked"', 'ACCESS_SOCIALLOGIN_ACTIVATION_TIMEOUT' => intval($arrSettings['sociallogin_activation_timeout']['value']), 'ACCESS_USSER_ACCOUNT_VERIFICATION_CHECKED' => $arrSettings['user_account_verification']['value'] == 1 ? 'checked' : ''));
     $this->_objTpl->parse('module_access_config_general');
 }
Example #9
0
 private function createThumbnailOfImage($imageName, $profilePic = false)
 {
     static $objImage, $arrSettings;
     if (empty($objImage)) {
         $objImage = new \ImageManager();
     }
     if (empty($arrSettings)) {
         $arrSettings = \User_Setting::getSettings();
     }
     $cx = \Cx\Core\Core\Controller\Cx::instanciate();
     if ($profilePic) {
         if (!$objImage->loadImage($cx->getWebsiteImagesAccessProfilePath() . '/' . $imageName)) {
             return false;
         }
         $rationWidth = $objImage->orgImageWidth / $arrSettings['profile_thumbnail_pic_width']['value'];
         $rationHeight = $objImage->orgImageHeight / $arrSettings['profile_thumbnail_pic_height']['value'];
         if ($arrSettings['profile_thumbnail_method']['value'] == 'crop') {
             if ($rationWidth < $rationHeight) {
                 $objImage->orgImageHeight = $objImage->orgImageHeight / $rationHeight * $rationWidth;
             } else {
                 $objImage->orgImageWidth = $objImage->orgImageWidth / $rationWidth * $rationHeight;
             }
             if (!$objImage->resizeImage($arrSettings['profile_thumbnail_pic_width']['value'], $arrSettings['profile_thumbnail_pic_height']['value'], 70)) {
                 return false;
             }
         } else {
             $ration = max($rationWidth, $rationHeight);
             $objImage->addBackgroundLayer(sscanf($arrSettings['profile_thumbnail_scale_color']['value'], '#%2X%2x%2x'), $arrSettings['profile_thumbnail_pic_width']['value'], $arrSettings['profile_thumbnail_pic_height']['value']);
         }
         $thumb_name = \ImageManager::getThumbnailFilename($cx->getWebsiteImagesAccessProfilePath() . '/' . $imageName);
         return $objImage->saveNewImage($thumb_name, true);
     } else {
         $thumb_name = \ImageManager::getThumbnailFilename($imageName);
         return $objImage->_createThumbWhq($cx->getWebsiteImagesAccessPhotoPath() . '/', $cx->getWebsiteImagesAccessPhotoWebPath() . '/', $imageName, $arrSettings['max_thumbnail_pic_width']['value'], $arrSettings['max_thumbnail_pic_height']['value'], 70, '', $cx->getWebsiteImagesAccessPhotoPath() . '/', $cx->getWebsiteImagesAccessPhotoWebPath() . '/', basename($cx->getWebsiteImagesAccessProfilePath() . '/' . $thumb_name));
     }
 }
Example #10
0
 public function isAllowedToDeleteAccount()
 {
     $arrSettings = User_Setting::getSettings();
     return $arrSettings['user_delete_account']['status'];
 }
Example #11
0
 /**
  * Checks if the user has been successfully authenticated
  *
  * If a user has been successfully authenticated then he will be
  * redirected to the requested page, otherwise the login page will be displayed
  *
  * @access private
  * @global array
  * @see cmsSession::cmsSessionStatusUpdate(), contrexx_strip_tags, \Cx\Core\Html\Sigma::get()
  * @return string \Cx\Core\Html\Sigma::get()
  */
 function _login()
 {
     global $_CORELANG, $sessionObj;
     $objFWUser = \FWUser::getFWUserObject();
     if (isset($_REQUEST['redirect'])) {
         $redirect = contrexx_strip_tags($_REQUEST['redirect']);
     } elseif (isset($_SESSION['redirect'])) {
         $redirect = $_SESSION['redirect'];
     } else {
         $redirect = "";
     }
     \Cx\Lib\SocialLogin::parseSociallogin($this->_objTpl);
     $arrSettings = \User_Setting::getSettings();
     if (function_exists('curl_init') && $arrSettings['sociallogin']['status'] && !empty($_GET['provider'])) {
         $providerLogin = $this->loginWithProvider($_GET['provider']);
         if ($providerLogin) {
             return $providerLogin;
         }
     }
     if ($objFWUser->objUser->login()) {
         if (isset($_POST['login']) && $objFWUser->checkLogin() || isset($_GET['auth-token']) && isset($_GET['user-id'])) {
             $objFWUser->objUser->reset();
             $objFWUser->logoutAndDestroySession();
             $sessionObj = \cmsSession::getInstance();
         } else {
             $_GET['relogin'] = '******';
         }
     }
     if ((!isset($_GET['relogin']) || $_GET['relogin'] != 'true') && $objFWUser->objUser->login() || $objFWUser->checkAuth()) {
         $groupRedirect = ($objGroup = $objFWUser->objGroup->getGroup($objFWUser->objUser->getPrimaryGroupId())) && $objGroup->getHomepage() ? preg_replace('/\\[\\[([A-Z0-9_-]+)\\]\\]/', '{\\1}', $objGroup->getHomepage()) : CONTREXX_SCRIPT_PATH;
         \LinkGenerator::parseTemplate($groupRedirect);
         if (isset($_SESSION['redirect'])) {
             unset($_SESSION['redirect']);
         }
         if (!empty($redirect)) {
             $redirect = \FWUser::getRedirectUrl(urlencode(base64_decode($redirect)));
         }
         \Cx\Core\Csrf\Controller\Csrf::header('Location: ' . (empty($redirect) ? $groupRedirect : $redirect));
         exit;
     } else {
         if (isset($_POST['login'])) {
             $this->_statusMessage = $_CORELANG['TXT_PASSWORD_OR_USERNAME_IS_INCORRECT'];
         }
     }
     if (isset($_SESSION['auth']['loginLastAuthFailed'])) {
         $this->_objTpl->setVariable(array('TXT_CORE_CAPTCHA' => $_CORELANG['TXT_CORE_CAPTCHA'], 'CAPTCHA_CODE' => \Cx\Core_Modules\Captcha\Controller\Captcha::getInstance()->getCode()));
         $this->_objTpl->parse('captcha');
     } else {
         $this->_objTpl->hideBlock('captcha');
     }
     $this->_objTpl->setVariable(array('TXT_LOGIN' => $_CORELANG['TXT_LOGIN'], 'TXT_USER_NAME' => $_CORELANG['TXT_USER_NAME'], 'TXT_PASSWORD' => $_CORELANG['TXT_PASSWORD'], 'TXT_LOGIN_REMEMBER_ME' => $_CORELANG['TXT_CORE_REMEMBER_ME'], 'TXT_PASSWORD_LOST' => $_CORELANG['TXT_PASSWORD_LOST'], 'LOGIN_REDIRECT' => $redirect, 'LOGIN_STATUS_MESSAGE' => $this->_statusMessage));
     return $this->_objTpl->get();
 }
Example #12
0
 function handleSignUp($objUser)
 {
     global $_ARRAYLANG, $_CONFIG, $_LANGID;
     $objFWUser = \FWUser::getFWUserObject();
     $objUserMail = $objFWUser->getMail();
     $arrSettings = \User_Setting::getSettings();
     if ($arrSettings['user_activation']['status']) {
         $mail2load = 'reg_confirm';
         $mail2addr = $objUser->getEmail();
     } else {
         $mail2load = 'new_user';
         $mail2addr = $arrSettings['notification_address']['value'];
     }
     if (($objUserMail->load($mail2load, $_LANGID) || $objUserMail->load($mail2load)) && \Env::get('ClassLoader')->loadFile(ASCMS_LIBRARY_PATH . '/phpmailer/class.phpmailer.php') && ($objMail = new \PHPMailer()) !== false) {
         if ($_CONFIG['coreSmtpServer'] > 0 && \Env::get('ClassLoader')->loadFile(ASCMS_CORE_PATH . '/SmtpSettings.class.php')) {
             if (($arrSmtp = \SmtpSettings::getSmtpAccount($_CONFIG['coreSmtpServer'])) !== false) {
                 $objMail->IsSMTP();
                 $objMail->Host = $arrSmtp['hostname'];
                 $objMail->Port = $arrSmtp['port'];
                 $objMail->SMTPAuth = true;
                 $objMail->Username = $arrSmtp['username'];
                 $objMail->Password = $arrSmtp['password'];
             }
         }
         $objMail->CharSet = CONTREXX_CHARSET;
         $objMail->SetFrom($objUserMail->getSenderMail(), $objUserMail->getSenderName());
         $objMail->Subject = $objUserMail->getSubject();
         $isTextMail = in_array($objUserMail->getFormat(), array('multipart', 'text'));
         $isHtmlMail = in_array($objUserMail->getFormat(), array('multipart', 'html'));
         $searchTerms = array('[[HOST]]', '[[USERNAME]]', '[[ACTIVATION_LINK]]', '[[HOST_LINK]]', '[[SENDER]]', '[[LINK]]');
         $replaceTextTerms = array($_CONFIG['domainUrl'], $objUser->getUsername(), 'http://' . $_CONFIG['domainUrl'] . CONTREXX_SCRIPT_PATH . '?section=Access&cmd=signup&u=' . $objUser->getId() . '&k=' . $objUser->getRestoreKey(), 'http://' . $_CONFIG['domainUrl'], $objUserMail->getSenderName(), 'http://' . $_CONFIG['domainUrl'] . ASCMS_PATH_OFFSET . ASCMS_BACKEND_PATH . '/index.php?cmd=Access&act=user&tpl=modify&id=' . $objUser->getId());
         $replaceHtmlTerms = array($_CONFIG['domainUrl'], contrexx_raw2xhtml($objUser->getUsername()), 'http://' . $_CONFIG['domainUrl'] . CONTREXX_SCRIPT_PATH . '?section=Access&cmd=signup&u=' . $objUser->getId() . '&k=' . $objUser->getRestoreKey(), 'http://' . $_CONFIG['domainUrl'], contrexx_raw2xhtml($objUserMail->getSenderName()), 'http://' . $_CONFIG['domainUrl'] . ASCMS_PATH_OFFSET . ASCMS_BACKEND_PATH . '/index.php?cmd=Access&act=user&tpl=modify&id=' . $objUser->getId());
         if ($mail2load == 'reg_confirm') {
             $imagePath = 'http://' . $_CONFIG['domainUrl'] . \Cx\Core\Core\Controller\Cx::instanciate()->getWebsiteImagesAccessProfileWebPath() . '/';
             $objUser->objAttribute->first();
             while (!$objUser->objAttribute->EOF) {
                 $objAttribute = $objUser->objAttribute->getById($objUser->objAttribute->getId());
                 $placeholderName = strtoupper($objUser->objAttribute->getId());
                 $searchTerms[] = '[[USER_' . $placeholderName . ']]';
                 $placeholderValue = $this->parseAttribute($objUser, $objAttribute->getId(), 0, false, true);
                 if ($objAttribute->getType() == 'image' && $objAttribute->getId() == 'picture') {
                     $path = $imagePath . '0_noavatar.gif';
                     $imgName = $objUser->getProfileAttribute($objAttribute->getId());
                     if (\Cx\Lib\FileSystem\FileSystem::exists($imagePath . $imgName)) {
                         $path = $imagePath . $imgName;
                     }
                     $replaceHtmlTerms[] = \Html::getImageByPath($path, 'alt="' . $objUser->getEmail() . '"');
                     $replaceTextTerms[] = $path;
                 } else {
                     if (in_array($objUser->objAttribute->getType(), array('text', 'menu'))) {
                         $replaceTextTerms[] = html_entity_decode($placeholderValue, ENT_QUOTES, CONTREXX_CHARSET);
                         $replaceHtmlTerms[] = html_entity_decode($placeholderValue, ENT_QUOTES, CONTREXX_CHARSET);
                     } else {
                         $replaceTextTerms[] = $placeholderValue;
                         $replaceHtmlTerms[] = $placeholderValue;
                     }
                 }
                 $objUser->objAttribute->next();
             }
         }
         if ($isTextMail) {
             $objUserMail->getFormat() == 'text' ? $objMail->IsHTML(false) : false;
             $objMail->{($objUserMail->getFormat() == 'text' ? '' : 'Alt') . 'Body'} = str_replace($searchTerms, $replaceTextTerms, $objUserMail->getBodyText());
         }
         if ($isHtmlMail) {
             $objUserMail->getFormat() == 'html' ? $objMail->IsHTML(true) : false;
             $objMail->Body = str_replace($searchTerms, $replaceHtmlTerms, $objUserMail->getBodyHtml());
         }
         $objMail->AddAddress($mail2addr);
         if ($objMail->Send()) {
             $this->arrStatusMsg['ok'][] = $_ARRAYLANG['TXT_ACCESS_ACCOUNT_SUCCESSFULLY_CREATED'];
             if ($arrSettings['user_activation']['status']) {
                 $timeoutStr = '';
                 if ($arrSettings['user_activation_timeout']['status']) {
                     if ($arrSettings['user_activation_timeout']['value'] > 1) {
                         $timeoutStr = $arrSettings['user_activation_timeout']['value'] . ' ' . $_ARRAYLANG['TXT_ACCESS_HOURS_IN_STR'];
                     } else {
                         $timeoutStr = ' ' . $_ARRAYLANG['TXT_ACCESS_HOUR_IN_STR'];
                     }
                     $timeoutStr = str_replace('%TIMEOUT%', $timeoutStr, $_ARRAYLANG['TXT_ACCESS_ACTIVATION_TIMEOUT']);
                 }
                 $this->arrStatusMsg['ok'][] = str_replace('%TIMEOUT%', $timeoutStr, $_ARRAYLANG['TXT_ACCESS_ACTIVATION_BY_USER_MSG']);
             } else {
                 $this->arrStatusMsg['ok'][] = str_replace("%HOST%", $_CONFIG['domainUrl'], $_ARRAYLANG['TXT_ACCESS_ACTIVATION_BY_SYSTEM']);
             }
             return true;
         }
     }
     $mailSubject = str_replace("%HOST%", "http://" . $_CONFIG['domainUrl'], $_ARRAYLANG['TXT_ACCESS_COULD_NOT_SEND_ACTIVATION_MAIL']);
     $adminEmail = '<a href="mailto:' . $_CONFIG['coreAdminEmail'] . '?subject=' . $mailSubject . '" title="' . $_CONFIG['coreAdminEmail'] . '">' . $_CONFIG['coreAdminEmail'] . '</a>';
     $this->arrStatusMsg['error'][] = str_replace("%EMAIL%", $adminEmail, $_ARRAYLANG['TXT_ACCESS_COULD_NOT_SEND_EMAIL']);
     return false;
 }
Example #13
0
 private function createThumbnailOfImage($imageName, $profilePic = false)
 {
     static $objImage, $arrSettings;
     if (empty($objImage)) {
         $objImage = new \ImageManager();
     }
     if (empty($arrSettings)) {
         $arrSettings = \User_Setting::getSettings();
     }
     if ($profilePic) {
         if (!$objImage->loadImage(ASCMS_ACCESS_PROFILE_IMG_PATH . '/' . $imageName)) {
             return false;
         }
         $rationWidth = $objImage->orgImageWidth / $arrSettings['profile_thumbnail_pic_width']['value'];
         $rationHeight = $objImage->orgImageHeight / $arrSettings['profile_thumbnail_pic_height']['value'];
         if ($arrSettings['profile_thumbnail_method']['value'] == 'crop') {
             if ($rationWidth < $rationHeight) {
                 $objImage->orgImageHeight = $objImage->orgImageHeight / $rationHeight * $rationWidth;
             } else {
                 $objImage->orgImageWidth = $objImage->orgImageWidth / $rationWidth * $rationHeight;
             }
             if (!$objImage->resizeImage($arrSettings['profile_thumbnail_pic_width']['value'], $arrSettings['profile_thumbnail_pic_height']['value'], 70)) {
                 return false;
             }
         } else {
             $ration = max($rationWidth, $rationHeight);
             $objImage->addBackgroundLayer(sscanf($arrSettings['profile_thumbnail_scale_color']['value'], '#%2X%2x%2x'), $arrSettings['profile_thumbnail_pic_width']['value'], $arrSettings['profile_thumbnail_pic_height']['value']);
         }
         $thumb_name = \ImageManager::getThumbnailFilename($imageName);
         return $objImage->saveNewImage(ASCMS_ACCESS_PROFILE_IMG_PATH . '/' . $thumb_name);
     } else {
         return $objImage->_createThumbWhq(ASCMS_ACCESS_PHOTO_IMG_PATH . '/', ASCMS_ACCESS_PHOTO_IMG_WEB_PATH . '/', $imageName, $arrSettings['max_thumbnail_pic_width']['value'], $arrSettings['max_thumbnail_pic_height']['value'], 70);
     }
 }