Example #1
0
 function methodProcessForm()
 {
     $aForm = $this->loadForm();
     //var_dump($aForm["form"]);
     if (!$this->validateForm($aForm["form"])) {
         FlexiLogger::error(__METHOD__, "Validation failed");
         $this->addMessage("Validation failed", "error");
         return $this->renderForm($aForm);
     }
     //var_dump($this->getRequest("txtListKey"));
     $oModel = $this->getModelFromForm("RepositoryListValuesTable", $aForm["form"]);
     if (!$oModel->isValid()) {
         FlexiLogger::error(__METHOD__, "Validation failed.");
         $this->addMessage("Validation failed.", "error");
         return $this->runControl("form");
     }
     try {
         $oModel->replace();
         //$this->oView->addVar("message", "saved.");
         $this->addMessage("Saved", "success");
         return $this->redirectControl(null, "default");
     } catch (Exception $e) {
         FlexiLogger::error(__METHOD__, "Save failed:" . $e->getMessage());
         return $this->runControl("form");
     }
 }
Example #2
0
 public function render($sView, $aVariables = null, $asPath = null)
 {
     if (!is_null($aVariables)) {
         $vars = FlexiArrayUtil::cloneArray($aVariables);
     } else {
         //var_dump($this->aVariables);
         $vars = FlexiArrayUtil::cloneArray($this->aVariables);
     }
     $vars["#viewpath"] = $asPath;
     $vars["#css"] = $this->aHeader["css"];
     $vars["#js"] = $this->aHeader["js"];
     $vars["#template"] = $this->sTemplate;
     $sViewFile = "";
     //final file
     $sViewFile = $this->getViewFile($sView, $asPath);
     if (empty($sViewFile)) {
         FlexiLogger::error(__METHOD__, "View: " . $sView . " is missing...");
         return null;
     }
     //echo "rendering view: " . $sViewFile;
     ob_start();
     //FlexiLogger::info(__METHOD__, "found view: " . $sViewFile);
     require $sViewFile;
     $sResult = ob_get_contents();
     @ob_end_clean();
     return $sResult;
 }
Example #3
0
 public function getMe()
 {
     if (is_null($this->me)) {
         $this->startSession();
         try {
             $this->me = $this->facebook->api('/me');
             //var_dump($this->me);
         } catch (FacebookApiException $e) {
             FlexiLogger::error(__METHOD__, "failed");
         }
     }
     return $this->me;
 }
