Esempio n. 1
0
 public function registerpost($f3)
 {
     // Exit immediately if public registrations are disabled
     if (!$f3->get("site.public_registration")) {
         $f3->error(400);
         return;
     }
     $errors = array();
     $user = new \Model\User();
     // Check for existing users
     $user->load(array("email=?", $f3->get("POST.register-email")));
     if ($user->id) {
         $user->reset();
         $errors[] = "A user already exists with this email address.";
     }
     $user->load(array("username=?", $f3->get("POST.register-username")));
     if ($user->id) {
         $user->reset();
         $errors[] = "A user already exists with this username.";
     }
     // Validate user data
     if (!$f3->get("POST.register-name")) {
         $errors[] = "Name is required";
     }
     if (!preg_match("/^[0-9a-z]{4,}\$/i", $f3->get("POST.register-username"))) {
         $errors[] = "Usernames must be at least 4 characters and can only contain letters and numbers.";
     }
     if (!filter_var($f3->get("POST.register-email"), FILTER_VALIDATE_EMAIL)) {
         $errors[] = "A valid email address is required.";
     }
     if (strlen($f3->get("POST.register-password")) < 6) {
         $errors[] = "Password must be at least 6 characters.";
     }
     // Show errors or create new user
     if ($errors) {
         $f3->set("register.error", implode("<br>", $errors));
         $this->_render("index/login.html");
     } else {
         $user->reset();
         $user->username = trim($f3->get("POST.register-username"));
         $user->email = trim($f3->get("POST.register-email"));
         $user->name = trim($f3->get("POST.register-name"));
         $security = \Helper\Security::instance();
         extract($security->hash($f3->get("POST.register-password")));
         $user->password = $hash;
         $user->salt = $salt;
         $user->task_color = sprintf("#%02X%02X%02X", mt_rand(0, 0xff), mt_rand(0, 0xff), mt_rand(0, 0xff));
         $user->save();
         // Create a session and use it
         $session = new \Model\Session($user->id);
         $session->setCurrent();
         $f3->reroute("/");
     }
 }
Esempio n. 2
0
 if (is_string($truncate)) {
     $truncate = $f3->split($truncate);
 }
 foreach ($truncate as $truncator) {
     $parts = explode($truncator, $message);
     $message = $parts[0];
 }
 // is the sender a user?
 $from = $header->from[0]->mailbox . "@" . $header->from[0]->host;
 $user = new \Model\User();
 $user->load(array('email=? AND (deleted_date IS NULL OR deleted_date = ?)', $from, '0000-00-00 00:00:00'));
 if (!empty($user->id)) {
     $author = $user->id;
     // find an owner from the recipients
     foreach ($header->to as $owner_email) {
         $user->reset();
         $to = $owner_email->mailbox . "@" . $owner_email->host;
         $user->load(array('email=?', $to));
         if (!empty($user->id)) {
             $owner = $user->id;
             break;
         } else {
             $owner = $author;
         }
     }
     preg_match("/\\[#([0-9]+)\\] -/", $header->subject, $matches);
     $issue = new \Model\Issue();
     !empty($matches[1]) ? $issue->load($matches[1]) : '';
     // post a comment if replying to an issue
     if (!empty($issue->id)) {
         if (!empty($message)) {