Index: cas.module
===================================================================
--- cas.module	(revision 465)
+++ cas.module	(working copy)
@@ -203,9 +203,16 @@
       );
       $user = user_save($user, $user_up);
 
-       module_invoke_all('user', 'login', null, $user);
-       drupal_set_message(t(variable_get('cas_login_message', 'Logged in via CAS as %cas_username.'), array('%cas_username' => $user->name)));
-       watchdog('user', 'Session opened for %name.', array('%name' => $user->name));
+      $edit = array();
+      if (module_exists('persistent_login') && $_SESSION['cas_remember']) {
+        $edit['persistent_login'] = 1;
+      }
+      module_invoke_all('user', 'login', $edit, $user);
+      drupal_set_message(t(variable_get('cas_login_message', 'Logged in via CAS as %cas_username.'), array('%cas_username' => $user->name)));
+      if($edit['persistent_login'] == 1) {
+        drupal_set_message(t('You will remain logged in on this computer even after you close your browser.'));
+      }
+      watchdog('user', 'Session opened for %name.', array('%name' => $user->name));
       // We can't count on the menu because we're changing login states.
       cas_login_page();
    
@@ -386,6 +393,15 @@
     '#default_value' => variable_get('cas_hide_password', 0),
     '#description' => t('Hide password field on the edit user form.'),
     );
+
+  if (module_exists('persistent_login')) {
+    $form['account']['cas_allow_rememberme'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Users can stay logged in between sessions'),
+      '#default_value' => variable_get('cas_allow_rememberme', 0),
+      '#description' => t('If Persistent Login is enabled, users can choose to stay logged in between browser sessions'),
+      );
+  }
   
   $form['account']['cas_auto_assigned_role'] = array(
     '#type' => 'select', 
@@ -602,7 +618,7 @@
 }
 
 /**
- * Provides login blog that only shows up when the user logs in.
+ * Provides login block that only shows up when the user logs in.
  */
 function cas_block($op = 'list', $delta = 0, $edit = array())
 {
@@ -622,11 +638,7 @@
           $edit = $_POST['edit'];
 
           $output = "<div class=\"user-login-block\">\n";
-
-          // NOTE: special care needs to be taken because on pages with forms,
-          // such as node and comment submission pages, the $edit variable
-          // might already be set.
-          $output .= l(t('Login'),'cas');
+          $output .= drupal_get_form('cas_login_form');
           $output .= "</div>\n";
           $block['subject'] = t('User Login');
           $block['content'] = $output;
@@ -636,6 +648,26 @@
   }
 }
 
+function cas_login_form($form_state)
+{
+  $form['submit'] = array('#type' => 'submit', '#value' => t('Log in via CAS'));
+  if(module_exists('persistent_login') && variable_get('cas_allow_rememberme',0)) {
+    $form['remember'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Remember me'),
+      '#default_value' => 0,
+    );
+  }
+  return $form;
+}
+
+function cas_login_form_submit($form, &$form_state) {
+  if($form_state['values']['remember']) {
+    $_SESSION['cas_remember'] = 1;
+  }
+  $form_state['redirect'] = 'cas';
+}
+
 /**
  * Determines whether cas login should be enforced for this page load.
  * This is done based on the redirection settings for this module.
