WordPress.org

Plugin Directory

Changeset 464906


Ignore:
Timestamp:
11/18/11 22:01:24 (6 years ago)
Author:
fkooman
Message:

add slo functionality

Location:
simplesamlphp-authentication/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • simplesamlphp-authentication/trunk/readme.txt

    r393393 r464906  
    44Requires at least: 3.0.0 
    55Tested up to: 3.1.3 
    6 Stable tag: 0.5.1 
     6Stable tag: 0.5.2 
    77 
    88Authenticate users using simpleSAMLphp (http://rnd.feide.no/simplesamlphp). 
     
    3737 
    3838== Changelog == 
     39= 0.5.2 = 
     40* Added patch by Sixto Martin to provide single logout functionality 
    3941 
    4042= 0.5.1 = 
  • simplesamlphp-authentication/trunk/simplesamlphp-authentication.php

    r393393 r464906  
    22/* 
    33Plugin Name: simpleSAMLphp Authentication 
    4 Version: 0.5.1 
     4Version: 0.5.2 
    55Plugin URI: http://grid.ie/wiki/WordPress_simpleSAMLphp_authentication 
    66Description: Authenticate users using <a href="http://rnd.feide.no/simplesamlphp">simpleSAMLphp</a>. 
     
    5959add_action('password_reset', array('SimpleSAMLAuthentication', 'disable_function')); 
    6060add_filter('show_password_fields', array('SimpleSAMLAuthentication', 'show_password_fields')); 
     61 
     62 
     63$slo = $simplesaml_authentication_opt['slo']; 
     64 
     65if ($slo) { 
     66    /* 
     67     Logout the user from wp if not exists an authenticated session at the simplesamlphp SP 
     68     This function overrides the is_logged_in function from wp core. 
     69     (Other solution could be to extend the wp_validate_auth_cookie func instead) 
     70    */ 
     71    function is_user_logged_in() { 
     72        global $as; 
     73 
     74        $user = wp_get_current_user(); 
     75        if ( $user->id > 0 ) { 
     76            // User is local authenticated but SP session was closed 
     77            if (!isset($as)) { 
     78                global $simplesaml_authentication_opt; 
     79                if($simplesaml_authentication_opt['sp_auth'] == '') 
     80                    $sp_auth = 'default-sp'; 
     81                else 
     82                    $sp_auth = $simplesaml_authentication_opt['sp_auth']; 
     83                $as = new SimpleSAML_Auth_Simple($sp_auth); 
     84            } 
     85            if(!$as->isAuthenticated()) { 
     86                wp_logout(); 
     87                return false; 
     88            } 
     89            else { 
     90                return true; 
     91            } 
     92        } 
     93        return false; 
     94    } 
     95} 
     96 
    6197 
    6298if (!class_exists('SimpleSAMLAuthentication')) { 
     
    146182      } 
    147183    } 
    148      
    149      
     184 
     185    
    150186    function logout() { 
    151187      global $simplesaml_authentication_opt, $simplesaml_configured, $as; 
     
    187223  $optionarray_def = array( 
    188224               'new_user' => FALSE, 
     225               'slo' => FALSE, 
    189226               'redirect_url' => '', 
    190227               'email_suffix' => 'example.com', 
     
    198235    $optionarray_update = array ( 
    199236                 'new_user' => $_POST['new_user'], 
     237                 'slo' => $_POST['slo'], 
    200238                 'redirect_url' => $_POST['redirect_url'], 
    201239                 'email_suffix' => $_POST['email_suffix'], 
     
    260298             </td> 
    261299         </tr> 
     300 
     301       <tr valign="top"> 
     302       <th scope="row"><label for="slo">Single Log Out</label></th> 
     303       <td><input type="checkbox" name="slo" id="slo" value="1" <?php checked('1', $optionarray_def['slo']); ?> /> 
     304            <span class="setting-description">Enable Single Log out</span> 
     305       </td> 
     306       </tr> 
    262307    </table> 
    263308    </fieldset> 
Note: See TracChangeset for help on using the changeset viewer.