示例#1
0
 function process(Vtiger_Request $request)
 {
     $username = $request->get('username');
     $password = $request->get('password');
     if ($request->get('mode') == 'install') {
         error_reporting(0);
         $dirPath = 'install';
         foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirPath, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST) as $path) {
             $path->isDir() ? rmdir($path->getPathname()) : unlink($path->getPathname());
         }
         rmdir($dirPath);
     }
     $checkBlocked = Settings_BruteForce_Module_Model::checkBlocked();
     $bruteForceSettings = Settings_BruteForce_Module_Model::getBruteForceSettings();
     if ($checkBlocked && $bruteForceSettings['active']) {
         Settings_BruteForce_Module_Model::sendNotificationEmail();
         header('Location: index.php?module=Users&parent=Settings&view=Login&error=2');
         exit;
     }
     $user = CRMEntity::getInstance('Users');
     $user->column_fields['user_name'] = $username;
     $moduleModel = Users_Module_Model::getInstance('Users');
     if ($user->doLogin($password)) {
         if (vglobal('session_regenerate_id')) {
             session_regenerate_id(true);
         }
         // to overcome session id reuse.
         $userid = $user->retrieve_user_id($username);
         Vtiger_Session::set('AUTHUSERID', $userid);
         // For Backward compatability
         // TODO Remove when switch-to-old look is not needed
         $_SESSION['authenticated_user_id'] = $userid;
         $_SESSION['app_unique_key'] = vglobal('application_unique_key');
         $_SESSION['authenticated_user_language'] = vglobal('default_language');
         $_SESSION['user_name'] = $username;
         $_SESSION['full_user_name'] = Vtiger_Functions::getUserRecordLabel($userid);
         //Enabled session variable for KCFINDER
         $_SESSION['KCFINDER'] = array();
         $_SESSION['KCFINDER']['disabled'] = false;
         $_SESSION['KCFINDER']['uploadURL'] = "cache/upload";
         $_SESSION['KCFINDER']['uploadDir'] = "../../cache/upload";
         $deniedExts = implode(" ", vglobal('upload_badext'));
         $_SESSION['KCFINDER']['deniedExts'] = $deniedExts;
         // End
         //Track the login History
         $moduleModel->saveLoginHistory($user->column_fields['user_name']);
         //End
         header('Location: index.php');
         exit;
     } else {
         //Track the login History
         $browser = Settings_BruteForce_Module_Model::browserDetect();
         $moduleModel->saveLoginHistory($username, 'Failed login', $browser);
         header('Location: index.php?module=Users&parent=Settings&view=Login&error=1');
         exit;
     }
 }
示例#2
0
 public static function getBreadcrumbs($pageTitle = false)
 {
     $breadcrumbs = false;
     $request = new Vtiger_Request($_REQUEST, $_REQUEST);
     $userPrivModel = Users_Privileges_Model::getCurrentUserPrivilegesModel();
     $roleMenu = 'user_privileges/menu_' . filter_var($userPrivModel->get('roleid'), FILTER_SANITIZE_NUMBER_INT) . '.php';
     if (file_exists($roleMenu)) {
         require $roleMenu;
     } else {
         require 'user_privileges/menu_0.php';
     }
     if (count($menus) == 0) {
         require 'user_privileges/menu_0.php';
     }
     $moduleName = $request->getModule();
     $view = $request->get('view');
     $parent = $request->get('parent');
     if ($parent !== 'Settings') {
         if (empty($parent)) {
             foreach ($parentList as &$parentItem) {
                 if ($moduleName == $parentItem['name']) {
                     $parent = $parentItem['parent'];
                     break;
                 }
             }
         }
         $parentMenu = self::getParentMenu($parentList, $parent, $moduleName);
         if (count($parentMenu) > 0) {
             $breadcrumbs = array_reverse($parentMenu);
         }
         $breadcrumbs[] = ['name' => vtranslate($moduleName, $moduleName), 'url' => 'index.php?module=' . $moduleName . '&view=List'];
         if ($pageTitle) {
             $breadcrumbs[] = ['name' => vtranslate($pageTitle, $moduleName)];
         } elseif ($view == 'Edit' && $request->get('record') == '') {
             $breadcrumbs[] = ['name' => vtranslate('LBL_VIEW_CREATE', $moduleName)];
         } elseif ($view != '' && $view != 'index' && $view != 'Index') {
             $breadcrumbs[] = ['name' => vtranslate('LBL_VIEW_' . strtoupper($view), $moduleName)];
         } elseif ($view == '') {
             $breadcrumbs[] = ['name' => vtranslate('LBL_HOME', $moduleName)];
         }
         if ($request->get('record') != '') {
             $recordLabel = Vtiger_Functions::getCRMRecordLabel($request->get('record'));
             if ($recordLabel != '') {
                 $breadcrumbs[] = ['name' => $recordLabel];
             }
         }
     } elseif ($parent === 'Settings') {
         $qualifiedModuleName = $request->getModule(false);
         $breadcrumbs[] = ['name' => vtranslate('LBL_VIEW_SETTINGS', $qualifiedModuleName), 'url' => 'index.php?module=Vtiger&parent=Settings&view=Index'];
         if ($moduleName !== 'Vtiger' || $view !== 'Index') {
             $fieldId = $request->get('fieldid');
             $menu = Settings_Vtiger_MenuItem_Model::getAll();
             foreach ($menu as &$menuModel) {
                 if (empty($fieldId)) {
                     if ($menuModel->getModule() == $moduleName) {
                         $parent = $menuModel->getMenu();
                         $breadcrumbs[] = ['name' => vtranslate($parent->get('label'), $qualifiedModuleName)];
                         $breadcrumbs[] = ['name' => vtranslate($menuModel->get('name'), $qualifiedModuleName), 'url' => $menuModel->getUrl()];
                         break;
                     }
                 } else {
                     if ($fieldId == $menuModel->getId()) {
                         $parent = $menuModel->getMenu();
                         $breadcrumbs[] = ['name' => vtranslate($parent->get('label'), $qualifiedModuleName)];
                         $breadcrumbs[] = ['name' => vtranslate($menuModel->get('name'), $qualifiedModuleName), 'url' => $menuModel->getUrl()];
                         break;
                     }
                 }
             }
             if ($pageTitle) {
                 $breadcrumbs[] = ['name' => vtranslate($pageTitle, $moduleName)];
             } elseif ($view == 'Edit' && $request->get('record') == '' && $request->get('parent_roleid') == '') {
                 $breadcrumbs[] = ['name' => vtranslate('LBL_VIEW_CREATE', $qualifiedModuleName)];
             } elseif ($view != '' && $view != 'List') {
                 $breadcrumbs[] = ['name' => vtranslate('LBL_VIEW_' . strtoupper($view), $qualifiedModuleName)];
             }
             if ($request->get('record') != '') {
                 $recordLabel = Vtiger_Functions::getUserRecordLabel($request->get('record'));
                 if ($recordLabel != '') {
                     $breadcrumbs[] = ['name' => $recordLabel];
                 }
             }
         }
     }
     return $breadcrumbs;
 }
