Beispiel #1
0
	protected function execScaffoldDelete($prm = null) {
		$id = $prm[0];
		$this->row = $this->table->find($id);
		$this->hook('delete');
		$this->hook('beforeDelete');
		if ($this->row)
			$this->row->delete();
		$this->hook('afterDelete');
		response::getInstance()->redirect($this->indexPage);
	}
Beispiel #2
0
	/**
	 * Login the current user
	 *
	 * @param mixed $prm
	 * @param null|string $page The page where to be redirected. If null, config will be used
	 * @param boolean $redirectIfLogged Enable the redirect when login is successful
	 * @return bool True if successful
	 */
	public function login($prm = null, $page = null, $redirectIfLogged = true) {
		$loginField = $this->cfg->getInArray('fields', 'login');
		$passField = $this->cfg->getInArray('fields', 'pass');

		$form = $this->getLoginForm();
		if (is_null($prm)) {
			if (request::isPost()) {
				$form->refill();
				$form->isValid();
				$prm = $form->getValues(true);
			}
		}

		if (is_array($prm)
			&& array_key_exists($loginField, $prm)
			&& array_key_exists($passField, $prm)) {
				$this->user = $this->table->find(array_merge(
					$this->cfg->where,
					$this->getWhereLogin($prm[$loginField], $prm[$passField])
				));
				
				if ($this->user) {
					$this->saveLogin(array_key_exists('stayConnected', $prm) && $prm['stayConnected']);
					$this->hook('login');
				} else
					$form->addCustomError($loginField, $this->cfg->errorMsg);
				if ($this->logged && $redirectIfLogged) {
					if (is_null($page)) {
						if ($this->session->pageFrom) {
							$page = $this->session->pageFrom;
							unset($this->session->pageFrom);
						} else
							$page = request::uri($this->getPage('logged'));
					} else
						$page = request::uri($page);
					response::getInstance()->redirect($page);
				}
		}
		return $this->logged;
	}