$pluginName = "Plugin\\" . str_replace(" ", "_", ucwords(str_replace("_", " ", $pluginName))) . "\\Base"; $plugin = $pluginName::instance(); $slug = \Web::instance()->slug($plugin->_package()); $plugins[$slug] = $plugin; if (!$plugin->_installed()) { try { $plugin->_install(); } catch (Exception $e) { $f3->set("error", "Failed to install plugin " . $plugin->_package() . ": " . $e->getMessage()); } } try { $plugin->_load(); } catch (Exception $e) { $f3->set("error", "Failed to initialize plugin " . $plugin->_package() . ": " . $e->getMessage()); } } } $f3->set("plugins", $plugins); // register filter \Helper\View::instance()->filter('parseText', '$this->parseText'); \Helper\View::instance()->filter('formatFilesize', '$this->formatFilesize'); // Set up user session $user = new Model\User(); $user->loadCurrent(); // Load issue types $types = new \Model\Issue\Type(); $f3->set("issue_types", $types->find(null, null, $f3->get("cache_expire.db"))); // Run the application $f3->set("menuitem", false); $f3->run();
public function reset_forced($f3) { $user = new \Model\User(); $user->loadCurrent(); if ($f3->get("POST.password1") != $f3->get("POST.password2")) { $f3->set("reset.error", "The given passwords don't match."); } elseif (strlen($f3->get("POST.password1")) < 6) { $f3->set("reset.error", "The given password is too short. Passwords must be at least 6 characters."); } else { // Save new password and redirect to dashboard $security = \Helper\Security::instance(); $user->salt = $security->salt(); $user->password = $security->hash($f3->get("POST.password1"), $user->salt); $user->save(); $f3->reroute("/"); return; } $this->_render("index/reset_forced.html"); }
public function save($f3, $params) { $f3 = \Base::instance(); $post = array_map("trim", $f3->get("POST")); $user = new \Model\User(); $user->load($this->_userId); if (!empty($post["old_pass"])) { $security = \Helper\Security::instance(); // Update password if ($security->hash($post["old_pass"], $user->salt) == $user->password) { if (strlen($post["new_pass"]) >= 6) { if ($post["new_pass"] == $post["new_pass_confirm"]) { $user->salt = $security->salt(); $user->password = $security->hash($post["new_pass"], $user->salt); $f3->set("success", "Password updated successfully."); } else { $f3->set("error", "New passwords do not match"); } } else { $f3->set("error", "New password must be at least 6 characters."); } } else { $f3->set("error", "Current password entered is not valid."); } } else { // Update profile if (!empty($post["name"])) { $user->name = filter_var($post["name"], FILTER_SANITIZE_STRING); } else { $error = "Please enter your name."; } if (preg_match("/^([\\p{L}\\.\\-\\d]+)@([\\p{L}\\-\\.\\d]+)((\\.(\\p{L})+)+)\$/im", $post["email"])) { $user->email = $post["email"]; } else { $error = $post["email"] . " is not a valid email address."; } if (empty($error) && ctype_xdigit(ltrim($post["task_color"], "#"))) { $user->task_color = ltrim($post["task_color"], "#"); } elseif (empty($error)) { $error = $post["task_color"] . " is not a valid color code."; } if (empty($post["theme"])) { $user->theme = null; } else { $user->theme = $post["theme"]; } if (empty($post["language"])) { $user->language = null; } else { $user->language = $post["language"]; } if (empty($error)) { $f3->set("success", "Profile updated successfully."); } else { $f3->set("error", $error); } } $user->save(); $f3->set("title", $f3->get("dict.my_account")); $f3->set("menuitem", "user"); // Use new user values for page $user->loadCurrent(); $f3->set("languages", $this->_languages); $this->_loadThemes(); $this->_render("user/account.html"); }