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() {
?>
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
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;
}
}