Example #1
0
	function login () {
		
		// Load Auth app
		$auth_app = Frix::app('auth');
		
		// Already authorized?
		if ($auth_app->get_user()) {
			// Go to the admin home
			redir(url(self::$root));
		}
		
		// Load AuthUser model
		$auth_app->load_model('AuthUser');
		// Get model meta
		$meta = AuthUser::meta();
		
		$f = new Form;
		$f->add_fields(array(
			'username' => new CharField('Username', array('length' => 30)),
			'password' => new PasswordField('Password', array('length' => 32)),
		));
		
		if ($_SERVER['REQUEST_METHOD'] == 'POST') {
			
			$f->input($_POST);
			
			$user = $meta->one(array('username' => $f->get_username()));
			
			if ($auth_app->authenticate($user, $f->get_password())) {
				redir($_SERVER['REQUEST_URI']);
			}
			else {
				self::$context['msg'] = 'Wrong username or password.';
				self::$context['msg_type'] = 'err';
			}
			
		}
		
		self::$context['form'] = $f;
		
		$t = new Template('frix/admin/login');
		echo $t->render(self::$context);
		
	}