From c65bee3c8c72f42fbd86da7359e87de85d6a61a7 Mon Sep 17 00:00:00 2001
From: Eric Rasmussen <eric@unl.edu>
Date: Tue, 8 Nov 2011 23:07:53 +0000
Subject: [PATCH] [gh-245] Merging test into staging -c1150 -c1152 -c1154
 -c1162

git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x/staging@1271 20a16fea-79d4-4915-8869-1ea9d5ebf173
---
 .../all/modules/unl/unl_cas/unl_cas.admin.inc |  8 ++-
 sites/all/modules/unl/unl_cas/unl_cas.info    |  2 +-
 sites/all/modules/unl/unl_cas/unl_cas.install |  7 ++-
 sites/all/modules/unl/unl_cas/unl_cas.module  | 54 +++++++++++++++----
 4 files changed, 55 insertions(+), 16 deletions(-)

diff --git a/sites/all/modules/unl/unl_cas/unl_cas.admin.inc b/sites/all/modules/unl/unl_cas/unl_cas.admin.inc
index fa227163..1895db85 100644
--- a/sites/all/modules/unl/unl_cas/unl_cas.admin.inc
+++ b/sites/all/modules/unl/unl_cas/unl_cas.admin.inc
@@ -1,7 +1,9 @@
 <?php
 
