]> git.mjollnir.org Git - moodle.git/commitdiff
mnet: new mnet_hosts block
authormartinlanghoff <martinlanghoff>
Thu, 4 Jan 2007 03:23:48 +0000 (03:23 +0000)
committermartinlanghoff <martinlanghoff>
Thu, 4 Jan 2007 03:23:48 +0000 (03:23 +0000)
blocks/mnet_hosts/block_mnet_hosts.php [new file with mode: 0644]
lang/en_utf8/block_mnet_hosts.php [new file with mode: 0644]
pix/i/mnethost.png [new file with mode: 0644]

diff --git a/blocks/mnet_hosts/block_mnet_hosts.php b/blocks/mnet_hosts/block_mnet_hosts.php
new file mode 100644 (file)
index 0000000..6c41687
--- /dev/null
@@ -0,0 +1,68 @@
+<?PHP //$Id$
+
+class block_mnet_hosts extends block_list {
+    function init() {
+        $this->title = get_string('mnet_hosts','block_mnet_hosts') ;
+        $this->version = 2006112100;
+    }
+
+    function has_config() {
+        return false;
+    }
+
+    function get_content() {
+        global $THEME, $CFG, $USER;
+
+        // check for outgoing roaming permission first
+        if (!has_capability('moodle/site:mnetlogintoremote', get_context_instance(CONTEXT_SYSTEM, SITEID))) {
+            return '';
+        }
+
+        if ($this->content !== NULL) {
+            return $this->content;
+        }
+
+        // TODO: Test this query - it's appropriate? It works?
+        // get the hosts and whether we are doing SSO with them
+        $sql = "
+             SELECT DISTINCT 
+                 h.id, 
+                 h.name
+             FROM 
+                 {$CFG->prefix}mnet_host h,
+                 {$CFG->prefix}mnet_host2service h2s_IDP,
+                 {$CFG->prefix}mnet_service s_IDP,
+                 {$CFG->prefix}mnet_host2service h2s_SP,
+                 {$CFG->prefix}mnet_service s_SP
+             WHERE
+                 h.id != '{$CFG->mnet_localhost_id}' AND
+                 h.id = h2s_IDP.hostid AND
+                 h2s_IDP.serviceid = s_IDP.id AND
+                 s_IDP.name = 'sso_idp' AND
+                 h2s_IDP.publish = '1' AND
+                 h.id = h2s_SP.hostid AND
+                 h2s_SP.serviceid = s_SP.id AND
+                 s_SP.name = 'sso_idp' AND
+                 h2s_SP.publish = '1'";
+
+        $hosts = get_records_sql($sql);
+
+        $this->content = new stdClass;
+        $this->content->items = array();
+        $this->content->icons = array();
+        $this->content->footer = '';
+
+        $icon  = "<img src=\"$CFG->pixpath/i/mnethost.png\"".
+            " height=\"16\" width=\"16\" alt=\"".get_string('server', 'block_mnet_hosts')."\" />";
+
+        foreach ($hosts as $host) {
+            $this->content->icons[]=$icon;
+            $this->content->items[]="<a title=\"" .s($host->name).
+                "\" href=\"{$CFG->wwwroot}/auth/mnet/jump.php?hostid={$host->id}\">" . s($host->name) ."</a>";
+        }
+
+        return $this->content;
+    }
+}
+
+?>
diff --git a/lang/en_utf8/block_mnet_hosts.php b/lang/en_utf8/block_mnet_hosts.php
new file mode 100644 (file)
index 0000000..969dd6c
--- /dev/null
@@ -0,0 +1,5 @@
+<?php // $Id$
+$string['mnet_hosts'] = 'Network Servers';
+$string['server'] = 'Server';
+
+?>
\ No newline at end of file
diff --git a/pix/i/mnethost.png b/pix/i/mnethost.png
new file mode 100644 (file)
index 0000000..0e8b240
Binary files /dev/null and b/pix/i/mnethost.png differ