/
start.php
71 lines (55 loc) · 2.33 KB
/
start.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
/**
* This file is included when the plugin gets initialized
*/
elgg_register_event_handler("plugins_boot", "system", "simplesaml_plugins_boot");
/**
* Called on the 'plugins_boot' 'system' event
*
* @return void
*/
function simplesaml_plugins_boot() {
$path = elgg_get_plugin_setting("simplesamlphp_path", "simplesaml");
if (!empty($path)) {
if (file_exists($path . "/lib/_autoload.php")) {
// register library
elgg_register_library("simplesamlphp", $path . "/lib/_autoload.php");
elgg_register_event_handler("init", "system", "simplesaml_init");
}
}
}
/**
* Called on the 'init' 'system' event
*
* @return void
*/
function simplesaml_init() {
// load libraries
elgg_load_library("simplesamlphp");
require_once(dirname(__FILE__) . "/lib/events.php");
require_once(dirname(__FILE__) . "/lib/functions.php");
require_once(dirname(__FILE__) . "/lib/hooks.php");
require_once(dirname(__FILE__) . "/lib/page_handlers.php");
// check for force authentication
elgg_extend_view("page/default", "simplesaml/force_authentication", 200);
elgg_extend_view("page/walled_garden", "simplesaml/force_authentication", 200);
elgg_register_library("pgregg.ipcheck", dirname(__FILE__) . "/vendors/pgregg/ip_check.php");
// extend CSS/JS
elgg_extend_view("js/admin", "js/simplesaml/admin");
// allow login
elgg_extend_view("forms/login", "simplesaml/login");
// register page_handler for nice URL's
elgg_register_page_handler("saml", "simplesaml_page_handler");
// register widgets
elgg_register_widget_type("simplesaml", elgg_echo("login"), elgg_echo("simplesaml:widget:description"), "index", true);
// register events
elgg_register_event_handler("login", "user", "simplesaml_login_event_handler");
// register plugin hooks
elgg_register_plugin_hook_handler("public_pages", "walled_garden", "simplesaml_walled_garden_hook");
elgg_register_plugin_hook_handler("widget_url", "widget_manager", "simplesaml_widget_url_hook");
elgg_register_plugin_hook_handler("setting", "plugin", "simplesaml_plugin_setting_save_hook");
elgg_register_plugin_hook_handler("action", "logout", "simplesaml_logout_action_hook");
// register actions
elgg_register_action("simplesaml/register", dirname(__FILE__) . "/actions/register.php", "public");
elgg_register_action("simplesaml/unlink", dirname(__FILE__) . "/actions/unlink.php");
}