true, 'level_0' => true ) ); add_role('club_admin', 'Klubbadministratör', array( 'read' => true, 'level_0' => true ) ); update_option('roles_are_set',true); } } function arcMember_activate() { add_option('arcmember_host', "xxx.arcmember.net", "arcMember domain name"); add_option('wordpress_login_url', "http://xxx/wp-admin", "Wordpress Login URL"); //add_option('email_reply_address', "xxx@xxx.com", "Email Reply Address"); //add_option('email_reply_name', "XXX", "Email Reply Name"); add_option('forgot_password_page', "", "Forgot Password page"); } function arcMember_init(){ register_setting('arcmember_login','arcmember_host'); register_setting('arcmember_login','wordpress_login_url'); /*register_setting('arcmember_login','email_reply_address'); register_setting('arcmember_login','email_reply_name'); */ register_setting('arcmember_login','forgot_password_page'); } /*function skip_email_exist($user_email){ define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' ); return $user_email; }*/ //page for config menu function arcMember_add_menu() { add_options_page("arcMember Login", "arcMember Login", 10, __FILE__,"arcmember_login_options"); } //actual configuration screen function arcmember_login_options() { ?>

arcMember Login Settings

required; Domain name of you arcMember site e.g. xxx.arcmember.net
required; Wordpress login url site e.g. http://xxx.com/wp-admin
required; Custom forgot password page. Leave empty for WP default

array('verify_peer' => false, 'verify_peer_name' => false))); $client = new SoapClient("https://". $host ."/Webservices/UserService.svc?wsdl", array('stream_context' => $context)); //$client = new SoapClient("https://". $host ."/Webservices/UserService.svc?wsdl"); // Call web service PassMember methodd $webService = $client->ValidateUser(array('username' => $username,'password' => $password)); $user = $webService->ValidateUserResult; if($user != null) { $wpUser = get_user_by('login', $user->UserID); if($wpUser->ID == 0) { // The user does not currently exist in the WordPress user table. Create! $userdata = array( 'user_email' => $user->UserID . '@' . $host, 'user_login' => $user->UserID, 'first_name' => $user->Firstname, 'last_name' => $user->Lastname); $new_user_id = wp_insert_user( $userdata ); // A new user has been created if (is_wp_error($new_user_id)) { $user = new WP_Error( 'denied', __("ERROR: Unknown error") ); return $user; } $wpUser = new WP_User ($new_user_id); } else { //The user does exist in the WordPress user table. Update! $userdata = array( 'ID' => $wpUser->ID, 'user_email' => $user->UserID . '@' . $host, 'user_login' => $user->UserID, 'first_name' => $user->Firstname, 'last_name' => $user->Lastname ); $user_id = wp_update_user($userdata); if (is_wp_error($user_id)) { $user = new WP_Error( 'denied', __("ERROR: Unknown error") ); return $user; } $wpUser = new WP_User($user_id); } if(count($user->GroupFunctions) > 0) { if($user->GroupFunctions->SeniorNetGroupFunction->GroupFunctionID == 20) { $wpUser->set_role('course_admin'); } if($user->GroupFunctions->SeniorNetGroupFunction->GroupFunctionID == 21) { $wpUser->set_role('club_admin'); } } update_user_meta($wpUser->ID, 'loginKey', $user->LoginKey); return $wpUser; } else { $user = new WP_Error('denied', __("ERROR: User/pass bad")); return $user; } return; } catch (Exception $e) { echo "

Exception Error!

"; echo $e->getMessage(); echo "

"; } // Comment this line if you wish to fall back on WordPress authentication // Useful for times when the external service is offline //remove_action('authenticate', 'wp_authenticate_username_password', 20); } function arcMember_lostpassword_url($lostpassword_url, $redirect) { if(get_option('forgot_password_page') != "") return site_url(get_option('forgot_password_page')); else return "/wp-login.php?action=lostpassword"; } function arcMember_errors() { global $error; global $ext_error; if ($ext_error == "notindb") return "ERROR: Username not found."; else if ($ext_error == "wrongrole") return "ERROR: You don't have permissions to log in."; else if ($ext_error == "wrongpw") return "ERROR: Invalid password."; else return $error; } //Warning function arcMember_personal_warning() { echo 'Any changes made below WILL NOT be preserved when you login again. You have to change your personal information per instructions found in the login box.'; } //disables the password reset option function arcMember_show_password_fields() { return 0; } /* * Disable functions. Idea taken from http auth plugin. */ function disable_function_register() { $errors = new WP_Error(); $errors->add('registerdisabled', __('User registration is not available from this site, so you can\'t create an account or retrieve your password from here. See the message above.')); ?>
User registration is not available from this site, so you can't create an account or retrieve your password from here. See the message above.

add('registerdisabled', __('User registration is not available from this site, so you can\'t create an account or retrieve your password from here. See the message above.')); login_header(__('Log In'), '', $errors); ?>

arcMember information

ID ) ); ?>
array('verify_peer' => false, 'verify_peer_name' => false))); $client = new SoapClient("https://". $host ."/Webservices/UserService.svc?wsdl", array('stream_context' => $context)); $webService = $client->Logout(array('userID' => $current_user->user_login)); $message = $webService->LogoutResult; update_user_meta($current_user->ID, 'loginKey', ''); } if ( !function_exists( 'wp_password_change_notification' ) ) { function wp_password_change_notification() {} } /* Change some text */ global $pagenow; if ($pagenow==='wp-login.php') { add_filter( 'gettext', 'user_email_login_text', 20, 3 ); function user_email_login_text( $translated_text, $text, $domain ) { if ($translated_text === 'Username or E-mail:') { $translated_text = 'Medlemsnummer'; } return $translated_text; } }