Пример #1
0
 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';
         }
     }
 }
Пример #2
0
 function searchByCriteria($criteria)
 {
     return BaseDao::searchByCriteria($this, $criteria);
 }
Пример #3
0
 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;
 }