public function execute() { $request = $this->getContext()->getRequest(); $username = $request->getParameter('login'); if (!$username) { return 'Form'; } else { $dao = new BaseDao("Login"); $users = $dao->searchByCriteria(new Criterion("login", CRI_FUNCTION_EQ, $username)); if ($users) { $login = $users[0]; $login->getOneRole(); $login->getAffiliates(); // print_r($login); die(); if ($login && $login->password == $request->getParameter('password')) { $this->log("User logged in. Login: {$username}."); $this->getContext()->getUser()->setAuthenticated(true); // NOTE: если поменяем тут пароль а потом случайно сохраним - то перепишем его в базе нашим волшебным активрекордом :) $login->password = ''; $this->getContext()->getUser()->setAttribute("Login", $login); $nextActionEntry = $this->getContext()->getController()->getActionStack()->getFirstEntry(); if ($nextActionEntry->getActionName() != 'Login') { $this->getContext()->getController()->forward($nextActionEntry->getModuleName(), $nextActionEntry->getActionName()); } else { return View::SUCCESS; } return View::NONE; } else { $this->log("Unsuccessfull loging attempt. Login: {$username}. Wrong password: "******"Unsuccessfull loging attempt. Wrong username: {$username}."); return 'Error'; } } }
function searchByCriteria($criteria) { return BaseDao::searchByCriteria($this, $criteria); }
public function execute() { $userRole = $this->getLoginRole(); $searchFor = $this->getContext()->getRequest()->getParameter("searchFor"); $searchStr = $this->getContext()->getRequest()->getParameter("searchString"); $sortBy = $this->getContext()->getRequest()->getParameter("sortBy"); $sortOrder = $this->getContext()->getRequest()->getParameter("sortOrder"); if (!$sortOrder) { $sortOrder = 'ASC'; } $searchRequest = $this->getContext()->getRequest()->getParameter("search"); $isAllDbSearch = $this->getContext()->getRequest()->getParameter("all"); // number of records to display in one search result page. $recPerPage = 20; $currentPage = $this->getContext()->getRequest()->getParameter("page"); if (!$currentPage) { $currentPage = 0; } $startRec = $currentPage * $recPerPage; if (!$startRec) { $startRec = 0; } if ($searchFor == 'Member') { if (!$sortBy) { $sortBy = "lastname"; } $criteria = true; $dao = new BaseDao("Member"); $criteria = $this->buildMembersCriteria($searchRequest); if ($userRole == 'editor' && !$isAllDbSearch) { $editorAffiliates = $this->findEditorAffiliates(); $members = array(); foreach ($editorAffiliates as $aff) { $members = array_merge($members, $aff->getMembers()); } $ids = $this->getListOfCertainFieldValues($members, "id"); $ids = array_unique($ids); $inCriterion = new Criterion("id", CRI_FUNCTION_IN, $ids); $criteria = new Criteria($inCriterion, CRI_LOGICAL_AND, $criteria); } $totalCount = $dao->searchByCriteria($criteria, null, 0, 0, true); $entries = $dao->searchByCriteriaWithOrder($criteria, null, $recPerPage, $startRec, $sortBy, $sortOrder); } else { $dao = new BaseDao("Affiliate"); $criteria = true; if (!$sortBy) { $sortBy = "name"; } $criteria = $this->buildAffiliateCriteria($searchRequest); if ($userRole == 'editor' && !$isAllDbSearch) { $editorAffiliates = $this->findEditorAffiliates(); $ids = $this->getListOfCertainFieldValues($editorAffiliates, "id"); $inCriterion = new Criterion("id", CRI_FUNCTION_IN, $ids); $criteria = new Criteria($inCriterion, CRI_LOGICAL_AND, $criteria); } $totalCount = $dao->searchByCriteria($criteria, null, 0, 0, true); $entries = $dao->searchByCriteriaWithOrder($criteria, null, $recPerPage, $startRec, $sortBy, $sortOrder); } foreach ($entries as $e) { $e->dig(); } $request = $this->getContext()->getRequest(); $request->setAttribute('entries', $entries); $request->setAttribute('count', $totalCount); $request->setAttribute('first', $startRec + 1); $request->setAttribute('end', $startRec + $recPerPage > $totalCount ? $totalCount : $startRec + $recPerPage); $request->setAttribute('str', $searchStr); $request->setAttribute("pageCount", ceil($totalCount / $recPerPage)); $request->setAttribute("currentPage", $currentPage); $request->setAttribute("searchRequest", $searchRequest); $request->setAttribute("searchUrl", $this->buildSearchUrl($searchRequest)); $request->setAttribute("sortUrl", $this->buildSortUrl($sortBy, $sortOrder)); $request->setAttribute("sortBy", $sortBy); $request->setAttribute("sortOrder", $sortOrder); $request->setAttribute("allDbSearch", $isAllDbSearch); $request->setAttribute("userRole", $userRole); /* if($totalCount/$recPerPage > 1) { $pages=array(); for($i=0;$i<ceil($totalCount/$recPerPage);$i++) $pages[$i] = $i; $request->setAttribute('pages', $pages); }*/ return $searchFor; }