+/**
+ * Settings for admin/people/import setup in unl_cas.module
+ */
 function unl_cas_user_import($form, &$form_state) {
-
   $form['root'] = array(
     '#type' => 'fieldset',
     '#title' => 'Import from UNL Directory.',
@@ -82,8 +84,10 @@ function unl_cas_user_import_submit($form, &$form_state) {
   }
 }
 
+/**
+ * Settings for admin/config/people/unl_cas setup in unl_cas.module
+ */
 function unl_cas_config($form, &$form_state) {
-
   $form['ldap'] = array(
     '#tree' => TRUE,
     '#type'  => 'fieldset',
diff --git a/sites/all/modules/unl/unl_cas/unl_cas.info b/sites/all/modules/unl/unl_cas/unl_cas.info
index 24b8e1a7..65389813 100644
--- a/sites/all/modules/unl/unl_cas/unl_cas.info
+++ b/sites/all/modules/unl/unl_cas/unl_cas.info
@@ -3,7 +3,7 @@ description = Enables CAS authentication/registration of users through login.unl
 package = UNL
 dependencies[] = unl
 core = 7.x
-version = "7.x-1.0-20101129"
+version = "7.x-1.0-beta1"
 configure = admin/config/people/unl_cas
 
 files[] = unl_cas.module
diff --git a/sites/all/modules/unl/unl_cas/unl_cas.install b/sites/all/modules/unl/unl_cas/unl_cas.install
index 20849a07..352044f1 100644
--- a/sites/all/modules/unl/unl_cas/unl_cas.install
+++ b/sites/all/modules/unl/unl_cas/unl_cas.install
@@ -1,5 +1,8 @@
 <?php
 
+/**
+ * Implements hook_schema().
+ */
 function unl_cas_schema() {
   $schema = array();
   $schema['unl_cas_settings'] = array(
@@ -22,7 +25,7 @@ function unl_cas_schema() {
     ),
     'primary key' => array('name'),
   );
-  
+
   return $schema;
 }
 
@@ -50,6 +53,6 @@ function unl_cas_update_7100() {
     ),
     'primary key' => array('name'),
   );
-  
+
   db_create_table('unl_cas_settings', $table);
 }
diff --git a/sites/all/modules/unl/unl_cas/unl_cas.module b/sites/all/modules/unl/unl_cas/unl_cas.module
index 96a8d1f8..c0031658 100644
--- a/sites/all/modules/unl/unl_cas/unl_cas.module
+++ b/sites/all/modules/unl/unl_cas/unl_cas.module
@@ -2,12 +2,17 @@
 
 require_once dirname(__FILE__) . '/../includes/common.php';
 
+/**
+ * Implements hook_enable().
+ */
 function unl_cas_enable() {
   variable_set('user_register', 0);
 }
 
+/**
+ * Implements hook_init().
+ */
 function unl_cas_init() {
-
   // If no one is claiming to be logged in while no one is actually logged in, we don't need CAS.
   if (!array_key_exists('unl_sso', $_COOKIE) && user_is_anonymous()) {
     return;
@@ -24,11 +29,14 @@ function unl_cas_init() {
   $cas = unl_cas_get_adapter();
   if ($cas->isTicketExpired() && ($_SERVER['REQUEST_METHOD'] == 'GET' || user_is_anonymous())) {
     $cas->setGateway();
+    unset($_GET['destination']);
     drupal_goto($cas->getLoginUrl());
   }
 }
 
 /**
+ * Sets up an instance of Unl_Cas
+ *
  * @return Unl_Cas
  */
 function unl_cas_get_adapter() {
@@ -43,16 +51,18 @@ function unl_cas_get_adapter() {
     } else {
       $url = url('user/cas', array('absolute' => TRUE, 'query' => drupal_get_destination()));
     }
-    unset($_GET['destination']);
     $adapter = new Unl_Cas($url, 'https://login.unl.edu/cas');
   }
   return $adapter;
 }
 
+/**
+ * Implements hook_menu().
+ */
 function unl_cas_menu() {
   $items['user/cas'] = array(
     'title'           => 'UNL CAS Validation',
-    'page callback'   => 'unl_cas_validate',
+    'page callback'   => 'unl_cas_validate_ticket',
     'access callback' => TRUE,
   );
 
@@ -64,7 +74,7 @@ function unl_cas_menu() {
     'page arguments'   => array('unl_cas_user_import'),
     'type'             => MENU_LOCAL_ACTION,
     'file'             => 'unl_cas.admin.inc',
-    'weight'	       => 1,
+    'weight'           => 1,
   );
 
   $items['admin/config/people/unl_cas'] = array(
@@ -74,19 +84,24 @@ function unl_cas_menu() {
     'page callback'    => 'drupal_get_form',
     'page arguments'   => array('unl_cas_config'),
     'file'             => 'unl_cas.admin.inc',
-    'weight'	       => 1,
+    'weight'           => 1,
   );
 
   return $items;
 }
 
+/**
+ * Implements hook_menu_alter().
+ */
 function unl_cas_menu_alter(&$items) {
   $items['admin/people/create']['weight'] = 2;
   $items['admin/people/create']['title'] .= ' manually';
 }
 
-function unl_cas_validate() {
-  drupal_session_start();
+/**
+ * Validates CAS ticket
+ */
+function unl_cas_validate_ticket() {
   $cas = unl_cas_get_adapter();
 
   if (array_key_exists('logoutRequest', $_POST)) {
@@ -117,9 +132,13 @@ function unl_cas_validate() {
   drupal_goto($destination['destination']);
 }
 
-function unl_cas_form_alter(&$form, $form_state, $form_id) {
+/**
+ * Implements hook_form_alter().
+ */
+function unl_cas_form_alter(&$form, &$form_state, $form_id) {
   if ($form_id == 'user_login') {
     $cas = unl_cas_get_adapter();
+    unset($_GET['destination']);
     drupal_goto($cas->getLoginUrl());
   }
 
@@ -162,20 +181,27 @@ function unl_cas_form_alter(&$form, $form_state, $form_id) {
 }
 
 /**
+ * Implements hook_form_FORM_ID_alter().
  * Make sure there's no funny business with somebody trying to change a password when we're using CAS.
  */
-function unl_cas_user_profile_form_validate(&$form, &$form_state) {
+function unl_cas_user_profile_form_validate(&$form, &$form_state, $form_id) {
   if ($form_state['values']['pass']) {
     form_set_error('current_pass', t('Password changes are not allowed when CAS is enabled!'));
   }
 }
 
+/**
+ * Implements hook_user_logout().
+ */
 function unl_cas_user_logout($account) {
   session_destroy();
   $cas = unl_cas_get_adapter();
   drupal_goto($cas->getLogoutUrl(url('<front>', array('absolute' => TRUE))));
 }
 
+/**
+ * Generates and saves a user using info from LDAP or Directory
+ */
 function unl_cas_import_user($username) {
   unl_load_zend_framework();
   $user = array();
@@ -229,7 +255,7 @@ function unl_cas_import_user($username) {
 }
 
 /**
- * Implements hook_user_presave()
+ * Implements hook_user_presave().
  *
  * On non-default sites, only allow users who are administrators on the default
  * to be administrators.  Also, automatically make users who are administrators
@@ -262,7 +288,7 @@ function unl_cas_user_presave(&$edit, $account, $category) {
 }
 
 /**
- * Implements hook_user_login()
+ * Implements hook_user_login().
  *
  * On non-default sites, if a user with the administrator role logs in, verify
  * that they are still an admin in the default site.  If not, remove them from
@@ -283,6 +309,9 @@ function unl_cas_user_login(&$edit, $account) {
   user_save($account, $edit);
 }
 
+/**
+ * Determines if given user has the administrator role on the master/root site of a multisite setup.
+ */
 function _unl_cas_is_user_default_site_administrator($username) {
   $shared_prefix = unl_get_shared_db_prefix();
   $shared_admin_role_id = unl_shared_variable_get('user_admin_role');
@@ -290,6 +319,9 @@ function _unl_cas_is_user_default_site_administrator($username) {
   return count($shared_admin_usernames) > 0;
 }
 
+/**
+ * Implements template_preprocess_user_picture().
+ */
 function unl_cas_preprocess_user_picture(&$variables) {
   //Default image: https://planetred.unl.edu/mod/profile/graphics/defaultmedium.gif
   if ($variables['account']->uid == 0) {
-- 
GitLab