aboutsummaryrefslogtreecommitdiff
path: root/mod/apiadmin/start.php
diff options
context:
space:
mode:
authormarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-09-24 15:09:49 +0000
committermarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-09-24 15:09:49 +0000
commit0bf17c03c2de8423045bf59b83d1e6d12ed7ca42 (patch)
treec0e2b9a30e617d92392974139c605f5cde931fc6 /mod/apiadmin/start.php
parent745cdb1c22401bd62cf8e3d9754bcaceab2617f3 (diff)
downloadelgg-0bf17c03c2de8423045bf59b83d1e6d12ed7ca42.tar.gz
elgg-0bf17c03c2de8423045bf59b83d1e6d12ed7ca42.tar.bz2
Introducing API key administration panel
git-svn-id: https://code.elgg.org/elgg/trunk@2114 36083f99-b078-4883-b0ff-0f9b5a30f544
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