Exemple #1
0
        $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();
Exemple #2
0
 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");
 }
Exemple #3
0
 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");
 }