public function action($action = 'main') { switch ($action) { case 'login': $rememberme = false; if (isset($_POST['remember_me'])) { $rememberme = true; } $user = new user($_POST['username']); $user->login($_POST['password'], $rememberme); if (isset($_SESSION['user'])) { header('Location: ./'); } else { $user = new user(); $v = new userView($user); $v->login(true); } break; case 'logout': $this->user->logout(); $this->user = new user(); $v = new userView($this->user); $v->login(); break; case 'main': $v = new userView($this->user); $v->main(); break; case 'updatepassword': if ($_POST['password1'] === $_POST['password2']) { $ret = $this->user->updatepassword($_POST['currentpassword'], $_POST['password1']); } else { $ret = false; } $v = new userView($this->user); if ($ret) { $v->main(); } else { $v->updatepassword(true); } break; case 'updatepassword_view': $v = new userView($this->user); $v->updatepassword(); break; case 'changeuser': if ($this->user->isgroupmember('admins')) { $v = new userView($this->user); $v->changeuser(); } break; case 'adduser': if ($this->user->isgroupmember('admins')) { $ret = new user($_POST['username'], $_POST['password'], $_POST['groupname']); } $v = new userView($this->user); $v->changeuser(); break; case 'adduser_view': if ($this->user->isgroupmember('admins')) { $v = new userView($this->user); $v->adduser(); } break; case 'deleteuser': if ($this->user->isgroupmember('admins')) { $ret = $this->user->deleteuser($_POST['username']); } $v = new userView($this->user); $v->changeuser(); break; case 'enableuser': if ($this->user->isgroupmember('admins')) { $user = new User($_POST['username']); if ($_POST['enabled'] === 'enabled') { $user->enable(true); } if ($_POST['enabled'] === 'disabled') { $user->enable(false); } } $v = new userView($this->user); $v->changeuser(); break; case 'changeusergroup': if ($this->user->isgroupmember('admins')) { $user = new User($_POST['username']); $user->updategroup($_POST['groupname']); } $v = new userView($this->user); $v->changeuser(); break; case 'changeuserpassword': if ($this->user->isgroupmember('admins')) { $this->user->resetuserpassword($_POST['username'], $_POST['password']); } $v = new userView($this->user); $v->changeuser(); break; case 'changeuserpassword_view': if ($this->user->isgroupmember('admins')) { $v = new userView($this->user); $v->changeuserpassword($_POST['username']); } break; default: die('Unkown action: ' . $action); break; } }