Add CAS logout button as a plugin and logout file

skala
Hubert Borderiou 14 years ago
parent f1505adffc
commit 0b5dc88dab
  1. 18
      main/auth/cas/logout.php
  2. 12
      plugin/add_cas_logout_button/css.css
  3. 21
      plugin/add_cas_logout_button/index.php
  4. 41
      plugin/add_cas_logout_button/plugin.php
  5. 7
      plugin/add_cas_logout_button/readme.txt
  6. 44
      plugin/add_cas_logout_button/template.tpl

@ -0,0 +1,18 @@
<?php
/* For licensing terms, see /license.txt */
/*
Call this file to disconnect from CAS session.
logoutWithUrl() not used because with CAS v3 you cannot redirect your logout to a specific URL
because of security reason.
*/
require('../..//inc/global.inc.php');
require_once (api_get_path(LIBRARY_PATH).'events.lib.inc.php');
require_once('authcas.php');
global $cas_auth_ver, $cas_auth_server, $cas_auth_port, $cas_auth_uri;
phpCAS::client($cas_auth_ver,$cas_auth_server,$cas_auth_port,$cas_auth_uri);
phpCAS::logout();
?>

@ -0,0 +1,12 @@
.cas_plugin_image {
float:left;
height:50px;
margin: 0px 5px 5px 0px;
}
.cas_plugin_comm {
font-style:italic;
}
.cas_plugin_clear {
clear:both;
height:1px;
}

@ -0,0 +1,21 @@
<?php
// Show the CAS button to logout to your CAS session
global $_user;
$_template['show_message'] = false;
if (!api_is_anonymous() && api_get_setting('cas_activate') == 'true' && $_user['auth_source'] == CAS_AUTH_SOURCE) {
$_template['show_message'] = true;
// the default title
$logout_label = "Deconnexion de CAS";
if (!empty($plugin_info['settings']['add_cas_logout_button_cas_logout_label'])) {
$logout_label = api_htmlentities($plugin_info['settings']['add_cas_logout_button_cas_logout_label']);
}
// the comm
$logout_comment = api_htmlentities($plugin_info['settings']['add_cas_logout_button_cas_logout_comment']);;
// URL of the image
$logout_image_url = $plugin_info['settings']['add_cas_logout_button_cas_logout_image_url'];
$_template['logout_label'] = $logout_label;
$_template['logout_comment'] = $logout_comment;
$_template['logout_image_url'] = $logout_image_url;
}

@ -0,0 +1,41 @@
<?php
/**
* This script is a configuration file for the date plugin. You can use it as a master for other platform plugins (course plugins are slightly different).
* These settings will be used in the administration interface for plugins (Chamilo configuration settings->Plugins)
* @package chamilo.plugin
* @author Julio Montoya <gugli100@gmail.com>
*/
/**
* Plugin details (must be present)
*/
//the plugin title
$plugin_info['title'] = 'Add a button to logout from CAS';
//the comments that go with the plugin
$plugin_info['comment'] = "If CAS is activated, this plugin add a text and a button on the user page to logout from a CAS session. Configure plugin to add title, comment and logo.";
//the plugin version
$plugin_info['version'] = '1.0';
//the plugin author
$plugin_info['author'] = 'Hubert Borderiou';
//the plugin configuration
$form = new FormValidator('add_cas_button_form');
$form->addElement('text', 'cas_logout_label', 'CAS logout title', '');
$form->addElement('text', 'cas_logout_comment', 'CAS logout description', '');
$form->addElement('text', 'cas_logout_image_url', 'Logo URL if any (image, 50px height)');
$form->addElement('style_submit_button', 'submit_button', get_lang('Save'));
//get default value for form
$tab_default_add_cas_logout_button_cas_logout_label = api_get_setting('add_cas_logout_button_cas_logout_label');
$tab_default_add_cas_logout_button_cas_logout_comment = api_get_setting('add_cas_logout_button_cas_logout_comment');
$tab_default_add_cas_logout_button_cas_logout_image_url = api_get_setting('add_cas_logout_button_cas_logout_image_url');
$defaults['cas_logout_label'] = $tab_default_add_cas_logout_button_cas_logout_label['add_cas_logout_button'];
$defaults['cas_logout_comment'] = $tab_default_add_cas_logout_button_cas_logout_comment['add_cas_logout_button'];
$defaults['cas_logout_image_url'] = $tab_default_add_cas_logout_button_cas_logout_image_url['add_cas_logout_button'];
$form->setDefaults($defaults);
//display form
$plugin_info['settings_form'] = $form;
//set the smarty templates that are going to be used
$plugin_info['templates'] = array('template.tpl');

@ -0,0 +1,7 @@
README
<br/><br/>
This plugin add a button to allow user to logout to his CAS session.<br/><br/>
You have to activate your CAS connection to display this button.<br/>
You have to configure your CAS connection to have the button works.<br/>
To activate and configure CAS, for your Chamilo platform, go to Administration > Configuration settings > CAS<br/>
This plugin has been design to be added in the menu_top region, but you can put it where you want.<br/>

@ -0,0 +1,44 @@
{*
This is a Chamilo plugin using Smarty you can use handy shorcuts like:
1. Shortcuts
$_p = url chamilo paths
$_u = user information of the current user
2. i18n
You can use i18n variables just use this syntax:
{"HelloWorld"|get_lang}
Now you can add your variables in the main/lang/english/ or main/lang/spanish/ for example in spanish:
$HelloWorld = "Hola Mundo";
3. Portal settings
You can access the portal settings using:
{"siteName"|api_get_setting}
For more settings check the settings_current database
4. Read more
You can also see more examples in the the main/template/default/layout files
5. {$_p|var_dump} pour les path {$_u|var_dump} pour info de l'utilisateur loggé
*}
{if $add_cas_logout_button.show_message}
<link href="{$_p.web_plugin}/add_cas_logout_button/css.css" rel="stylesheet" type="text/css">
<div class="well">
{if $add_cas_logout_button.logout_image_url}
<img src="{$add_cas_logout_button.logout_image_url}" class='cas_plugin_image'/>
{/if}
<h4>{$add_cas_logout_button.logout_label}</h4>
{if $add_cas_logout_button.logout_image_url}
<div class='cas_plugin_clear'>&nbsp;</div>
{/if}
<div class='cas_plugin_comm'>{$add_cas_logout_button.logout_comment}</div>
<button class="btn" onclick="javascript:self.location.href='main/auth/cas/logout.php'">{"Logout"|get_lang}</button>
</div>
{/if}
Loading…
Cancel
Save