function EWD_FEUP_WP_User_Login($User_Login, $WP_User)
{
    global $wpdb;
    global $ewd_feup_user_table_name;
    $FEUP_User = $wpdb->get_row($wpdb->prepare("SELECT Username FROM {$ewd_feup_user_table_name} WHERE User_WP_ID=%d", $WP_User->ID));
    $WP_Login = "******";
    Confirm_Login($FEUP_User->Username, $WP_Login);
}
function Process_EWD_FEUP_Front_End_Forms()
{
    global $user_message;
    if (isset($_POST['ewd-feup-action'])) {
        switch ($_POST['ewd-feup-action']) {
            case "register":
            case "edit-profile":
            case "edit-account":
                $user_message = Add_Edit_User();
                break;
            case "login":
                $user_message['Message'] = Confirm_Login();
                break;
            case "forgot-password":
                $user_message['Message'] = Forgot_Password();
                break;
            case "confirm-forgot-password":
                $user_message['Message'] = Confirm_Forgot_Password();
                break;
        }
    }
}
function Process_EWD_FEUP_Front_End_Forms()
{
    global $user_message;
    //echo $_POST['ewd-feup-action'];die;
    if (isset($_POST['ewd-feup-action'])) {
        switch ($_POST['ewd-feup-action']) {
            case "register":
                $user_message = Add_Edit_User();
                break;
            case "edit-profile":
                $user_message = Add_Edit_User();
                break;
            case "edit_reminder_times":
                $user_message = Edit_Reminder_Times_User();
                break;
            case "edit_your_settings":
                $user_message = Edit_Your_Settings_User();
                break;
            case "edit_account_info":
                $user_message = Edit_Account_Info_User();
                break;
            case "edit-account":
                $user_message = Add_Edit_User();
                break;
            case "login":
                $user_message['Message'] = Confirm_Login();
                break;
            case "forgot-password":
                $user_message['Message'] = Forgot_Password();
                break;
            case "confirm-forgot-password":
                $user_message['Message'] = Confirm_Forgot_Password();
                break;
        }
    }
}
function Add_Edit_User()
{
    global $wpdb, $feup_success, $ewd_feup_fields_table_name, $ewd_feup_user_fields_table_name, $ewd_feup_user_table_name;
    $Salt = get_option("EWD_FEUP_Hash_Salt");
    $Sign_Up_Email = get_option("EWD_FEUP_Sign_Up_Email");
    $Default_User_Level = get_option("EWD_Default_User_Level");
    $Use_Crypt = get_option("EWD_FEUP_Use_Crypt");
    $Use_Captcha = get_option("EWD_FEUP_Use_Captcha");
    $Email_Confirmation = get_option("EWD_FEUP_Email_Confirmation");
    $Admin_Approval = get_option("EWD_FEUP_Admin_Approval");
    $Email_On_Admin_Approval = get_option("EWD_FEUP_Email_On_Admin_Approval");
    $Admin_Email_On_Registration = get_option("EWD_FEUP_Admin_Email_On_Registration");
    $Sql = "SELECT * FROM {$ewd_feup_fields_table_name} ";
    $Fields = $wpdb->get_results($Sql);
    $date = date("Y-m-d H:i:s");
    $UserCookie = CheckLoginCookie();
    if (!isset($_POST['Admin_Approved'])) {
        $_POST['Admin_Approved'] = null;
    }
    if (!isset($_POST['action'])) {
        $_POST['action'] = null;
    }
    if (!isset($_POST['ewd-feup-action'])) {
        $_POST['ewd-feup-action'] = null;
    }
    if ($_POST['ewd-feup-action'] == "register" and $Use_Captcha == "Yes") {
        $Validate_Captcha = EWD_FEUP_Validate_Captcha();
    } else {
        $Validate_Captcha = "Yes";
    }
    $User = $wpdb->get_row($wpdb->prepare("SELECT User_ID FROM {$ewd_feup_user_table_name} WHERE Username='******'", $UserCookie['Username']));
    if (is_object($User)) {
        $User_ID = $User->User_ID;
    }
    if (is_admin()) {
        $User_ID = $_POST['User_ID'];
    }
    if (isset($User_ID)) {
        $User = $wpdb->get_row($wpdb->prepare("SELECT User_Admin_Approved FROM {$ewd_feup_user_table_name} WHERE User_ID='%d'", $User_ID));
        $User_Current_Admin_Approved = $User->User_Admin_Approved;
    } else {
        $User_Current_Admin_Approved = "No";
    }
    if (isset($_POST['Omit_Fields'])) {
        $Omitted_Fields = explode(",", $_POST['Omit_Fields']);
    } else {
        $Omitted_Fields = array();
    }
    if (isset($_POST['Username'])) {
        $User_Fields['Username'] = $_POST['Username'];
    }
    // check if the password is empty - so we won't try to update it if it is empty
    if (empty($_POST['User_Password'])) {
        unset($_POST['User_Password']);
    }
    if ($Use_Crypt == "Yes") {
        if (isset($_POST['User_Password'])) {
            $User_Fields['User_Password'] = Generate_Password($_POST['User_Password']);
        }
    } else {
        if (isset($_POST['User_Password'])) {
            $User_Fields['User_Password'] = sha1(md5($_POST['User_Password'] . $Salt));
        }
    }
    if (isset($_POST['Level_ID'])) {
        $User_Fields['Level_ID'] = $_POST['Level_ID'];
    } elseif ($_POST['ewd-feup-omit-level'] != "Yes") {
        $User_Fields['Level_ID'] = $Default_User_Level;
    }
    if ($_POST['Admin_Approved'] == "Yes") {
        $User_Fields['User_Admin_Approved'] = "Yes";
    }
    if ($_POST['Admin_Approved'] == "No") {
        $User_Fields['User_Admin_Approved'] = "No";
    }
    if ($_POST['User_Password'] != $_POST['Confirm_User_Password']) {
        $user_update = array("Message_Type" => "Error", "Message" => __("The passwords you entered did not match.", "EWD_FEUP"));
        return $user_update;
    }
    if ($_POST['action'] == "Add_User" or $_POST['ewd-feup-action'] == "register") {
        if (empty($_POST['User_Password'])) {
            $user_update = array("Message_Type" => "Error", "Message" => __("The password cannot be empty.", "EWD_FEUP"));
            return $user_update;
        }
        $wpdb->get_results($wpdb->prepare("SELECT User_ID FROM {$ewd_feup_user_table_name} WHERE Username='******'", $_POST['Username']));
        if ($wpdb->num_rows > 0) {
            $user_update = array("Message_Type" => "Error", "Message" => __("There is already a user with that Username, please select a different one.", "EWD_FEUP"));
            return $user_update;
        }
        if (strlen($_POST['Username']) < 3) {
            $user_update = array("Message_Type" => "Error", "Message" => __("Username must be at least 3 characters.", "EWD_FEUP"));
            return $user_update;
        }
    }
    if ($_POST['ewd-feup-action'] != "edit-account") {
        if (!isset($Additional_Fields_Array)) {
            $Additional_Fields_Array = array();
        }
        foreach ($Fields as $Field) {
            if (!in_array($Field->Field_Name, $Omitted_Fields)) {
                if ($Field->Field_Options != "") {
                    $Field_Allowed_Values = explode(",", $Field->Field_Options);
                }
                if (!is_array($Field_Allowed_Values) or in_array($_POST[$Field_Name], $Field_Allowed_Values)) {
                    $Additional_Fields_Array[$Field->Field_Name]['Field_ID'] = $Field->Field_ID;
                    $Additional_Fields_Array[$Field->Field_Name]['Field_Name'] = $Field->Field_Name;
                    $Field_Name = str_replace(" ", "_", $Field->Field_Name);
                    if ($Field->Field_Type == "file") {
                        $File_Upload_Return = Handle_File_Upload($Field_Name);
                        if ($File_Upload_Return['Success'] == "No") {
                            return $File_Upload_Return['Data'];
                        } elseif ($File_Upload_Return['Success'] == "N/A") {
                            unset($Additional_Fields_Array[$Field->Field_Name]);
                        } else {
                            $Additional_Fields_Array[$Field->Field_Name]['Field_Value'] = $File_Upload_Return['Data'];
                        }
                    } elseif (is_array($_POST[$Field_Name])) {
                        $Additional_Fields_Array[$Field->Field_Name]['Field_Value'] = stripslashes_deep(implode(",", $_POST[$Field_Name]));
                    } else {
                        $Additional_Fields_Array[$Field->Field_Name]['Field_Value'] = stripslashes_deep($_POST[$Field_Name]);
                    }
                }
            }
        }
    }
    if (!isset($error) and $Validate_Captcha == "Yes") {
        /* Pass the data to the appropriate function in Update_Admin_Databases.php to create the user */
        if ($_POST['action'] == "Add_User" or $_POST['ewd-feup-action'] == "register") {
            if (is_object($User)) {
                $user_update = __("There is already an account with that Username. Please select a different one.", "EWD_FEUP");
                return $user_update;
            }
            if (!isset($User_Fields['User_Admin_Approved'])) {
                $User_Fields['User_Admin_Approved'] = "No";
            }
            if (!isset($User_Fields['User_Email_Confirmed'])) {
                $User_Fields['User_Email_Confirmed'] = "No";
            }
            $User_Fields['User_Date_Created'] = $date;
            $User_Fields['User_Last_Login'] = $date;
            $user_update = Add_EWD_FEUP_User($User_Fields);
            $User_ID = $wpdb->insert_id;
            if (!isset($Additional_Fields_Array)) {
                $Additional_Fields_Array = array();
            }
            foreach ($Additional_Fields_Array as $Field) {
                $user_update = Add_EWD_FEUP_User_Field($Field['Field_ID'], $User_ID, $Field['Field_Name'], $Field['Field_Value'], $date);
            }
            if ($_POST['ewd-feup-action'] == "register") {
                $user_update = __("Your account has been succesfully created.", "EWD_FEUP");
                if ($Sign_Up_Email == "Yes") {
                    EWD_FEUP_Send_Email($User_Fields, $Additional_Fields_Array, $User_ID);
                }
                if ($Admin_Email_On_Registration == "Yes") {
                    EWD_FEUP_Send_Admin_Registration_Email($User_Fields, $Additional_Fields_Array, $User_ID);
                }
                if ($Email_Confirmation != "Yes" and $Admin_Approval != "Yes") {
                    Confirm_Login();
                    //CreateLoginCookie($_POST['Username'], $_POST['User_Password']);
                    $feup_success = true;
                }
            }
        } else {
            if (isset($User_Fields)) {
                $user_update = Edit_EWD_FEUP_User($User_ID, $User_Fields);
            }
            if (!isset($Additional_Fields_Array)) {
                $Additional_Fields_Array = array();
            }
            if (is_array($Additional_Fields_Array)) {
                foreach ($Additional_Fields_Array as $Field) {
                    $CurrentField = $wpdb->get_row($wpdb->prepare("SELECT User_Field_ID FROM {$ewd_feup_user_fields_table_name} WHERE Field_ID='%d' AND User_ID='%d'", $Field['Field_ID'], $User_ID));
                    if ($CurrentField->User_Field_ID != "") {
                        $user_update = Edit_EWD_FEUP_User_Field($Field['Field_ID'], $User_ID, $Field['Field_Name'], $Field['Field_Value']);
                    } else {
                        $user_update = Add_EWD_FEUP_User_Field($Field['Field_ID'], $User_ID, $Field['Field_Name'], $Field['Field_Value'], $date);
                    }
                }
            }
            if ($_POST['ewd-feup-action'] == "edit-account") {
                CreateLoginCookie($_POST['Username'], $_POST['User_Password']);
            }
        }
        // If the user receives admin approval for the first time and the option is selected, send them an e-mail
        //Need to check earlier, as it already gets set before this
        if ($User_Current_Admin_Approved == "No" and $User_Fields['User_Admin_Approved'] == "Yes" and $Email_On_Admin_Approval == "Yes") {
            EWD_FEUP_Send_Admin_Approval_Email($User_Fields, $Additional_Fields_Array, $User_ID);
        }
        $user_update = array("Message_Type" => "Update", "Message" => $user_update);
        $feup_success = true;
        return $user_update;
    } else {
        if ($Validate_Captcha != "Yes") {
            $error = "The Captcha text did not match the image";
        }
        $output_error = array("Message_Type" => "Error", "Message" => $error);
        return $output_error;
    }
}
Ejemplo n.º 5
0
function EWD_FEUP_Process_Facebook_Login($Facebook_ID)
{
    global $wpdb;
    global $ewd_feup_user_table_name;
    $Username = $wpdb->get_var($wpdb->prepare("SELECT Username FROM {$ewd_feup_user_table_name} WHERE User_Registration_Type='Facebook' AND User_Third_Party_ID=%s", $Facebook_ID));
    $Return_Array['Message'] = Confirm_Login($Username, "Yes");
    if ($Return_Array['Message'] == __("Login successful", 'EWD_FEUP')) {
        $Return_Array['Status'] = "Success";
    } else {
        $Return_Array['Status'] = "Failure";
    }
    return $Return_Array;
}