display login screen for sso
smbaker [Thu, 1 Nov 2012 23:39:15 +0000 (16:39 -0700)]
apps/gacksadmin/vicci.module

index 8184b79..a0e47c2 100644 (file)
@@ -1,61 +1,98 @@
 
-<?php // -*-php-*-\r
-  //\r
-  // Vicci PlanetLab Module\r
-  // $Id$\r
-  //\r
-\r
-require_once 'plc_config.php';\r
-require_once 'plc_session.php';\r
-require_once 'plc_functions.php';\r
-require_once 'gacks_functions.php';\r
-\r
-drupal_set_html_head('<link href="/planetlab/css/plc_style.css" rel="stylesheet" type="text/css"/>');\r
-\r
-function vicci_help($section) {\r
-  switch ($section) {\r
-  case 'admin/modules#description':\r
-    return t('Vicci Simplified User Portal.');\r
-  }\r
-}\r
-\r
-function vicci_info($field = 0) {\r
-  $info['name'] = 'Vicci';\r
-\r
-  if ($field) {\r
-    return $info[$field];\r
-  } else {\r
-    return $info;\r
-  }\r
+<?php // -*-php-*-
+  //
+  // Vicci PlanetLab Module
+  // $Id$
+  //
+
+require_once 'plc_config.php';
+require_once 'plc_session.php';
+require_once 'plc_functions.php';
+require_once 'gacks_functions.php';
+
+drupal_set_html_head('<link href="/planetlab/css/plc_style.css" rel="stylesheet" type="text/css"/>');
+
+function vicci_help($section) {
+  switch ($section) {
+  case 'admin/modules#description':
+    return t('Vicci Simplified User Portal.');
+  }
+}
+
+function vicci_info($field = 0) {
+  $info['name'] = 'Vicci';
+
+  if ($field) {
+    return $info[$field];
+  } else {
+    return $info;
+  }
 }
 
 function vicci_block($op = 'list', $delta = 0, $edit = array()) {
-  global $user, $plc;\r
-\r
-  if ($op == 'list') {\r
-    // this appears to be what's shown in the drupal "Blocks" admin page\r
-    $blocks[0]['info'] = t('Vicci');\r
-\r
-    return $blocks;\r
-\r
+  global $user, $plc;
+
+  if ($op == 'list') {
+    // this appears to be what's shown in the drupal "Blocks" admin page
+    $blocks[0]['info'] = t('Vicci');
+
+    return $blocks;
+
   } else if ($op == 'view') {
     $block = array();
     $items = array();
-\r
+
+    // by default, don't hide planetlab block
+    $plc->hide_planetlab_block=FALSE;
+
     if (!$plc->person) {
-        // not logged in
-        // leave $block empty, display nothing
+        // Force login via HTTPS
+        unset($_GET['time']);
+        $form['#action'] = "https://" . $_SERVER['HTTP_HOST'] . "/db/common/login_sso.php?url=" . url($_GET['q'], drupal_get_destination());
+        $form['#id'] = 'planetlab-login-form';
+        $form['email'] = array('#type' => 'textfield',
+                            '#title' => t('E-mail'),
+                            '#maxlength' => 60,
+                            '#size' => 25,
+                            '#required' => TRUE,
+                            '#name' => 'email',
+                            );
+        $form['password'] = array('#type' => 'password',
+                            '#title' => t('Password'),
+                            '#size' => 25,
+                            '#required' => TRUE,
+                            '#name' => 'password',
+                            );
+        $form['submit'] = array('#type' => 'submit',
+                              '#value' => t('Log in'),
+                              );
+
+        $block['subject'] = 'Vicci Login';
+        $block['content'] = drupal_get_form('planetlab_login_block', $form, 'planetlab_login');
+        $block['content'] .= p('');
+        $block['content'] .= p( href (l_reset_password(),"Forgot your password?") );
+        $block['content'] .= p( href(l_person_register(),"Create an account") );
+        $block['content'] .= p( href(l_site_register(),"File a site registration") );
+        $plc->hide_planetlab_block=TRUE;
     } else {
         $block['subject'] = 'Vicci';
 
         $bullet_item = href( l_gacks_service_level(), "Service settings");
         $items []= expanded($bullet_item);
 
-        $bullet_item = href(l_slice_add(),"Create new slice");
-        $items []= expanded($bullet_item);
+        if (0) {
+            $bullet_item = href("/planetlab_create_slice","Create new slice");
+            $items []= expanded($bullet_item);
 
-        $bullet_item = href( l_gacks_persons(), "Add users to slice");
-        $items []= expanded($bullet_item);
+            $bullet_item = href("/planetlab_add_users", "Add users to slice");
+            $items []= expanded($bullet_item);
+        } else {
+            $bullet_item = href(l_slice_add(),"Create new slice");
+            $items []= expanded($bullet_item);
+
+            $bullet_item = href( l_gacks_persons(), "Add users to slice");
+            $items []= expanded($bullet_item);
+        }
 
         $bullet_item = href( l_gacks_wizard(), "Add nodes to slice");
         $items []= expanded($bullet_item);
@@ -74,6 +111,7 @@ function vicci_block($op = 'list', $delta = 0, $edit = array()) {
             $items []= expanded($bullet_item);
             $bullet_item = href(l_gacks_advanced(1, $_SERVER['REQUEST_URI']),"Show Advanced");
             $items []= expanded($bullet_item);
+            $plc->hide_planetlab_block=TRUE;
         }
 
         $block['content'] = menu_theme($items);
@@ -86,54 +124,54 @@ function vicci_block($op = 'list', $delta = 0, $edit = array()) {
 // I don't think I need any of the stuff below
 
 function _vicci_menu($may_cache) {
-  $items = array();\r
-\r
-  if ($may_cache) {\r
-    $items[] = array(\r
-                     'path' => 'gacksadmin',\r
-                     'title' => variable_get('site_name', 'local'),\r
-                     'callback' => 'vicci_page',\r
-                     'access' => TRUE,\r
-                     'type' => MENU_CALLBACK\r
-                     );\r
-  }\r
-\r
-  return $items;\r
+  $items = array();
+
+  if ($may_cache) {
+    $items[] = array(
+                     'path' => 'gacksadmin',
+                     'title' => variable_get('site_name', 'local'),
+                     'callback' => 'vicci_page',
+                     'access' => TRUE,
+                     'type' => MENU_CALLBACK
+                     );
+  }
+
+  return $items;
 }
 
 function _vicci_page() {
-  $path = $_SERVER['DOCUMENT_ROOT'] . preg_replace('/^db\//', '/gacks/', $_GET['q']);\r
-\r
-  // error_log("Requested " . $_GET['q'] . " -> $path");\r
-\r
-  if (is_dir($path)) {\r
-    foreach (array('index.php', 'index.html', 'index.htm') as $index) {\r
-      if (is_file($path . "/$index")) {\r
-        $path .= "/$index";\r
-        break;\r
-      }\r
-    }\r
-  }\r
-\r
-  if (is_file($path)) {\r
-    if (preg_match('/.php$/', $path)) {\r
-      ob_start();\r
-      include $path;\r
-      $output = ob_get_contents();\r
-      ob_end_clean();\r
-    } else {\r
-      $output = file_get_contents($path);\r
-    }\r
-    return $output;\r
-  }\r
-\r
-  drupal_not_found();\r
-}\r
-\r
-function _theme_vicci($content) {\r
-  return $content;\r
-}\r
-\r
+  $path = $_SERVER['DOCUMENT_ROOT'] . preg_replace('/^db\//', '/gacks/', $_GET['q']);
+
+  // error_log("Requested " . $_GET['q'] . " -> $path");
+
+  if (is_dir($path)) {
+    foreach (array('index.php', 'index.html', 'index.htm') as $index) {
+      if (is_file($path . "/$index")) {
+        $path .= "/$index";
+        break;
+      }
+    }
+  }
+
+  if (is_file($path)) {
+    if (preg_match('/.php$/', $path)) {
+      ob_start();
+      include $path;
+      $output = ob_get_contents();
+      ob_end_clean();
+    } else {
+      $output = file_get_contents($path);
+    }
+    return $output;
+  }
+
+  drupal_not_found();
+}
+
+function _theme_vicci($content) {
+  return $content;
+}
+
 ?>