Example #4
0
 /**
  * Check if login session is same as last login in db
  */
 public function checkLoginSession()
 {
     $iUserId = $this->getLoggedInUserId();
     $oModel = FlexiModelUtil::getDBQuery("ModxWebUserAttributes", "flexiphp/base/FlexiAdminUser")->where("internalKey=?", array($iUserId))->fetchOne();
     if ($oModel !== false && $oModel != null) {
         //check session
         $sSessionId = session_id();
         if ($sSessionId != $oModel->sessionid) {
             FlexiLogger::error(__METHOD__, "Login expired: " . $sSessionId . " vs " . $oModel->sessionid);
             $this->onLogout();
             return false;
         }
     }
     return true;
 }
 public function onLogin(&$asLoginId, &$asLoginPass, &$asConfig = array())
 {
     global $modx;
     $sDBPass = md5($asLoginPass);
     FlexiLogger::debug(__METHOD__, "Trying to login: "******", " . $asLoginPass . "(" . $sDBPass . ")");
     $aParams = array("loginid" => &$asLoginId, "password" => &$asLoginPass, "config" => &$asConfig);
     FlexiEvent::triggerEvent("preLogin", $aParams);
     $sType = $asConfig["type"];
     if ($sType == "user") {
         $bean = FlexiModelUtil::getInstance()->getRedbeanFetchOne("select * from " . FlexiConfig::$sDBPrefix . "users" . " where user_name=:user_name and password=:password AND deleted = 'N'", array(":user_name" => $asLoginId, ":password" => $sDBPass));
         if (empty($bean["user_id"])) {
             FlexiLogger::error(__METHOD__, "User Id: " . $iUserId . "({$sType}) not found");
         } else {
             $bStatus = true;
         }
     } else {
         if ($sType == "seller") {
             $bean = FlexiModelUtil::getInstance()->getRedbeanFetchOne("select * from " . FlexiConfig::$sDBPrefix . "artists" . " where artist_name=:user_name and password=:password AND deleted = 'N'", array(":user_name" => $asLoginId, ":password" => $sDBPass));
             if (empty($bean["artist_id"])) {
                 FlexiLogger::error(__METHOD__, "User Id: " . $iUserId . "({$sType}) not found");
             } else {
                 $bStatus = true;
             }
         }
     }
     $mReturn = array("msg" => "");
     $aParams = array("status" => &$bStatus, "user" => &$bean, "loginid" => &$asLoginId, "password" => &$asLoginPass, "config" => &$asConfig, "return" => &$mReturn);
     FlexiEvent::triggerEvent("postLogin", $aParams);
     if ($bStatus) {
         FlexiLogger::debug(__METHOD__, "Login Success: " . $asLoginId . "({$sType})");
         if ($sType == "user") {
             $_SESSION["sess_username"] = $bean["user_name"];
             $_SESSION["sess_userid"] = $bean["user_id"];
         } else {
             if ($sType == "seller") {
                 $_SESSION["sess_artistname"] = $bean["artist_name"];
                 $_SESSION["sess_artistid"] = $bean["artist_id"];
             }
         }
         if ($bean["user_id"] == FlexiConfig::$iAdminId) {
             $adminbean = FlexiModelUtil::getInstance()->getRedbeanFetchOne("select * from " . FlexiConfig::$sDBPrefix . "settings limit 1");
             $_SESSION["sess_adminname"] = $adminbean["admin_name"];
         }
         return true;
     }
     FlexiLogger::debug(__METHOD__, "Login Failed: " . $asLoginId);
     return false;
 }
 public function informError($sMsg)
 {
     //echo, write to file, and mail?
     $aLine = explode("\n", $sMsg);
     $sResult = "";
     foreach ($aLine as $sLine) {
         $sResult .= "[" . get_class($this) . "]:" . $sLine . "<br/>\n";
     }
     echo $sResult;
     FlexiLogger::error(__METHOD__, $sResult);
     if (!empty($this->sInformEmail)) {
         $sHeader = "From: " . FlexiConfig::$sSupportEmail . "\n" . "Reply-to: " . FlexiConfig::$sSupportEmail;
         $oMail = FlexiMailer::getInstance();
         $oMail->mail(FlexiConfig::$sBaseURLDir . ":Error", $sResult, $this->sInformEmail, "text");
     }
 }
Example #7
0
 public function onUpdate($oModel)
 {
     FlexiLogger::error(__METHOD__, "Model: " . $oModel->id);
     $aForm = self::getFormFields();
     FlexiModelUtil::validateForm($aForm, $oModel);
 }
