Added Login Checks

This commit is contained in:
ultimatemember
2014-12-30 20:18:29 +02:00
parent 6fd6b9657b
commit ed90ef5b95
17 changed files with 288 additions and 90 deletions
+2
View File
@@ -51,6 +51,8 @@
do_action('um_submit_form_errors_hook_login', $args );
do_action('um_submit_form_errors_hook_logincheck', $args );
} else {
do_action('um_submit_form_errors_hook_', $args );
+32 -10
View File
@@ -62,7 +62,6 @@
switch( $err ) {
default:
break;
case 'incorrect_password':
@@ -78,6 +77,37 @@
}
/***
*** @login checks
***/
add_action('um_submit_form_errors_hook_logincheck', 'um_submit_form_errors_hook_logincheck', 9999 );
function um_submit_form_errors_hook_logincheck($args){
global $ultimatemember;
// Logout if logged in
if ( is_user_logged_in() ) {
wp_logout();
}
$user_id = ( isset( $ultimatemember->login->auth_id ) ) ? $ultimatemember->login->auth_id : '';
um_fetch_user( $user_id );
$status = um_user('account_status'); // account status
switch( $status ) {
// If user can't login to site...
case 'inactive':
case 'awaiting_admin_review':
case 'awaiting_email_confirmation':
case 'rejected':
um_reset_user();
exit( wp_redirect( add_query_arg( 'err', $status, $ultimatemember->permalinks->get_current_url() ) ) );
break;
}
}
/***
*** @login user
***/
@@ -85,16 +115,8 @@
function um_user_login($args){
global $ultimatemember;
extract( $args );
if ( is_user_logged_in() ) {
wp_logout();
}
$user_id = $ultimatemember->login->auth_id;
um_fetch_user( $user_id );
$ultimatemember->user->auto_login( $user_id );
$ultimatemember->user->auto_login( um_user('ID') );
// Priority redirect
if ( isset( $args['redirect_to'] ) ) {
+24 -9
View File
@@ -49,22 +49,37 @@
function um_add_update_notice($args){
global $ultimatemember;
extract($args);
$output = '';
if ( isset( $_REQUEST['updated'] ) && !empty( $_REQUEST['updated'] ) ) {
switch( $_REQUEST['updated'] ) {
case 'password_changed':
$msg = __('You have successfully changed your password.','ultimatemember');
$success = __('You have successfully changed your password.','ultimatemember');
break;
}
}
if ( isset( $msg ) ) {
echo '<p class="um-notice success">' . $msg . '</p>';
if ( isset( $_REQUEST['err'] ) && !empty( $_REQUEST['err'] ) ) {
switch( $_REQUEST['err'] ) {
case 'inactive':
$err = __('Your account has been disabled.','ultimatemember');
break;
case 'awaiting_admin_review':
$err = __('Your account has not been approved yet.','ultimatemember');
break;
case 'awaiting_email_confirmation':
$err = __('Your account is awaiting e-mail verifications.','ultimatemember');
break;
case 'rejected':
$err = __('Your membership request has been rejected.','ultimatemember');
break;
}
}
if ( isset( $err ) ) {
$output .= '<p class="um-notice err">' . $err . '</p>';
}
echo $output;
}
+10
View File
@@ -261,6 +261,7 @@
global $ultimatemember;
$to_update = null;
$files = null;
if ( isset( $args['user_id'] ) ) {
if ( um_can_edit_profile( $args['user_id'] ) ) {
@@ -289,6 +290,11 @@
} else if ( $args['submitted'][$key] ) {
$to_update[ $key ] = $args['submitted'][ $key ];
}
// files
if ( isset( $fields[$key]['type'] ) && in_array( $fields[$key]['type'], array('image','file') ) && um_is_temp_upload( $args['submitted'][ $key ] ) ) {
$files[ $key ] = $args['submitted'][ $key ];
}
}
}
@@ -296,6 +302,10 @@
if ( is_array( $to_update ) ) {
$ultimatemember->user->update_profile( $to_update );
}
if ( is_array( $files ) ) {
$ultimatemember->user->update_files( $files );
}
do_action('um_user_after_updating_profile', $to_update );
+47 -13
View File
@@ -308,6 +308,8 @@ class UM_Fields {
function field_value( $key, $default = false, $data = null ) {
global $ultimatemember;
$type = (isset($data['type']))?$data['type']:'';
// preview in backend
if ( isset( $ultimatemember->user->preview ) && $ultimatemember->user->preview ) {
$submitted = um_user('submitted');
@@ -336,6 +338,7 @@ class UM_Fields {
$value = um_user( $key );
$value = apply_filters("um_profile_field_filter_hook__", $value, $data );
$value = apply_filters("um_profile_field_filter_hook__{$key}", $value, $data );
$value = apply_filters("um_profile_field_filter_hook__{$type}", $value, $data );
return $value;
@@ -1002,19 +1005,33 @@ class UM_Fields {
case 'image':
$output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="'.$key.'">';
$output .= '<input type="hidden" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) . '" />';
if ( isset( $data['label'] ) ) {
$output .= $this->field_label($label, $key, $data);
$output .= $this->field_label($label, $key, $data);
}
$modal_label = ( isset( $data['label'] ) ) ? $data['label'] : __('Upload Photo','ultimatemember');
$output .= '<div class="um-field-area" style="text-align: center">';
$output .= '<div class="um-field-area" style="text-align: center">
if ( $this->field_value( $key, $default, $data ) ) {
<div class="um-single-image-preview '. $crop_class .'" data-crop="'.$crop_data.'" data-key="'.$key.'"><a href="#" class="cancel"><i class="um-icon-remove"></i></a><img src="" alt="" /></div>
$output .= '<div class="um-single-image-preview show '. $crop_class .'" data-crop="'.$crop_data.'" data-key="'.$key.'">
<a href="#" class="cancel"><i class="um-icon-remove"></i></a>
<img src="' . um_user_uploads_uri() . $this->field_value( $key, $default, $data ) . '" alt="" />
</div><a href="#" data-modal="um_upload_single" data-modal-size="'.$modal_size.'" data-modal-copy="1" class="um-button um-btn-auto-width">'. __('Change photo') . '</a>';
<a href="#" data-modal="um_upload_single" data-modal-size="'.$modal_size.'" data-modal-copy="1" class="um-button um-btn-auto-width">'. $button_text . '</a>
} else {
$output .= '<div class="um-single-image-preview '. $crop_class .'" data-crop="'.$crop_data.'" data-key="'.$key.'">
<a href="#" class="cancel"><i class="um-icon-remove"></i></a>
<img src="" alt="" />
</div><a href="#" data-modal="um_upload_single" data-modal-size="'.$modal_size.'" data-modal-copy="1" class="um-button um-btn-auto-width">'. $button_text . '</a>';
</div>';
}
$output .= '</div>';
/* modal hidden */
$output .= '<div class="um-modal-hidden-content">';
@@ -1060,21 +1077,38 @@ class UM_Fields {
case 'file':
$output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="'.$key.'">';
$output .= '<input type="hidden" name="'.$key.$ultimatemember->form->form_suffix.'" id="'.$key.$ultimatemember->form->form_suffix.'" value="'. $this->field_value( $key, $default, $data ) . '" />';
if ( isset( $data['label'] ) ) {
$output .= $this->field_label($label, $key, $data);
}
$modal_label = ( isset( $data['label'] ) ) ? $data['label'] : __('Upload Photo','ultimatemember');
$output .= '<div class="um-field-area" style="text-align: center">
$output .= '<div class="um-field-area" style="text-align: center">';
<div class="um-single-file-preview" data-key="'.$key.'">
if ( $this->field_value( $key, $default, $data ) ) {
$extension = pathinfo( $this->field_value( $key, $default, $data ), PATHINFO_EXTENSION);
$output .= '<div class="um-single-file-preview show" data-key="'.$key.'">
<a href="#" class="cancel"><i class="um-icon-remove"></i></a>
<div class="um-single-fileinfo">
<a href="' . um_user_uploads_uri() . $this->field_value( $key, $default, $data ) . '" target="_blank">
<span class="icon" style="background:'. $ultimatemember->files->get_fonticon_bg_by_ext( $extension ) . '"><i class="'. $ultimatemember->files->get_fonticon_by_ext( $extension ) .'"></i></span>
<span class="filename">' . $this->field_value( $key, $default, $data ) . '</span>
</a>
</div>
</div><a href="#" data-modal="um_upload_single" data-modal-size="'.$modal_size.'" data-modal-copy="1" class="um-button um-btn-auto-width">'. __('Change file') . '</a>';
} else {
$output .= '<div class="um-single-file-preview" data-key="'.$key.'">
</div><a href="#" data-modal="um_upload_single" data-modal-size="'.$modal_size.'" data-modal-copy="1" class="um-button um-btn-auto-width">'. $button_text . '</a>';
}
</div>
<a href="#" data-modal="um_upload_single" data-modal-size="'.$modal_size.'" data-modal-copy="1" class="um-button um-btn-auto-width">'. $button_text . '</a>
</div>';
$output .= '</div>';
/* modal hidden */
$output .= '<div class="um-modal-hidden-content">';
@@ -1094,7 +1128,7 @@ class UM_Fields {
$output .= '<div class="um-single-file-preview">
<a href="#" class="cancel"><i class="um-icon-remove"></i></a>
<div class="um-single-fileinfo">
<a href="#" target="_blank">
<a href="" target="_blank">
<span class="icon"><i></i></span>
<span class="filename"></span>
</a>
+5 -5
View File
@@ -411,8 +411,8 @@ class UM_Files {
$ext = '.' . pathinfo($source_name, PATHINFO_EXTENSION);
$name = str_replace( $ext, '', $source_name );
$filename = $name . $ext;
// copy image
// copy file
copy( $source, $this->upload_basedir . $user_id . '/' . $filename );
// thumbs
@@ -466,15 +466,15 @@ class UM_Files {
}
}
// clean up temp
$dir = dirname( $source );
unlink( $source );
rmdir( $dir );
// update user's meta
update_user_meta( $user_id, $key, $filename );
// the url of upload
return $this->upload_baseurl . $user_id . '/' . $filename;
+45 -10
View File
@@ -1,5 +1,49 @@
<?php
/***
*** @Images
***/
add_filter('um_profile_field_filter_hook__file', 'um_profile_field_filter_hook__file', 99, 2);
function um_profile_field_filter_hook__file( $value, $data ) {
global $ultimatemember;
$uri = um_user_uploads_uri() . $value;
$extension = pathinfo( $uri, PATHINFO_EXTENSION);
if ( !file_exists( um_user_uploads_dir() . $value ) ) {
$value = __('This file has been removed.');
} else {
$value = '<div class="um-single-file-preview show">
<div class="um-single-fileinfo">
<a href="' . $uri . '" target="_blank">
<span class="icon" style="background:'. $ultimatemember->files->get_fonticon_bg_by_ext( $extension ) . '"><i class="'. $ultimatemember->files->get_fonticon_by_ext( $extension ) .'"></i></span>
<span class="filename">' . $value . '</span>
</a>
</div>
</div>';
}
return $value;
}
/***
*** @Files
***/
add_filter('um_profile_field_filter_hook__image', 'um_profile_field_filter_hook__image', 99, 2);
function um_profile_field_filter_hook__image( $value, $data ) {
$uri = um_user_uploads_uri() . $value;
$title = ( isset( $data['title'] ) ) ? $data['title'] : __('Untitled photo');
if ( !file_exists( um_user_uploads_dir() . $value ) ) {
$value = __('Image has been removed.');
} else {
$value = '<div class="um-photo"><a href="#"><img src="'. $uri .'" alt="'.$title.'" title="'.$title.'" class="" /></a></div>';
}
return $value;
}
/***
*** @some required changes before value is shown
***/
@@ -9,7 +53,6 @@
if ( isset( $data['validate'] ) && $data['validate'] != '' && strstr( $data['validate'], 'url' ) ) {
$alt = ( isset( $data['url_text'] ) ) ? $data['url_text'] : $value;
$url_rel = ( isset( $data['url_rel'] ) ) ? 'rel="nofollow"' : '';
if( !strstr( $value, 'http' )
&& !strstr( $value, '://' )
&& !strstr( $value, 'www.' )
@@ -17,32 +60,24 @@
&& !strstr( $value, '.net' )
&& !strstr( $value, '.org' )
) {
if ( $data['validate'] == 'facebook_url' ) $value = 'http://facebook.com/' . $value;
if ( $data['validate'] == 'twitter_url' ) $value = 'http://twitter.com/' . $value;
if ( $data['validate'] == 'linkedin_url' ) $value = 'http://linkedin.com/' . $value;
if ( $data['validate'] == 'skype' ) $value = 'http://skype.com/' . $value;
if ( $data['validate'] == 'googleplus_url' ) $value = 'http://plus.google.com/' . $value;
if ( $data['validate'] == 'instagram_url' ) $value = 'http://instagram.com/' . $value;
if ( $data['validate'] == 'instagram_url' ) $value = 'http://instagram.com/' . $value;
}
if ( strpos($value, 'http://') !== 0 ) {
$value = 'http://' . $value;
}
$value = '<a href="'. $value .'" target="'.$data['url_target'].'" ' . $url_rel . '>'.$alt.'</a>';
}
if ( !is_array( $value ) ) {
if ( is_email( $value ) )
$value = '<a href="mailto:'. $value.'">'.$value.'</a>';
} else {
$value = implode(', ', $value);
}
return $value;
+2 -1
View File
@@ -12,7 +12,7 @@ class UM_Form {
$this->errors = null;
add_action('init', array(&$this, 'form_init'), 1);
add_action('init', array(&$this, 'form_init'), 2);
add_action('init', array(&$this, 'field_declare'), 10);
@@ -88,6 +88,7 @@ class UM_Form {
do_action("um_submit_form_errors_hook", $this->post_form );
do_action("um_submit_form_{$this->post_form['mode']}", $this->post_form );
}
+27 -4
View File
@@ -13,6 +13,21 @@
return 0;
}
/***
*** @Check that temp upload is valid
***/
function um_is_temp_upload( $url ) {
global $ultimatemember;
$url = explode('/ultimatemember/temp/', $url);
if ( isset( $url[1] ) ) {
$src = $ultimatemember->files->upload_temp . $url[1];
if ( !file_exists( $src ) )
return false;
return $src;
}
return false;
}
/***
*** @Check that temp image is valid
@@ -21,16 +36,12 @@
global $ultimatemember;
$url = explode('/ultimatemember/temp/', $url);
if ( isset( $url[1] ) ) {
$src = $ultimatemember->files->upload_temp . $url[1];
if ( !file_exists( $src ) )
return false;
list($width, $height, $type, $attr) = @getimagesize($src);
if ( isset( $width ) && isset( $height ) )
return $src;
}
return false;
}
@@ -440,6 +451,18 @@
return $uri;
}
/***
*** @user uploads directory
***/
function um_user_uploads_dir() {
global $ultimatemember;
$uri = $ultimatemember->files->upload_basedir . um_user('ID') . '/';
return $uri;
}
/***
*** @find closest number in an array
***/
function um_closest_num($array, $number) {
sort($array);
foreach ($array as $a) {
+15 -1
View File
@@ -21,7 +21,7 @@ class UM_User {
$this->preview = false;
// needs to be updated by wp_update_user()
// a list of keys that should be done on wp_update_user
$this->update_user_keys = array(
'user_email',
'user_pass',
@@ -406,6 +406,20 @@ class UM_User {
return false;
}
/***
*** @update files
***/
function update_files( $array ) {
global $ultimatemember;
foreach( $array as $key => $uri ) {
$src = um_is_temp_upload( $uri );
$ultimatemember->files->new_user_upload( $this->id, $src, $key );
}
}
/***
*** @update profile
***/