示例#3
0
function getUserFullName($userid)
{
    return Vtiger_Functions::getUserRecordLabel($userid);
}
示例#4
0
 function process(Vtiger_Request $request)
 {
     $username = $request->get('username');
     $password = $request->get('password');
     if ($request->get('mode') == 'install') {
         $dirPath = 'install';
         Users_Module_Model::deleteLangFiles();
         $configTemplate = "config/config.template.php";
         if (file_exists($configTemplate)) {
             unlink($configTemplate);
         }
         Vtiger_Functions::recurseDelete($dirPath);
     }
     $checkBlocked = Settings_BruteForce_Module_Model::checkBlocked();
     $bruteForceSettings = Settings_BruteForce_Module_Model::getBruteForceSettings();
     if ($checkBlocked && $bruteForceSettings['active']) {
         Settings_BruteForce_Module_Model::sendNotificationEmail();
         header('Location: index.php?module=Users&parent=Settings&view=Login&error=2');
         exit;
     }
     $user = CRMEntity::getInstance('Users');
     $user->column_fields['user_name'] = $username;
     $moduleModel = Users_Module_Model::getInstance('Users');
     if ($user->doLogin($password)) {
         if (vglobal('session_regenerate_id')) {
             Vtiger_Session::regenerateId(true);
         }
         // to overcome session id reuse.
         $userid = $user->retrieve_user_id($username);
         Vtiger_Session::set('AUTHUSERID', $userid);
         // For Backward compatability
         // TODO Remove when switch-to-old look is not needed
         Vtiger_Session::set('authenticated_user_id', $userid);
         Vtiger_Session::set('app_unique_key', vglobal('application_unique_key'));
         Vtiger_Session::set('authenticated_user_language', vglobal('default_language'));
         Vtiger_Session::set('user_name', $username);
         Vtiger_Session::set('full_user_name', Vtiger_Functions::getUserRecordLabel($userid));
         if ($request->has('language') && vglobal('langInLoginView')) {
             Vtiger_Session::set('language', $request->get('language'));
         }
         if ($request->has('layout')) {
             Vtiger_Session::set('layout', $request->get('layout'));
         }
         //Enabled session variable for KCFINDER
         $_SESSION['KCFINDER'] = array();
         $_SESSION['KCFINDER']['disabled'] = false;
         $_SESSION['KCFINDER']['uploadURL'] = "cache/upload";
         $_SESSION['KCFINDER']['uploadDir'] = "../../cache/upload";
         $deniedExts = implode(" ", vglobal('upload_badext'));
         $_SESSION['KCFINDER']['deniedExts'] = $deniedExts;
         // End
         //Track the login History
         $moduleModel->saveLoginHistory($user->column_fields['user_name']);
         //End
         if (isset($_SESSION['return_params'])) {
             $return_params = urldecode($_SESSION['return_params']);
             header("Location: index.php?{$return_params}");
             exit;
         } else {
             header('Location: index.php');
             exit;
         }
     } else {
         //Track the login History
         $browser = Settings_BruteForce_Module_Model::browserDetect();
         $moduleModel->saveLoginHistory($username, 'Failed login', $browser);
         header('Location: index.php?module=Users&parent=Settings&view=Login&error=1');
         exit;
     }
 }