Example #8
0
 public function onLogin(&$asLoginId, &$asLoginPass, &$asConfig = array())
 {
     global $modx;
     $sDBPass = md5($asLoginPass);
     $aParams = array("loginid" => &$asLoginId, "password" => &$asLoginPass, "config" => &$asConfig);
     FlexiEvent::triggerEvent("preLogin", $aParams);
     $aWhere = array("username" => $asLoginId, "password" => $sDBPass);
     $oQuery = $modx->newQuery("modUser")->where($aWhere);
     $oUser = $modx->getObject("modUser", $oQuery);
     if (is_null($oUser)) {
         return false;
     }
     $bStatus = false;
     if (FlexiConfig::$bRequireEmailVerification) {
         $oProfile = $oUser->getOne("Profile");
         if ($oProfile) {
             $oExtend = $oProfile->get("extend");
             if (!empty($oExtend)) {
                 if ($oExtend->get("verified") != 1) {
                     FlexiLogger::error(__METHOD__, "Account not verified: " . $oUser->get("id"));
                     return false;
                 }
             }
             //if extend has value
         }
         //if profile exists
         $bStatus = true;
     } else {
         $bStatus = true;
     }
     FlexiLogger::info(__METHOD__, "after verification");
     $mReturn = array("msg" => "");
     $aParams = array("status" => &$bStatus, "user" => &$oUser, "loginid" => &$asLoginId, "password" => &$asLoginPass, "config" => &$asConfig, "return" => &$mReturn);
     FlexiEvent::triggerEvent("postLogin", $aParams);
     if ($bStatus) {
         FlexiLogger::info(__METHOD__, "Login Success: " . $asLoginId . ", op context: " . $asConfig["context"]);
         $additionalContext = "";
         $loginContext = !empty($asConfig["context"]) ? $asConfig["context"] : "web";
         if (strpos($loginContext, ",") !== false) {
             $contexts = explode(",", $loginContext);
             $loginContext = array_shift($contexts);
             $additionalContext = implode(",", $contexts);
         }
         /* set default POST vars if not in form */
         $scriptProperties = array("username" => $asLoginId, "password" => $asLoginPass, "rememberme" => isset($asConfig["rememberme"]) ? $asConfig["rememberme"] : false, "session_cookie_lifetime" => isset($asConfig["session_cookie_lifetime"]) ? $asConfig["session_cookie_lifetime"] : null, "login_context" => $loginContext);
         if (!empty($additionalContext)) {
             $scriptProperties["add_contexts"] = $additionalContext;
         }
         FlexiLogger::debug(__METHOD__, "Login: "******"Trying to login: "******"url: " . $response['object']['url'];
         if (!empty($response) && is_array($response)) {
             if (!empty($response['success']) && isset($response['object'])) {
                 FlexiLogger::info(__METHOD__, "Modx2.Login Success: " . $asLoginId);
                 FlexiLogger::info(__METHOD__, "groups: " . implode(",", $modx->getAuthenticatedUser($loginContext)->getResourceGroups()));
             } else {
                 FlexiLogger::error(__METHOD__, "Modx2.Login Failed: " . $asLoginId . ", " . print_r($response, true));
             }
         }
         //success
         //      $_SESSION["webValidated"] = 1;
         //      $_SESSION["webInternalKey"] = $oUser->get("id");
         //      $_SESSION['webShortname'] = $oUser->get("username");
         //      $_SESSION['userid'] = $oUser->get("id");
         //
         //      //getting group names
         //      FlexiLogger::info(__METHOD__, "Logged in: " . $_SESSION['webShortname']);
         //      $aGroupModel = $oUser->getMany("UserGroupMembers");
         //      FlexiLogger::info(__METHOD__, "Doc groups: " . count($aGroupModel));
         //      $aGroup = array();
         //      foreach($aGroupModel as $oGroup) {
         //        foreach($oGroup->GroupAccess as $oAccess) {
         //          $aGroup[] = $oGroup->getOne("UserGroup")->get("name");
         //        }
         //      }
         //      $_SESSION['webDocgroups'] = $aGroup;
         return true;
     }
     FlexiLogger::debug(__METHOD__, "Login Failed: " . $asLoginId);
     return false;
 }
Example #9
0
 public function methodLogin()
 {
     $sUserId = $this->getPost("txtLogin");
     $sPassword = $this->getPost("txtPassword");
     $sRedirect = $this->getRequest("refurl");
     $iStandalone = $this->getRequest("standalone", 0);
     $sRemember = $this->getRequest("rememberme", false);
     $sContext = $this->getRequest("context", "");
     if (FlexiConfig::$sFramework == "modx") {
         $sLoginMode = $this->getRequest("webloginmode");
         if (!empty($sLoginMode)) {
             //logout of modx core...
             //so we redirect to main
             $this->setViewName("returnhome");
             return false;
         }
     }
     //is logout
     if (FlexiConfig::$sFramework == "modx2") {
         if ($this->getRequest("service") == "logout") {
             $this->setViewName("returnhome");
             return false;
         }
     }
     //FlexiLogger::info(__METHOD__, "Attemptng to login: "******", pwd: " . $sPassword);
     $sRedirect = empty($sRedirect) ? "" : FlexiCryptUtil::b64Decrypt($sRedirect);
     if (FlexiConfig::$sFramework == "modx2") {
         $sRedirect = str_replace(array('?service=logout', '&service=logout', '&amp;service=logout'), '', $sRedirect);
     }
     $aOption = array("url" => $sRedirect);
     $aOption["standalone"] = $iStandalone == 1 ? true : false;
     $aOption["rememberme"] = empty($sRemember) ? false : true;
     $aOption["context"] = empty($sContext) ? null : $sContext;
     //die("url: " . $sRedirect);
     $oLogin = FlexiConfig::getLoginHandler();
     if (!$oLogin->existsUser($sUserId)) {
         $sMessage = flexiT("Login fail", "first");
         $this->addMessage($sMessage, "error");
         $aOption["error"] = $sMessage;
         FlexiLogger::error(__METHOD__, $sMessage);
         $sURL = FlexiConfig::getLoginHandler()->getLoginURL($sUserId, $sPassword, $aOption);
         //return $this->redirectURL(FlexiPlatformHandler::getReferrerURL());
         return $this->redirectURL($sURL);
     }
     //FlexiLogger::error(__METHOD__, "b4");
     if (FlexiConfig::$bRequireEmailVerification && !$oLogin->getIsVerified($sUserId)) {
         $sMessage = flexiT("Sorry, please verify your email first", "first");
         FlexiLogger::error(__METHOD__, $sMessage);
         $this->addMessage($sMessage, "error");
         $this->addMessage("<a href='" . $this->url(array("txtLogin" => $sUserId), "resendVerify") . "'>Click here to resend your verification</a>", "error");
         $aOption["error"] = 1;
         $sURL = FlexiConfig::getLoginHandler()->getLoginURL($sUserId, $sPassword, $aOption);
         //return $this->redirectURL(FlexiPlatformHandler::getReferrerURL());
         return $this->redirectURL($sURL);
     }
     //FlexiLogger::error(__METHOD__, "after");
     $bResult = $oLogin->doLogin($sUserId, $sPassword, $aOption);
     if ($bResult) {
         FlexiLogger::debug(__METHOD__, "login ok");
         $this->oView->addVar("url", $sRedirect);
         return true;
     } else {
         $sMessage = flexiT("Login fail", "first");
         FlexiLogger::error(__METHOD__, $sMessage);
         $this->addMessage($sMessage, "error");
         $aOption["error"] = $sMessage;
         //die("redirect: " . $sRedirect);
         $sURL = FlexiConfig::getLoginHandler()->getLoginURL($sUserId, $sPassword, $aOption);
         //return $this->redirectURL(FlexiPlatformHandler::getReferrerURL());
         return $this->redirectURL($sURL);
     }
 }
Example #10
0
 /**
  * Run control with custom view variable name or no render view
  * @param String $asMethod
  * @param String $asModule
  * @param String $asRenderViewName
  * @return boolean
  */
 public function _runControl($asMethod, $asModule = null, $asRenderViewName = "")
 {
     $sMethod = "method" . ucfirst($asMethod);
     $sModule = get_class($this);
     if (!empty($asModule) && $sModule != $asModule . "Controller") {
         FlexiLogger::debug(__METHOD__, "Calling other class: " . $sModule . "::" . $sMethod);
         $aResult = FlexiController::getInstance()->_run($asModule, $asMethod, $this->oView);
         return $aResult["return"];
     }
     FlexiLogger::debug(__METHOD__, "Calling: " . $sModule . "::" . $sMethod);
     if (!method_exists($this, $sMethod)) {
         FlexiLogger::error(__METHOD__, "module: " . $sModule . ", method: " . $asMethod . " is missing.");
         die("method: " . $asMethod . " of module: " . $sModule . " does not exists");
         return false;
     }
     $this->setViewName($asMethod);
     //Flexilogger::info(__METHOD__, "Setting Render view var name: " . $asRenderViewName);
     //echo "setting render view: " . $asRenderViewName . "<Br/>\n";
     $this->setRenderViewName($asRenderViewName);
     //Flexilogger::info(__METHOD__, "Checking permission: " . $asMethod);
     $this->checkPermission($asMethod);
     Flexilogger::debug(__METHOD__, "Permission (OK): " . $asMethod);
     //Flexilogger::debug(__METHOD__, "Setted view");
     $sModuleName = substr($sModule, 0, -10);
     $this->oView->addVar("#module", $sModuleName);
     $this->oView->addVar("#method", $asMethod);
     $sModulePath = FlexiController::getControllerPath($sModuleName);
     //+1 due to extra /
     //$this->oView->addVar("#modulepath", substr($sModulePath, strlen(FlexiConfig::$sRootDir)+1));
     $this->oView->addVar("#modulepath", $sModulePath);
     //if (FlexiConfig::$bIsAdminPath) echo "root: " . FlexiConfig::$sRootDir . "\r\n<br/>";
     //if (FlexiConfig::$bIsAdminPath) echo "modpath: " . $sModulePath . "\r\n<br/>";
     if ((FlexiConfig::$sFramework == "modx" || FlexiConfig::$sFramework == "modx2") && FlexiConfig::$bIsAdminPath) {
         $sRootDir = dirname(FlexiConfig::$sRootDir);
         $this->oView->addVar("#moduleurl", (FlexiConfig::$sFramework == "modx2" ? "../" : "") . substr($sModulePath, strlen($sRootDir) + 1));
     } else {
         $sRootDir = FlexiConfig::$sRootDir;
         $this->oView->addVar("#moduleurl", substr($sModulePath, strlen($sRootDir) + 1));
     }
     //Flexilogger::debug(__METHOD__, "Calling beforeControl: " . $asMethod);
     if (!$this->beforeControl($asMethod)) {
         return false;
     }
     //Flexilogger::debug(__METHOD__, "Running method: " . $sMethod);
     //echo "b4: " . $this->sLayoutTemplate;
     $bReturn = $this->{$sMethod}();
     //echo "after: " . $this->sLayoutTemplate;
     //die();
     //FlexiLogger::debug(__METHOD__, "Return: " . $sModuleName . "::" . $sMethod . ": " . serialize($bReturn));
     if (is_null($bReturn)) {
         throw new FlexiException("No return after for: " . $sModuleName . "::" . $sMethod, ERROR_RETURNVALUE);
     }
     $this->afterControl($asMethod, $bReturn);
     //echo "getting view var: " . $asRenderViewName . "<Br/>\n";
     if (!empty($this->sRenderViewName)) {
         //Flexilogger::info(__METHOD__, "Rendering View: " . $this->sRenderViewName . ":" . $this->sViewName . " method:" . $asMethod);
         //echo __METHOD__ . "Rendering View: " . $this->sRenderViewName . ", tpl: " . $this->sViewName . ", method:" . $asMethod . "<br/>\n";
         //only render if view name exists
         if (!empty($this->sViewName)) {
             $this->oView->addVar($this->sRenderViewName, $this->renderView());
         }
     } else {
         Flexilogger::debug(__METHOD__, "No view to render: " . $this->sRenderViewName);
     }
     //FlexiLogger::info(__METHOD__, "rendered output: " . $this->oView->getVar($this->sRenderViewName));
     return $bReturn;
 }
 public function verifyUser($iId, $sCode)
 {
     $oModel = FlexiModelUtil::getDBQuery("ModxWebUsers", "flexiphp/base/FlexiAdminUser")->where("id=?", array($iId))->fetchOne();
     if ($oModel === false) {
         return false;
     }
     //echo "Comparing: " . $sCode . " vs " . $oModel->Extend->verifycode;
     try {
         //echo "same :)";
         if ($oModel->Extend->verifycode == $sCode) {
             $oModel->Extend->verified = 1;
             $oModel->Extend->replace();
             return true;
         }
     } catch (Exception $e) {
         //echo "error: " . $e->getMessage();
         FlexiLogger::error(__METHOD__, "Unable to save User verification");
         return false;
     }
 }
 /**
  * @param string message
  * @param int	code:
  * 	0: uncategoriesed code, 1: invalid class type
  */
 public function __construct($message = "", $code = 0)
 {
     FlexiLogger::error(__METHOD__, $code . ":" . $message);
     parent::__construct($message, $code);
 }
Example #13
0
 function methodModXProcessform()
 {
     $iId = $this->getRequest("rid");
     $aForm = $this->loadForm();
     if (!empty($iId)) {
         $oModel = $this->getDBQuery("ModxWebUsers")->where("id=?", array($iId))->fetchOne();
         if ($oModel === false) {
             FlexiLogger::error(__METHOD__, "Record not found.");
             $this->addMessage("Record not found", "error");
             return $this->renderForm($aForm);
         }
         $oModel = $this->getModelFromForm($oModel, $aForm["form"]);
     } else {
         $oModel = $this->getModelFromForm("ModxWebUsers", $aForm["form"]);
     }
     $oModel->Attributes->fullname = $aForm["form"]["txtFullName"]["#value"];
     //$oModel->dob 					= "1980-01-01";
     if (!$this->validateFormByModel($aForm["form"], $oModel) || !$this->validateForm($aForm["form"])) {
         FlexiLogger::error(__METHOD__, "Validation failed: " . $oModel->getErrorStackAsString());
         $this->addMessage("Validation failed", "error");
         return $this->renderForm($aForm);
     }
     FlexiLogger::debug(__METHOD__, "ok");
     try {
         $oModel->replace();
         $oGroupModel = $this->getModelInstance("ModxWebGroups");
         $oGroupModel->webuser = $oModel->id;
         $oGroupModel->webgroup = 2;
         //hardcoded to registered user
         $oGroupModel->replace();
         //$this->oView->addVar("message", "saved.");
         $this->addMessage("Saved", "success");
         return $this->runControl("default");
     } catch (Exception $e) {
         FlexiLogger::error(__METHOD__, "Save failed:" . $e->getMessage());
         $this->addMessage("Error saving: " . $e->getMessage(), "error");
         return $this->runControl("form");
     }
 }
Example #14
0
 public static function includeModelFile($asName, $asPath)
 {
     $sModelClass = $asName;
     if (!class_exists($sModelClass)) {
         $oInstance = self::getInstance();
         $sModelFile = $oInstance->getModelFile($sModelClass, $asPath);
         if (is_null($sModelFile)) {
             FlexiLogger::error(__METHOD__, "Model: " . $asName . " of " . $asPath . " is missing...");
             throw new FlexiException("Model: " . $asName . " of " . $asPath . " is missing...");
         } else {
             FlexiLogger::debug(__METHOD__, "Including model: " . $sModelFile);
             require_once $sModelFile;
             return;
         }
     }
 }
Example #15
0
 public function checkPermission($sTitle)
 {
     if (!$this->hasAccessToContent($sTitle)) {
         FlexiLogger::error(__METHOD__, "Permission denied: " . get_class($this) . ":" . $sTitle);
         FlexiController::getInstance()->redirectURL(FlexiConfig::$sBaseURL . "?" . FlexiConfig::getRequestModuleVarName() . "=FlexiLogin&" . FlexiConfig::getRequestMethodVarName() . "=denied");
     }
     FlexiPlatformHandler::getPlatformHandler()->forceDie();
 }
Example #16
0
 public function getNewController($sControl, $oView, $sMethodName, $sModulePath)
 {
     $sClassName = $sControl . "Controller";
     $sBaseDir = $this->env["basedir"];
     $sModulePath = "";
     //echo "trying: " . $sControl;
     FlexiLogger::debug(__METHOD__, "Env.BaseDir: " . $sBaseDir . ", cwd: " . getcwd() . ", modpath: " . FlexiConfig::$sModulePath);
     FlexiLogger::debug(__METHOD__, "Checking sModulePath: " . FlexiConfig::$sModulePath . "/" . $sControl);
     FlexiLogger::debug(__METHOD__, "Checking sModulePath: " . $sBaseDir . "/modules/" . $sControl);
     FlexiLogger::debug(__METHOD__, "Checking sModulePath: " . $sBaseDir . "/base/" . $sControl);
     if (is_file(FlexiConfig::$sModulePath . "/" . $sControl . "/controller.php")) {
         $sModulePath = FlexiConfig::$sModulePath . "/" . $sControl;
         require_once $sModulePath . "/controller.php";
     } else {
         if (is_file(FlexiConfig::$sModulePath . "/" . strtolower($sControl) . "/controller.php")) {
             $sModulePath = FlexiConfig::$sModulePath . "/" . strtolower($sControl);
             require_once $sModulePath . "/controller.php";
         } else {
             if (is_file($sBaseDir . "/modules/" . $sControl . "/controller.php")) {
                 $sModulePath = $sBaseDir . "/modules/" . $sControl;
                 FlexiLogger::debug(__METHOD__, "Checking sModulePath: " . $sModulePath);
                 require_once $sModulePath . "/controller.php";
             } else {
                 if (is_file($sBaseDir . "/modules/" . strtolower($sControl) . "/controller.php")) {
                     $sModulePath = $sBaseDir . "/modules/" . strtolower($sControl);
                     FlexiLogger::debug(__METHOD__, "Checking sModulePath: " . $sModulePath);
                     require_once $sModulePath . "/controller.php";
                 } else {
                     if (is_file($sBaseDir . "/base/" . $sControl . "/controller.php")) {
                         $sModulePath = $sBaseDir . "/base/" . $sControl;
                         FlexiLogger::debug(__METHOD__, "Checking sModulePath: " . $sModulePath);
                         require_once $sModulePath . "/controller.php";
                     } else {
                         if (is_file($sBaseDir . "/base/" . strtolower($sControl) . "/controller.php")) {
                             $sModulePath = $sBaseDir . "/base/" . strtolower($sControl);
                             FlexiLogger::debug(__METHOD__, "Checking sModulePath: " . $sModulePath);
                             require_once $sModulePath . "/controller.php";
                         }
                     }
                 }
             }
         }
     }
     if (!class_exists($sClassName)) {
         //echo "not found: " . $sClassName;
         FlexiLogger::error(__METHOD__, "module: " . $sControl . " is missing.");
         throw new Exception("No such class: " . $sClassName);
         return;
     }
     FlexiLogger::debug(__METHOD__, "found module: " . $sControl . " at " . $sModulePath);
     //echo "found module: " . $sControl . " at " . $sModulePath;
     //echo "setting controllerpath: " . $sControl . "=>" . $sModulePath;
     $this->aControllerPath[strtolower($sControl)] = $sModulePath;
     //echo "initialising class: " . $sClassName;
     $oClass = new $sClassName($oView, $sMethodName, $sModulePath);
     //echo "xxxx";
     if (!is_subclass_of($oClass, "FlexiBaseController")) {
         //echo "no class of: " . $sClassName;
         throw new FlexiException("Class: " . $sClassName . " is not of type FlexiBaseController", 500);
     }
     //echo "ok: " .$sClassName;
     return $oClass;
 }
Example #17
0
 public static function doLockFile($sPath)
 {
     $fp = fopen($sPath, "w");
     if (flock($fp, LOCK_EX)) {
         // do an exclusive lock
         ftruncate($fp, 0);
         // truncate file
         fwrite($fp, "Lock");
         $bResult = true;
         self::$aLocks[$sPath] = $fp;
         FlexiLogger::error(__METHOD__, "Locked file: " . $sPath);
         //flock($fp, LOCK_UN); // release the lock
     } else {
         FlexiLogger::error(__METHOD__, "Unable to lock file: " . $sPath);
         $bResult = false;
     }
     return $bResult;
 }
Example #18
0
File: rb.php Project: u007/FlexiPHP
 /**
  * (non-PHPdoc)
  * @see RedBean/RedBean_Driver#Execute()
  */
 public function Execute($sql, $aValues = array())
 {
     //FlexiLogger::error(__METHOD__, "SQL: " . $sql);
     $this->exc = 0;
     if ($this->debug) {
         echo "<HR>" . $sql . print_r($aValues, 1);
     }
     try {
         if (strpos("pgsql", $this->dsn) === 0) {
             $s = $this->pdo->prepare($sql, array(PDO::PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT => true));
         } else {
             $s = $this->pdo->prepare($sql);
         }
         $s->execute($aValues);
         $this->affected_rows = $s->rowCount();
         return $this->affected_rows;
     } catch (PDOException $e) {
         //Unfortunately the code field is supposed to be int by default (php)
         //So we need a property to convey the SQL State code.
         FlexiLogger::error(__METHOD__, "SQL: " . $sql . ", error: " . $e->getMessage());
         if (version_compare(PHP_VERSION, '5.3.0', '<')) {
             $x = new RedBean_Exception_SQL($e->getMessage(), 0);
         } else {
             $x = new RedBean_Exception_SQL($e->getMessage(), 0, $e);
         }
         $x->setSQLState($e->getCode());
         throw $x;
     }
     //
 }
 public function verifyUser($iId, $sCode)
 {
     global $modx;
     $oModel = $modx->getObject("modUser", $iId);
     if (is_null($oModel)) {
         return false;
     }
     $oUserExtend = FlexiModelUtil::Instance()->getRedbeanFetchOne("select * from modx_userextend where userid=:userid", array(":userid" => $iId));
     if (!empty($oUserExtend->id)) {
         $sVerifyCode = $oUserExtend->verifycode;
         if ($sCode == $sVerifyCode) {
             return true;
         }
     }
     FlexiLogger::error(__METHOD__, "Unable to save User verification");
     return false;
 }