Exemplo n.º 1
0
 function paw_users_frontend($path)
 {
     global $pawUsers, $pawUsers_FrontendObserver;
     $pawUsers->load();
     if (!defined("CMS_BACKEND") && $pawUsers_FrontendObserver === false) {
         // ACCOUNT FORMS
         if (isset($_POST["account"]) && isset($_POST["account"]["pawusers"]) && $_POST["account"]["pawusers"] == "account-observer") {
             $post = $_POST["account"];
             if (isset($post["action"])) {
                 $login = new LoginController(false);
                 if ($login->_action($post["action"], $post) == true) {
                     $action = $post["action"];
                     // SET SUCCESS MSG
                     $success = $action;
                     if ($action === "register") {
                         $success .= "-" . $pawUsers->config["account_activation"];
                     }
                     if (isset($login->success_text[$success])) {
                         Flash::set("success", $login->success_text[$success]);
                     } else {
                         Flash::set("success", __("The Action was performed successfully."));
                     }
                     // REDIRECT
                     if (!isset($post["redirect"])) {
                         $redirects = pawu_get_conf("redirect_pages");
                         $post["redirect"] = $redirects[$action];
                     }
                     redirect($post["redirect"] . "?success=" . $success);
                     die;
                 } else {
                     // SET ERROR
                     $errors = array_merge($login->errors, $pawUsers->errors);
                     Flash::set("error", $errors);
                 }
             }
         }
         // PROFILE FORMS
         if (isset($_POST["user"]) && isset($_POST["user"]["pawusers"]) && $_POST["user"]["pawusers"] == "profile-observer") {
             $post = $_POST["user"];
             if (isset($post["type"]) && isset($post["action"]) && $post["action"] == "edit") {
                 if (($user = $pawUsers->getCurrentUser()) !== false) {
                     if (isset($post["id"]) && (int) $post["id"] === (int) $user->id) {
                         switch ($post["type"]) {
                             case "general":
                                 // CHANGE GENERAL DATA
                                 $update = array("name" => isset($post["name"]) ? $post["name"] : $user->name, "language" => isset($post["language"]) ? $post["language"] : $user->language);
                                 $check = $pawUsers->updateUser($user->id, $update);
                                 $errors = $pawUsers->errors;
                                 $success = __("Your Profile has been successfully updated.");
                                 break;
                             case "security":
                                 // CHANGE eMAIL
                                 if (isset($post["email"]) && $post["email"] !== $user->email) {
                                     $update = array("email" => $post["email"], "password" => isset($post["password"]) ? $post["password"] : false);
                                     $check = $pawUsers->updateUser($user->id, $update);
                                     $errors = $pawUsers->errors;
                                     $success = __("Your eMail address has been successfully updated.");
                                 }
                                 // CHANGE PASSWORD
                                 if (!isset($check) || $check === true) {
                                     if (isset($post["new-password"]) && !empty($post["new-password"])) {
                                         $update = array("new-password" => is_array($post["new-password"]) ? $post["new-password"] : false, "password" => isset($post["password"]) ? $post["password"] : false);
                                         $check = $pawUsers->updateUser($user->id, $update);
                                         $errors = $pawUsers->errors;
                                         $success = __("Your Password has been successfully updated.");
                                     }
                                 }
                                 break;
                             case "meta":
                                 // UPDATE USER META STUFF
                                 if (isset($post["meta"])) {
                                     foreach ($post["meta"] as $key => $value) {
                                         if ($pawUsers->fields->getField($key) !== false) {
                                             $check = $pawUsers->fields->updateMeta($user->id, $key, $value, "unique");
                                             $success = __("Your Profile has been successfully updated.");
                                         }
                                     }
                                 }
                                 break;
                             default:
                                 $check = false;
                                 break;
                         }
                         // REDIRECT
                         if (empty($errors) && $check === true) {
                             if (!isset($post["redirect"])) {
                                 $redirects = pawu_get_conf("redirect_pages");
                                 $post["redirect"] = $redirects[$action];
                             }
                             Flash::set("success", $success);
                             redirect($post["redirect"] . "&success=true");
                             die;
                         }
                         $errors = !empty($errors) ? $errors : array(__("An unknown error is occurred!"));
                         Flash::set("error", $errors);
                     }
                 }
             }
         }
         $pawUsers_FrontendObserver = true;
     }
     return $path;
 }