aboutsummaryrefslogtreecommitdiff
path: root/mod/apiadmin/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/apiadmin/start.php')
-rw-r--r--mod/apiadmin/start.php79
1 files changed, 79 insertions, 0 deletions
diff --git a/mod/apiadmin/start.php b/mod/apiadmin/start.php
new file mode 100644
index 000000000..496d8e461
--- /dev/null
+++ b/mod/apiadmin/start.php
@@ -0,0 +1,79 @@
+<?php
+ /**
+ * Elgg API Admin
+ *
+ * @package ElggAPIAdmin
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd
+ * @copyright Curverider Ltd 2008
+ * @link http://elgg.com/
+ */
+
+ /**
+ * Initialise the API Admin tool
+ *
+ * @param unknown_type $event
+ * @param unknown_type $object_type
+ * @param unknown_type $object
+ */
+ function apiadmin_init($event, $object_type, $object = null) {
+
+ global $CONFIG;
+
+ // Register a page handler, so we can have nice URLs
+ register_page_handler('apiadmin','apiadmin_page_handler');
+
+ // Register some actions
+ register_action("apiadmin/revokekey",false, $CONFIG->pluginspath . "apiadmin/actions/revokekey.php", true);
+ register_action("apiadmin/generate",false, $CONFIG->pluginspath . "apiadmin/actions/generate.php", true);
+ }
+
+ /**
+ * Page setup. Adds admin controls to the admin panel.
+ *
+ */
+ function apiadmin_pagesetup()
+ {
+ if (get_context() == 'admin' && isadminloggedin()) {
+ global $CONFIG;
+ add_submenu_item(elgg_echo('apiadmin'), $CONFIG->wwwroot . 'pg/apiadmin/');
+ }
+ }
+
+
+ function apiadmin_page_handler($page)
+ {
+ global $CONFIG;
+
+ if ($page[0])
+ {
+ switch ($page[0])
+ {
+ default : include($CONFIG->pluginspath . "apiadmin/index.php");
+ }
+ }
+ else
+ include($CONFIG->pluginspath . "apiadmin/index.php");
+ }
+
+ function apiadmin_delete_key($event, $object_type, $object = null)
+ {
+ global $CONFIG;
+
+ if (($object) && ($object->subtype == get_subtype_id('object', 'api_key')))
+ {
+ // Delete
+ return remove_api_user($CONFIG->site_id, $object->public);
+ }
+
+ return true;
+ }
+
+
+ // Make sure test_init is called on initialisation
+ register_elgg_event_handler('init','system','apiadmin_init');
+ register_elgg_event_handler('pagesetup','system','apiadmin_pagesetup');
+
+ // Hook into delete to revoke secret keys
+ register_elgg_event_handler('delete','object','apiadmin_delete_key');
+?> \ No newline at end of file