From 57336ebb4a6c4de4112f8df73723e0c7d667539c Mon Sep 17 00:00:00 2001
From: Julian Granger-Bevan <julian.granger-bevan@cantab.net>
Date: Sat, 26 Feb 2011 22:43:42 +0000
Subject: [PATCH] Issue 1042698

---
 storm.module                                    |    4 +-
 storm.test                                      |   22 ++++-
 stormattribute/stormattribute.admin.inc         |   52 +++++------
 stormattribute/stormattribute.test              |   41 ++++++++
 stormexpense/stormexpense.admin.inc             |   68 ++++++--------
 stormexpense/stormexpense.module                |    2 +-
 stormexpense/stormexpense.test                  |   15 +++
 storminvoice/storminvoice.admin.inc             |   81 +++++++----------
 storminvoice/storminvoice.module                |    4 +-
 storminvoice/storminvoice.test                  |   15 +++
 stormknowledgebase/stormknowledgebase.admin.inc |   27 ++----
 stormknowledgebase/stormknowledgebase.module    |    2 +-
 stormknowledgebase/stormknowledgebase.test      |   17 +++-
 stormnote/stormnote.admin.inc                   |   35 +++----
 stormnote/stormnote.module                      |    2 +-
 stormnote/stormnote.test                        |   15 +++
 stormorganization/stormorganization.admin.inc   |   68 ++++++--------
 stormorganization/stormorganization.module      |    2 +-
 stormorganization/stormorganization.test        |   17 +++-
 stormperson/stormperson.admin.inc               |   29 ++----
 stormperson/stormperson.module                  |    2 +-
 stormperson/stormperson.test                    |   15 +++
 stormproject/stormproject.admin.inc             |  102 +++++++++------------
 stormproject/stormproject.module                |    2 +-
 stormproject/stormproject.test                  |   15 +++
 stormtask/stormtask.admin.inc                   |   87 +++++++----------
 stormtask/stormtask.module                      |    2 +-
 stormtask/stormtask.test                        |   15 +++
 stormticket/stormticket.admin.inc               |  113 ++++++++++-------------
 stormticket/stormticket.module                  |    2 +-
 stormticket/stormticket.test                    |   15 +++
 31 files changed, 491 insertions(+), 397 deletions(-)
 create mode 100644 stormattribute/stormattribute.test

diff --git a/storm.module b/storm.module
index 2d7deeb..905bf55 100644
--- a/storm.module
+++ b/storm.module
@@ -445,7 +445,7 @@ function storm_dateext_expand($element) {
         $options = drupal_map_assoc(range(1, 31));
         break;
     }
-    if ($element['#withnull']) {
+    if (isset($element['#withnull'])) {
       $options = array('-1' => '-') + $options;
     }
 
@@ -708,7 +708,7 @@ function storm_icon($icon, $title) {
 
   if (variable_get('storm_icons_display', TRUE) == TRUE) {
     $available = cache_get('storm:icons');
-    if ($available == 0) {
+    if (!is_object($available)) {
       // Cache miss
       $available = storm_icon_recache();
     }
diff --git a/storm.test b/storm.test
index 6eaa8fa..806ff54 100644
--- a/storm.test
+++ b/storm.test
@@ -31,5 +31,25 @@ class StormTestCase extends DrupalWebTestCase {
     $this->drupalGet('storm');
     $this->assertText(t('Storm Dashboard'), t('Make sure the correct page has been displayed by checking that the title is "Storm Dashboard".'));
   }
-}
 
+  public function testStormAccessSettings() {
+    $this->drupalGet('admin/settings/storm');
+    $this->assertResponse(403, t('Make sure access is denied to Storm settings page for anonymous user'));
+    $this->drupalGet('admin/settings/storm/storm');
+    $this->assertResponse(403, t('Make sure access is denied to Storm settings page for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('admin/settings/storm');
+    $this->assertResponse(403, t('Make sure access is denied to Storm settings page for basic user'));
+    $this->drupalGet('admin/settings/storm/storm');
+    $this->assertResponse(403, t('Make sure access is denied to Storm settings page for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm: access administration pages'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('admin/settings/storm');
+    $this->assertText(t('Storm'), t('Make sure the correct page has been displayed by checking that the title of the settings page is "Storm".'));
+    $this->drupalGet('admin/settings/storm/storm');
+    $this->assertText(t('Storm'), t('Make sure the correct page has been displayed by checking that the title of the settings page is "Storm".'));
+  }
+}
diff --git a/stormattribute/stormattribute.admin.inc b/stormattribute/stormattribute.admin.inc
index e669777..7c1c5ce 100644
--- a/stormattribute/stormattribute.admin.inc
+++ b/stormattribute/stormattribute.admin.inc
@@ -43,19 +43,19 @@ function stormattribute_list() {
   $args = array();
   $filterfields = array();
 
-  if ($_SESSION['stormattribute_list_filter']['domain']) {
+  if (isset($_SESSION['stormattribute_list_filter']['domain'])) {
     $where[] = "domain='%s'";
     $args[] = $_SESSION['stormattribute_list_filter']['domain'];
     $filterfields[] = t('Domain');
   }
 
-  if ($_SESSION['stormattribute_list_filter']['akey']) {
+  if (isset($_SESSION['stormattribute_list_filter']['akey'])) {
     $where[] = "LOWER(akey) LIKE LOWER('%s')";
     $args[] = $_SESSION['stormattribute_list_filter']['akey'];
     $filterfields[] = t('Key');
   }
 
-  if ($_SESSION['stormattribute_list_filter']['avalue']) {
+  if (isset($_SESSION['stormattribute_list_filter']['avalue'])) {
     $where[] = "LOWER(avalue) LIKE LOWER('%s')";
     $args[] = $_SESSION['stormattribute_list_filter']['avalue'];
     $filterfields[] = t('Value');
@@ -73,10 +73,7 @@ function stormattribute_list() {
     $filterfields[] = t('Default');
   }
   
-  $itemsperpage = $_SESSION['stormattribute_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
+  $itemsperpage = isset($_SESSION['stormattribute_list_filter']['itemsperpage']) ? $_SESSION['stormattribute_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
 
   $tablesort = tablesort_sql($header);
 
@@ -188,17 +185,14 @@ function stormattribute_list_submit($form, &$form_state) {
 }
 
 function stormattribute_list_filter(&$form_state, $filterdesc = 'Filter') {
-  $domain = $_SESSION['stormattribute_list_filter']['domain'];
-  $akey = $_SESSION['stormattribute_list_filter']['akey'];
-  $avalue = $_SESSION['stormattribute_list_filter']['avalue'];
-  $isactive = $_SESSION['stormattribute_list_filter']['isactive'];
-  $isdefault = $_SESSION['stormattribute_list_filter']['isdefault'];
-
-  $itemsperpage = $_SESSION['stormattribute_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormattribute_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $domain = isset($_SESSION['stormattribute_list_filter']['domain']) ? $_SESSION['stormattribute_list_filter']['domain'] : '';
+  $akey = isset($_SESSION['stormattribute_list_filter']['akey']) ? $_SESSION['stormattribute_list_filter']['akey'] : '';
+  $avalue = isset($_SESSION['stormattribute_list_filter']['avalue']) ? $_SESSION['stormattribute_list_filter']['avalue'] : '';
+  $isactive = isset($_SESSION['stormattribute_list_filter']['isactive']) ? $_SESSION['stormattribute_list_filter']['isactive'] : TRUE;
+  $isdefault = isset($_SESSION['stormattribute_list_filter']['isdefault']) ? $_SESSION['stormattribute_list_filter']['isdefault'] : FALSE;
+
+  $itemsperpage = isset($_SESSION['stormattribute_list_filter']['itemsperpage']) ? $_SESSION['stormattribute_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormattribute_list_filter']['itemsperpage'] = $itemsperpage;
 
   $form['filter'] = array(
     '#type' => 'fieldset',
@@ -394,17 +388,17 @@ function stormattribute_form($attribute = NULL) {
   drupal_set_breadcrumb($breadcrumb);
 
   if (arg(2)=='add') {
-    if (array_key_exists('domain', $_GET) && !$attribute->domain) {
+    if (array_key_exists('domain', $_GET) && !isset($attribute->domain)) {
       $attribute->domain = $_GET['domain'];
     }
 
-    if ($_SESSION['stormattribute_list_filter']['domain'] && !$attribute->domain) {
+    if (isset($_SESSION['stormattribute_list_filter']['domain']) && !isset($attribute->domain)) {
       $attribute->domain = $_SESSION['stormattribute_list_filter']['domain'];
     }
   }
 
   $form = array();
-  if ($attribute->aid) {
+  if (isset($attribute->aid)) {
     $form['aid'] = array(
       '#type' => 'value',
       '#value' => $attribute->aid,
@@ -420,7 +414,7 @@ function stormattribute_form($attribute = NULL) {
     '#type' => 'textfield',
     '#title' => t('Domain'),
     '#required' => TRUE,
-    '#default_value' => $attribute->domain,
+    '#default_value' => isset($attribute->domain) ? $attribute->domain : '',
     '#autocomplete_path' => 'storm/attributes/domain/autocomplete',
     '#size' => 40,
   );
@@ -434,7 +428,7 @@ function stormattribute_form($attribute = NULL) {
     '#type' => 'select',
     '#title' => t('Parent domain'),
     '#required' => FALSE,
-    '#default_value' => $attribute->parent_domain,
+    '#default_value' => isset($attribute->parent_domain) ? $attribute->parent_domain : '',
     '#options' => array(''=>'-') + $domains,
   );
 
@@ -447,7 +441,7 @@ function stormattribute_form($attribute = NULL) {
     '#type' => 'textfield',
     '#title' => t('Key'),
     '#required' => TRUE,
-    '#default_value' => $attribute->akey,
+    '#default_value' => isset($attribute->akey) ? $attribute->akey : '',
     '#size' => 25,
     '#maxlength' => 100,
   );
@@ -456,14 +450,14 @@ function stormattribute_form($attribute = NULL) {
     '#type' => 'textfield',
     '#title' => t('Value'),
     '#required' => TRUE,
-    '#default_value' => $attribute->avalue,
+    '#default_value' => isset($attribute->avalue) ? $attribute->avalue : '',
     '#size' => 25,
   );
 
   $form['group2']['weight'] = array(
     '#type' => 'weight',
     '#title' => t('Weight'),
-    '#default_value' => $attribute->weight,
+    '#default_value' => isset($attribute->weight) ? $attribute->weight : 0,
   );
 
   $form['group3'] = array(
@@ -474,13 +468,13 @@ function stormattribute_form($attribute = NULL) {
   $form['group3']['isactive'] = array(
     '#type' => 'checkbox',
     '#title' => t('Active'),
-    '#default_value' => $attribute->isactive,
+    '#default_value' => isset($attribute->isactive) ? $attribute->isactive : TRUE,
   );
 
   $form['group3']['isdefault'] = array(
     '#type' => 'checkbox',
     '#title' => t('Default'),
-    '#default_value' => $attribute->isdefault,
+    '#default_value' => isset($attribute->isdefault) ? $attribute->isdefault : FALSE,
   );
 
   $form['save'] = array(
@@ -488,7 +482,7 @@ function stormattribute_form($attribute = NULL) {
     '#value' => t('Save')
   );
 
-  if ($attribute->aid) {
+  if (isset($attribute->aid)) {
     $form['delete'] = array(
       '#type' => 'submit',
       '#value' => t('Delete'),
diff --git a/stormattribute/stormattribute.test b/stormattribute/stormattribute.test
new file mode 100644
index 0000000..896f155
--- /dev/null
+++ b/stormattribute/stormattribute.test
@@ -0,0 +1,41 @@
+<?php
+// $Id:$
+
+/**
+ * @file
+ * Tests for the Storm Attribute module
+ */
+class StormattributeTestCase extends DrupalWebTestCase {
+  public static function getInfo() {
+    return array(
+      'name' => 'Storm Attribute functionality',
+      'description' => 'Test the functionality of the Storm Attribute module',
+      'group' => 'Storm',
+    );
+  }
+
+  public function setUp() {
+    parent::setUp('storm', 'stormattribute');
+  }
+
+  public function testStormattributeAccess() {
+    $this->drupalGet('storm/attributes');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Attributes list for anonymous user'));
+    $this->drupalGet('storm/attributes/add');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Attributes form for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/attributes');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Attributes list for basic user'));
+    $this->drupalGet('storm/attributes/add');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Attributes form for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm: access administration pages'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/attributes');
+    $this->assertText(t('Attributes'), t('Make sure the correct page has been displayed by checking that the title is "Attributes".'));
+    $this->drupalGet('storm/attributes/add');
+    $this->assertText(t('Add a new attribute'), t('Make sure the correct page has been displayed by checking that the title is "Add a new attribute".'));
+  }
+}
diff --git a/stormexpense/stormexpense.admin.inc b/stormexpense/stormexpense.admin.inc
index 5933a7a..c5cd849 100644
--- a/stormexpense/stormexpense.admin.inc
+++ b/stormexpense/stormexpense.admin.inc
@@ -96,27 +96,27 @@ function stormexpense_list() {
   $args = array();
   $filterfields = array();
 
-  if ($_SESSION['stormexpense_list_filter']['organization_nid']) {
+  if (isset($_SESSION['stormexpense_list_filter']['organization_nid'])) {
     $where[] = 'sex.organization_nid=%d';
     $args[] = $_SESSION['stormexpense_list_filter']['organization_nid'];
     $filterfields[] = 'Organization';
   }
-  if ($_SESSION['stormexpense_list_filter']['project_nid']) {
+  if (isset($_SESSION['stormexpense_list_filter']['project_nid'])) {
     $where[] = 'sex.project_nid=%d';
     $args[] = $_SESSION['stormexpense_list_filter']['project_nid'];
     $filterfields[] = 'Project';
   }
-  if ($_SESSION['stormexpense_list_filter']['task_nid']) {
+  if (isset($_SESSION['stormexpense_list_filter']['task_nid'])) {
     $where[] = 'sex.task_nid=%d';
     $args[] = $_SESSION['stormexpense_list_filter']['task_nid'];
     $filterfields[] = 'Task';
   }
-  if ($_SESSION['stormexpense_list_filter']['ticket_nid']) {
+  if (isset($_SESSION['stormexpense_list_filter']['ticket_nid'])) {
     $where[] = 'sex.ticket_nid=%d';
     $args[] = $_SESSION['stormexpense_list_filter']['ticket_nid'];
     $filterfields[] = 'Ticket';
   }
-  if ($_SESSION['stormexpense_list_filter']['datefrom']) {
+  if (isset($_SESSION['stormexpense_list_filter']['datefrom'])) {
     $datefrom = $_SESSION['stormexpense_list_filter']['datefrom'];
     $datefrom['hour'] = 0;
     $datefrom['minute'] = 0;
@@ -124,7 +124,7 @@ function stormexpense_list() {
     $args[] = _storm_datetime_to_gmtimestamp($datefrom);
     $filterfields[] = 'Date';
   }
-  if ($_SESSION['stormexpense_list_filter']['dateto']) {
+  if (isset($_SESSION['stormexpense_list_filter']['dateto'])) {
     $dateto = $_SESSION['stormexpense_list_filter']['dateto'];
     $dateto['hour'] = 23;
     $dateto['minute'] = 59;
@@ -132,23 +132,20 @@ function stormexpense_list() {
     $args[] = _storm_datetime_to_gmtimestamp($dateto);
     $filterfields[] = 'Date';
   }
-  if ($_SESSION['stormexpense_list_filter']['title']) {
+  if (isset($_SESSION['stormexpense_list_filter']['title'])) {
     $where[] = "LOWER(n.title) LIKE LOWER('%s')";
     $args[] = $_SESSION['stormexpense_list_filter']['title'];
     $filterfields[] = 'Title';
   }
-  if ($_SESSION['stormexpense_list_filter']['provider_title']) {
+  if (isset($_SESSION['stormexpense_list_filter']['provider_title'])) {
     $where[] = "LOWER(sex.provider_title) LIKE LOWER('%s')";
     $args[] = $_SESSION['stormexpense_list_filter']['provider_title'];
     $filterfields[] = 'Provider';
   }
 
-  $itemsperpage = $_SESSION['stormexpense_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
+  $itemsperpage = isset($_SESSION['stormexpense_list_filter']['itemsperpage']) ? $_SESSION['stormexpense_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
 
-  if ($_SESSION['stormexpense_list_filter']['user']) {
+  if (isset($_SESSION['stormexpense_list_filter']['user'])) {
     $expenseuser = user_load(array('name' => $_SESSION['stormexpense_list_filter']['user']));
     if (!$expenseuser->uid) $expenseuser->uid =  -1;
     $where[] = 'n.uid=%d';
@@ -191,32 +188,25 @@ function stormexpense_list() {
 }
 
 function stormexpense_list_filter(&$form_state, $filterdesc = 'Filter') {
-  $organization_nid = $_SESSION['stormexpense_list_filter']['organization_nid'];
-  $project_nid = $_SESSION['stormexpense_list_filter']['project_nid'];
-  $task_nid = $_SESSION['stormexpense_list_filter']['task_nid'];
-  $ticket_nid = $_SESSION['stormexpense_list_filter']['ticket_nid'];
-  $itemsperpage = $_SESSION['stormexpense_list_filter']['itemsperpage'];
-  $title = $_SESSION['stormexpense_list_filter']['title'];
-  $provider_title = $_SESSION['stormexpense_list_filter']['provider_title'];
-
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormexpense_list_filter']['itemsperpage'] = $itemsperpage;
-  }
-
-  $datefrom = $_SESSION['stormexpense_list_filter']['datefrom'];
-  if (!$datefrom) {
-    $datefrom = array(
-      'day' => 1,
-      'month' => format_date(time(), 'custom', 'n'),
-      'year' => format_date(time(), 'custom', 'Y'),
-      'hour' => 0,
-      'minute' => 0,
-    );
-    $_SESSION['stormexpense_list_filter']['datefrom'] = $datefrom;
-  }
+  $organization_nid = isset($_SESSION['stormexpense_list_filter']['organization_nid']) ? $_SESSION['stormexpense_list_filter']['organization_nid'] : 0;
+  $project_nid = isset($_SESSION['stormexpense_list_filter']['project_nid']) ? $_SESSION['stormexpense_list_filter']['project_nid'] : 0;
+  $task_nid = isset($_SESSION['stormexpense_list_filter']['task_nid']) ? $_SESSION['stormexpense_list_filter']['task_nid'] : 0;
+  $ticket_nid = isset($_SESSION['stormexpense_list_filter']['ticket_nid']) ? $_SESSION['stormexpense_list_filter']['ticket_nid'] : 0;
+  $itemsperpage = isset($_SESSION['stormexpense_list_filter']['itemsperpage']) ? $_SESSION['stormexpense_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormexpense_list_filter']['itemsperpage'] = $itemsperpage;
+  $title = isset($_SESSION['stormexpense_list_filter']['title']) ? $_SESSION['stormexpense_list_filter']['title'] : '';
+  $provider_title = isset($_SESSION['stormexpense_list_filter']['provider_title']) ? $_SESSION['stormexpense_list_filter']['provider_title'] : '';
+
+  $datefrom = isset($_SESSION['stormexpense_list_filter']['datefrom']) ? $_SESSION['stormexpense_list_filter']['datefrom'] : array(
+    'day' => 1,
+    'month' => format_date(time(), 'custom', 'n'),
+    'year' => format_date(time(), 'custom', 'Y'),
+    'hour' => 0,
+    'minute' => 0,
+  );
+  $_SESSION['stormexpense_list_filter']['datefrom'] = $datefrom;
 
-  $expenseuser = $_SESSION['stormexpense_list_filter']['user'];
+  $expenseuser = isset($_SESSION['stormexpense_list_filter']['user']) ? $_SESSION['stormexpense_list_filter']['user'] : '';
 
   $form = array();
 
diff --git a/stormexpense/stormexpense.module b/stormexpense/stormexpense.module
index 3ebecee..63a6033 100644
--- a/stormexpense/stormexpense.module
+++ b/stormexpense/stormexpense.module
@@ -108,7 +108,7 @@ function stormexpense_access_sql($sql, $where = array()) {
 function stormexpense_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormexpense/stormexpense.test b/stormexpense/stormexpense.test
index 374fb49..73ef2fc 100644
--- a/stormexpense/stormexpense.test
+++ b/stormexpense/stormexpense.test
@@ -13,6 +13,21 @@ class StormexpenseTestCase extends DrupalWebTestCase {
     parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormproject', 'stormtask', 'stormticket', 'stormexpense');
   }
 
+  public function testStormexpenseAccess() {
+    $this->drupalGet('storm/expenses');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Expense list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/expenses');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Expense list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm expense: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/expenses');
+    $this->assertText(t('Expenses'), t('Make sure the correct page has been displayed by checking that the title is "Expenses".'));
+  }
+
   public function testStormexpenseCreate() {
     // Create and login user
     $user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm expense: add', 'Storm expense: view all', 'Storm project: view all', 'Storm task: view all'));
diff --git a/storminvoice/storminvoice.admin.inc b/storminvoice/storminvoice.admin.inc
index f595e27..cf11632 100644
--- a/storminvoice/storminvoice.admin.inc
+++ b/storminvoice/storminvoice.admin.inc
@@ -78,38 +78,38 @@ function storminvoice_list() {
   $args = array();
   $filterfields = array();
 
-  if ($_SESSION['storminvoice_list_filter']['organization_nid']) {
+  if (isset($_SESSION['storminvoice_list_filter']['organization_nid'])) {
     $where[] = 'sin.organization_nid=%d';
     $args[] = $_SESSION['storminvoice_list_filter']['organization_nid'];
     $filterfields[] = 'Organization';
   }
-  if ($_SESSION['storminvoice_list_filter']['project_nid']) {
+  if (isset($_SESSION['storminvoice_list_filter']['project_nid'])) {
     $where[] = 'sin.project_nid=%d';
     $args[] = $_SESSION['storminvoice_list_filter']['project_nid'];
     $filterfields[] = 'Project';
   }
-  if ($_SESSION['storminvoice_list_filter']['reqdatefrom']) {
+  if (isset($_SESSION['storminvoice_list_filter']['reqdatefrom'])) {
     $reqdatefrom = $_SESSION['storminvoice_list_filter']['reqdatefrom'];
     $where[] = 'sin.requestdate>=%d';
     $args[] = _storm_date_to_gmtimestamp($reqdatefrom);
     $filterfields[] = 'Request Date';
   }
-  if ($_SESSION['storminvoice_list_filter']['reqdateto']) {
+  if (isset($_SESSION['storminvoice_list_filter']['reqdateto'])) {
     $reqdateto = $_SESSION['storminvoice_list_filter']['reqdateto'];
     $where[] = 'sin.requestdate<=%d';
     $args[] = _storm_date_to_gmtimestamp($reqdateto);
     $filterfields[] = 'Request Date';
   }
 
-  $status = $_SESSION['storminvoice_list_filter']['status'];
-  if ($status && $status !='-') {
-    if ($status=='to pay') {
+  $status = isset($_SESSION['storminvoice_list_filter']['status']) ? $_SESSION['storminvoice_list_filter']['status'] : '-';
+  if ($status != '-') {
+    if ($status == 'to pay') {
       $where[] = "sin.paymentdate=0";
     }
-    if ($status=='paid') {
+    if ($status == 'paid') {
       $where[] = "sin.paymentdate<>0";
     }
-    if ($status=='overdue') {
+    if ($status == 'overdue') {
       $where[] = "sin.paymentdate=0 AND sin.duedate<". time();
     }
     $where[] = 'sin.requestdate<=%d';
@@ -117,11 +117,8 @@ function storminvoice_list() {
     $filterfields[] = 'Status';
   }
 
-  $itemsperpage = $_SESSION['storminvoice_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['storminvoice_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $itemsperpage = isset($_SESSION['storminvoice_list_filter']['itemsperpage']) ? $_SESSION['storminvoice_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['storminvoice_list_filter']['itemsperpage'] = $itemsperpage;
     
   $tablesort = tablesort_sql($header);
 
@@ -170,39 +167,29 @@ function storminvoice_list() {
 }
 
 function storminvoice_list_filter(&$form_state, $filterdesc = 'Filter') {
-  $organization_nid = $_SESSION['storminvoice_list_filter']['organization_nid'];
-  $project_nid = $_SESSION['storminvoice_list_filter']['project_nid'];
-  $status = $_SESSION['storminvoice_list_filter']['status'];
-  $itemsperpage = $_SESSION['storminvoice_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['storminvoice_list_filter']['itemsperpage'] = $itemsperpage;
-  }
-
-  $reqdatefrom = $_SESSION['storminvoice_list_filter']['reqdatefrom'];
-  $today = time();
-  if (!$reqdatefrom) {
-    $reqdatefrom = array(
-      'day' => 1,
-      'month' => 1,
-      'year' => format_date($today, 'custom', 'Y'),
-      'hour' => 0,
-      'minute' => 0,
-    );
-    $_SESSION['storminvoice_list_filter']['reqdatefrom'] = $reqdatefrom;
-  }
-
-  $reqdateto = $_SESSION['storminvoice_list_filter']['reqdateto'];
-  if (!$reqdateto) {
-    $reqdateto = array(
-      'day' => 31,
-      'month' => 12,
-      'year' => format_date($today, 'custom', 'Y'),
-      'hour' => 23,
-      'minute' => 59,
-    );
-    $_SESSION['storminvoice_list_filter']['reqdateto'] = $reqdateto;
-  }
+  $organization_nid = isset($_SESSION['storminvoice_list_filter']['organization_nid']) ? $_SESSION['storminvoice_list_filter']['organization_nid'] : 0;
+  $project_nid = isset($_SESSION['storminvoice_list_filter']['project_nid']) ? $_SESSION['storminvoice_list_filter']['project_nid'] : 0;
+  $status = isset($_SESSION['storminvoice_list_filter']['status']) ? $_SESSION['storminvoice_list_filter']['status'] : '';
+  $itemsperpage = isset($_SESSION['storminvoice_list_filter']['itemsperpage']) ? $_SESSION['storminvoice_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['storminvoice_list_filter']['itemsperpage'] = $itemsperpage;
+
+  $reqdatefrom = isset($_SESSION['storminvoice_list_filter']['reqdatefrom']) ? $_SESSION['storminvoice_list_filter']['reqdatefrom'] : array(
+    'day' => 1,
+    'month' => 1,
+    'year' => format_date(time(), 'custom', 'Y'),
+    'hour' => 0,
+    'minute' => 0,
+  );
+  $_SESSION['storminvoice_list_filter']['reqdatefrom'] = $reqdatefrom;
+
+  $reqdateto = isset($_SESSION['storminvoice_list_filter']['reqdateto']) ? $_SESSION['storminvoice_list_filter']['reqdateto'] : array(
+    'day' => 31,
+    'month' => 12,
+    'year' => format_date(time(), 'custom', 'Y'),
+    'hour' => 23,
+    'minute' => 59,
+  );
+  $_SESSION['storminvoice_list_filter']['reqdateto'] = $reqdateto;
 
   $form = array();
 
diff --git a/storminvoice/storminvoice.module b/storminvoice/storminvoice.module
index 0934ed9..8338b2a 100644
--- a/storminvoice/storminvoice.module
+++ b/storminvoice/storminvoice.module
@@ -254,7 +254,7 @@ function storminvoice_access_sql($sql, $where = array()) {
 function storminvoice_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
@@ -1132,4 +1132,4 @@ function storminvoice_token_values ($type, $object = NULL) {
     }
   return $values;
   }
-}
\ No newline at end of file
+}
diff --git a/storminvoice/storminvoice.test b/storminvoice/storminvoice.test
index dd1fbfe..74e24ce 100644
--- a/storminvoice/storminvoice.test
+++ b/storminvoice/storminvoice.test
@@ -13,6 +13,21 @@ class StorminvoiceTestCase extends DrupalWebTestCase {
     parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormproject', 'storminvoice');
   }
 
+  public function testStorminvoiceAccess() {
+    $this->drupalGet('storm/invoices');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Invoices list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/invoices');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Invoices list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm invoice: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/invoices');
+    $this->assertText(t('Invoices'), t('Make sure the correct page has been displayed by checking that the title is "Invoices".'));
+  }
+
   public function testStorminvoiceCreate() {
     // Create and login user
     $user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm invoice: add', 'Storm invoice: view all'));
diff --git a/stormknowledgebase/stormknowledgebase.admin.inc b/stormknowledgebase/stormknowledgebase.admin.inc
index 71bdc8f..12f8511 100644
--- a/stormknowledgebase/stormknowledgebase.admin.inc
+++ b/stormknowledgebase/stormknowledgebase.admin.inc
@@ -35,22 +35,18 @@ function stormknowledgebase_list() {
   $args = array();
   $filterfields = array();
 
-  $topic = $_SESSION['stormknowledgebase_list_filter']['topic'];
-  if(!$topic) {
-    $topic_list = stormattribute_attributes_bydomain('Knowledge base topic');
-    $topic = $topic_list['default'];
-    $_SESSION['stormknowledgebase_list_filter']['topic'] = $topic;
-  }
-  if ($topic && $topic != '-') {
+  $topic_list = stormattribute_attributes_bydomain('Knowledge base topic');
+  $topic = isset($_SESSION['stormknowledgebase_list_filter']['topic']) ? $_SESSION['stormknowledgebase_list_filter']['topic'] : $topic_list['default'];
+  $_SESSION['stormknowledgebase_list_filter']['topic'] = $topic;
+
+  if ($topic != '-') {
     $where[] = "skb.topic='%s'";
     $args[] = $topic;
     $filterfields[] = 'Topic';
   }
-  $itemsperpage = $_SESSION['stormknowledgebase_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    // Sets for fieldset label, doesn't affect actal filter.
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
+
+  // Sets for fieldset label, doesn't affect actual filter
+  $itemsperpage = isset($_SESSION['stormknowledgebase_list_filter']['itemsperpage']) ? $_SESSION['stormknowledgebase_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
 
   if (count($filterfields) == 0) {
     $filterdesc = t('Not filtered');
@@ -82,11 +78,8 @@ function stormknowledgebase_list_filter(&$form_state, $filterdesc = 'Filter') {
   $topic_list = stormattribute_attributes_bydomain('Knowledge base topic');
   $topic = $_SESSION['stormknowledgebase_list_filter']['topic'];
 
-  $itemsperpage = $_SESSION['stormknowledgebase_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormknowledgebase_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $itemsperpage = isset($_SESSION['stormknowledgebase_list_filter']['itemsperpage']) ? $_SESSION['stormknowledgebase_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormknowledgebase_list_filter']['itemsperpage'] = $itemsperpage;
 
   $form = array();
 
diff --git a/stormknowledgebase/stormknowledgebase.module b/stormknowledgebase/stormknowledgebase.module
index aeeef75..0b627e2 100644
--- a/stormknowledgebase/stormknowledgebase.module
+++ b/stormknowledgebase/stormknowledgebase.module
@@ -94,7 +94,7 @@ function stormknowledgebase_access_sql($sql, $where = array()) {
 function stormknowledgebase_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormknowledgebase/stormknowledgebase.test b/stormknowledgebase/stormknowledgebase.test
index f9b88b8..534189a 100644
--- a/stormknowledgebase/stormknowledgebase.test
+++ b/stormknowledgebase/stormknowledgebase.test
@@ -15,7 +15,22 @@ Knowledge base module',
     $privileged_user = $this->drupalCreateUser(array('Storm knowledgebase: add'));
     $this->drupalLogin($privileged_user);
   }
-  
+
+  public function testStormknowledgebaseAccess() {
+    $this->drupalGet('storm/knowledgebase');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Knowledgebase list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/knowledgebase');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Knowledgebase list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm knowledgebase: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/knowledgebase');
+    $this->assertText(t('Knowledge base'), t('Make sure the correct page has been displayed by checking that the title is "Knowledge base".'));
+  }
+
   public function testStormknowledgebaseCreate() {
     $edit = array(
       'title' => $this->randomName(32),
diff --git a/stormnote/stormnote.admin.inc b/stormnote/stormnote.admin.inc
index 3ff5dd4..44ecd68 100644
--- a/stormnote/stormnote.admin.inc
+++ b/stormnote/stormnote.admin.inc
@@ -41,7 +41,7 @@ function stormnote_list() {
   $i->type = 'stormnote';
 
   $params = $_GET;
-  if ($_SESSION['stormnote_list_filter']['organization_nid']) {
+  if (isset($_SESSION['stormnote_list_filter']['organization_nid'])) {
     $params['organization_nid'] = $_SESSION['stormnote_list_filter']['organization_nid'];
   }
 
@@ -74,31 +74,29 @@ function stormnote_list() {
   $args = array();
   $filterfields = array();
 
-  if ($_SESSION['stormnote_list_filter']['organization_nid']) {
+  if (isset($_SESSION['stormnote_list_filter']['organization_nid'])) {
     $where[] = 'sno.organization_nid=%d';
     $args[] = $_SESSION['stormnote_list_filter']['organization_nid'];
     $filterfields[] = 'Organization';
   }
-  if ($_SESSION['stormnote_list_filter']['project_nid']) {
+  if (isset($_SESSION['stormnote_list_filter']['project_nid'])) {
     $where[] = 'sno.project_nid=%d';
     $args[] = $_SESSION['stormnote_list_filter']['project_nid'];
     $filterfields[] = 'Project';
   }
-  if ($_SESSION['stormnote_list_filter']['task_nid']) {
+  if (isset($_SESSION['stormnote_list_filter']['task_nid'])) {
     $where[] = 'sno.task_nid=%d';
     $args[] = $_SESSION['stormnote_list_filter']['task_nid'];
     $filterfields[] = 'Task';
   }
-  if ($_SESSION['stormnote_list_filter']['title']) {
+  if (isset($_SESSION['stormnote_list_filter']['title'])) {
     $where[] = "LOWER(n.title) LIKE LOWER('%s')";
     $args[] = $_SESSION['stormnote_list_filter']['title'];
     $filterfields[] = 'Title';
   }
-  $itemsperpage = $_SESSION['stormnote_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    // This section only provides the value for the fieldset label, doesn't control  actual filter
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
+
+  // This section only provides the value for the fieldset label, doesn't control actual filter
+  $itemsperpage = isset($_SESSION['stormnote_list_filter']['itemsperpage']) ? $_SESSION['stormnote_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
 
   if (count($filterfields) == 0) {
     $filterdesc = t('Not filtered');
@@ -127,16 +125,13 @@ function stormnote_list() {
 }
 
 function stormnote_list_filter(&$form_state, $filterdesc = 'Filter') {
-  $organization_nid = $_SESSION['stormnote_list_filter']['organization_nid'];
-  $project_nid = $_SESSION['stormnote_list_filter']['project_nid'];
-  $task_nid = $_SESSION['stormnote_list_filter']['task_nid'];
-  $title = $_SESSION['stormnote_list_filter']['title'];
-
-  $itemsperpage = $_SESSION['stormnote_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormnote_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $organization_nid = isset($_SESSION['stormnote_list_filter']['organization_nid']) ? $_SESSION['stormnote_list_filter']['organization_nid'] : 0;
+  $project_nid = isset($_SESSION['stormnote_list_filter']['project_nid']) ? $_SESSION['stormnote_list_filter']['project_nid'] : 0;
+  $task_nid = isset($_SESSION['stormnote_list_filter']['task_nid']) ? $_SESSION['stormnote_list_filter']['task_nid'] : 0;
+  $title = isset($_SESSION['stormnote_list_filter']['title']) ? $_SESSION['stormnote_list_filter']['title'] : '';
+
+  $itemsperpage = isset($_SESSION['stormnote_list_filter']['itemsperpage']) ? $_SESSION['stormnote_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormnote_list_filter']['itemsperpage'] = $itemsperpage;
 
   $form = array();
 
diff --git a/stormnote/stormnote.module b/stormnote/stormnote.module
index 6814b84..8c28a81 100644
--- a/stormnote/stormnote.module
+++ b/stormnote/stormnote.module
@@ -108,7 +108,7 @@ function stormnote_access_sql($sql, $where = array()) {
 function stormnote_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormnote/stormnote.test b/stormnote/stormnote.test
index 93e323c..dbab082 100644
--- a/stormnote/stormnote.test
+++ b/stormnote/stormnote.test
@@ -13,6 +13,21 @@ class StormnoteTestCase extends DrupalWebTestCase {
     parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormproject', 'stormtask', 'stormnote');
   }
 
+  public function testStormnoteAccess() {
+    $this->drupalGet('storm/notes');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Notes list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/notes');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Notes list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm note: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/notes');
+    $this->assertText(t('Notes'), t('Make sure the correct page has been displayed by checking that the title is "Notes".'));
+  }
+
   public function testStormnoteCreate() {
     // Create and login user
     $user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm project: add', 'Storm project: view all', 'Storm task: add', 'Storm task: view all', 'Storm note: add', 'Storm note: view all'));
diff --git a/stormorganization/stormorganization.admin.inc b/stormorganization/stormorganization.admin.inc
index 6ecbdc4..bf0b706 100644
--- a/stormorganization/stormorganization.admin.inc
+++ b/stormorganization/stormorganization.admin.inc
@@ -41,58 +41,55 @@ function stormorganization_list() {
   $args = array();
   $filterfields = array();
 
-  $country = $_SESSION['stormorganization_list_filter']['country'];
-  if ($country && $country!='-') {
+  $country = isset($_SESSION['stormorganization_list_filter']['country']) ? $_SESSION['stormorganization_list_filter']['country'] : '-';
+  if ($country != '-') {
     $where[] = "sor.country='%s'";
     $args[] = $_SESSION['stormorganization_list_filter']['country'];
     $filterfields[] = t('Country');
   }
   
-  if ($_SESSION['stormorganization_list_filter']['name']) {
+  if (isset($_SESSION['stormorganization_list_filter']['name'])) {
     $where[] = "LOWER(n.title) LIKE LOWER('%s')";
     $args[] = $_SESSION['stormorganization_list_filter']['name'];
     $filterfields[] = t('Name');
   }
 
-  $iscustomer = $_SESSION['stormorganization_list_filter']['iscustomer'];
-  if ($iscustomer && $iscustomer!='-') {
-    if ($iscustomer=='yes') {
+  $iscustomer = isset($_SESSION['stormorganization_list_filter']['iscustomer']) ? $_SESSION['stormorganization_list_filter']['iscustomer'] : '-';
+  if ($iscustomer != '-') {
+    if ($iscustomer == 'yes') {
       $where[] = "sor.iscustomer=1";
     }
-    else if ($iscustomer=='no') {
+    else if ($iscustomer == 'no') {
       $where[] = "sor.iscustomer=0";
     }
     $filterfields[] = t('Customer');
   }
 
-  $isprovider = $_SESSION['stormorganization_list_filter']['isprovider'];
-  if ($isprovider && $isprovider!='-') {
-    if ($isprovider=='yes') {
+  $isprovider = isset($_SESSION['stormorganization_list_filter']['isprovider']) ? $_SESSION['stormorganization_list_filter']['isprovider'] : '-';
+  if ($isprovider != '-') {
+    if ($isprovider == 'yes') {
       $where[] = "sor.isprovider=1";
     }
-    else if ($isprovider=='no') {
+    else if ($isprovider == 'no') {
       $where[] = "sor.isprovider=0";
     }
     $filterfields[] = t('Provider');
   }
 
-  $isactive = $_SESSION['stormorganization_list_filter']['isactive'];
-  if ($isactive && $isactive!='-') {
-    if ($isactive=='yes') {
+  $isactive = isset($_SESSION['stormorganization_list_filter']['isactive']) ? $_SESSION['stormorganization_list_filter']['isactive'] : '-';
+  if ($isactive != '-') {
+    if ($isactive == 'yes') {
       $where[] = "sor.isactive=1";
     }
-    else if ($isactive=='no') {
+    else if ($isactive == 'no') {
       $where[] = "sor.isactive=0";
     }
     $filterfields[] = t('Active');
   }
 
-  $itemsperpage = $_SESSION['stormorganization_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    // Sets value for fieldset label, does not affect filter itself.
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
-  
+  // Sets value for fieldset label, does not affect filter itself.
+  $itemsperpage = isset($_SESSION['stormorganization_list_filter']['itemsperpage']) ? $_SESSION['stormorganization_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+
   if (count($filterfields) == 0) {
     $filterdesc = t('Not filtered');
   }
@@ -120,25 +117,18 @@ function stormorganization_list() {
 
 function stormorganization_list_filter(&$form_state, $filterdesc = 'Filter') {
   $country_list = stormattribute_attributes_bydomain('Country');
-  $country = $_SESSION['stormorganization_list_filter']['country'];
-  if (!$country) {
-    $country = '-';
-    $_SESSION['stormorganization_list_filter']['country'] = $country;
-  }
+  $country = isset($_SESSION['stormorganization_list_filter']['country']) ? $_SESSION['stormorganization_list_filter']['country'] : '-';
+  $_SESSION['stormorganization_list_filter']['country'] = $country;
 
-  $name = $_SESSION['stormorganization_list_filter']['name'];
-  $iscustomer = $_SESSION['stormorganization_list_filter']['iscustomer'];
-  $isprovider = $_SESSION['stormorganization_list_filter']['isprovider'];
-  $isactive = $_SESSION['stormorganization_list_filter']['isactive'];
-  if (!$isactive) {
-    $isactive = 'yes';
-    $_SESSION['stormorganization_list_filter']['isactive'] = $isactive;
-  }
-  $itemsperpage = $_SESSION['stormorganization_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormorganization_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $name = isset($_SESSION['stormorganization_list_filter']['name']) ? $_SESSION['stormorganization_list_filter']['name'] : '';
+  $iscustomer = isset($_SESSION['stormorganization_list_filter']['iscustomer']) ? $_SESSION['stormorganization_list_filter']['iscustomer'] : NULL;
+  $isprovider = isset($_SESSION['stormorganization_list_filter']['isprovider']) ? $_SESSION['stormorganization_list_filter']['isprovider'] : NULL;
+
+  $isactive = isset($_SESSION['stormorganization_list_filter']['isactive']) ? $_SESSION['stormorganization_list_filter']['isactive'] : 'yes';
+  $_SESSION['stormorganization_list_filter']['isactive'] = $isactive;
+
+  $itemsperpage = isset($_SESSION['stormorganization_list_filter']['itemsperpage']) ? $_SESSION['stormorganization_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormorganization_list_filter']['itemsperpage'] = $itemsperpage;
 
   $form = array();
 
diff --git a/stormorganization/stormorganization.module b/stormorganization/stormorganization.module
index 2b65446..c55d0f8 100644
--- a/stormorganization/stormorganization.module
+++ b/stormorganization/stormorganization.module
@@ -104,7 +104,7 @@ function stormorganization_access_sql($sql, $where = array()) {
 function stormorganization_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormorganization/stormorganization.test b/stormorganization/stormorganization.test
index d385405..5d9eeda 100644
--- a/stormorganization/stormorganization.test
+++ b/stormorganization/stormorganization.test
@@ -1,5 +1,5 @@
 <?php
-class StormorganisationTestCase extends DrupalWebTestCase {
+class StormorganizationTestCase extends DrupalWebTestCase {
 
   public static function getInfo() {
     return array(
@@ -16,6 +16,21 @@ Organization module',
     $this->drupalLogin($privileged_user);
   }
 
+  public function testStormorganizationAccess() {
+    $this->drupalGet('storm/organizations');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Organizations list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/organizations');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Organizations list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm organization: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/organizations');
+    $this->assertText(t('Organizations'), t('Make sure the correct page has been displayed by checking that the title is "Organizations".'));
+  }
+
   public function testStormorganizationCreate() {
     $edit = array(
       'title' => $this->randomName(32),
diff --git a/stormperson/stormperson.admin.inc b/stormperson/stormperson.admin.inc
index 8feb201..a633dea 100644
--- a/stormperson/stormperson.admin.inc
+++ b/stormperson/stormperson.admin.inc
@@ -18,9 +18,7 @@ function stormperson_list() {
   $i->type = 'stormperson';
 
   $params = $_GET;
-  if ($_SESSION['stormperson_list_filter']['organization_nid']) {
-    $params['organization_nid'] = $_SESSION['stormperson_list_filter']['organization_nid'];
-  }
+  $params['organization_nid'] = isset($_SESSION['stormperson_list_filter']['organization_nid']) ? $_SESSION['stormperson_list_filter']['organization_nid'] : NULL;
 
   $header = array(
     array(
@@ -46,21 +44,19 @@ function stormperson_list() {
   $filterfields = array();
 
   $s  = "SELECT n.*, spe.* FROM {node} AS n INNER JOIN {stormperson} AS spe ON n.vid=spe.vid WHERE n.status=1 AND n.type='stormperson' ";
-  if ($_SESSION['stormperson_list_filter']['organization_nid']) {
+  if (isset($_SESSION['stormperson_list_filter']['organization_nid'])) {
     $where[] = 'spe.organization_nid=%d';
     $args[] = $_SESSION['stormperson_list_filter']['organization_nid'];
     $filterfields[] = t('Organization');
   }
-  if ($_SESSION['stormperson_list_filter']['name']) {
+  if (isset($_SESSION['stormperson_list_filter']['name'])) {
     $where[] = "LOWER(n.title) LIKE LOWER('%%%s%%')";
     $args[] = $_SESSION['stormperson_list_filter']['name'];
     $filterfields[] = t('Name');
   }
-  $itemsperpage = $_SESSION['stormperson_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    // Sets $itemsperpage for fieldset label, but this section does not control storing of session variable.
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
+
+  // Sets $itemsperpage for fieldset label, but this section does not control storing of session variable.
+  $itemsperpage = isset($_SESSION['stormperson_list_filter']['itemsperpage']) ? $_SESSION['stormperson_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
   
   if (count($filterfields) == 0) {
     $filterdesc = t('Not filtered');
@@ -84,19 +80,16 @@ function stormperson_list() {
   }
 
   $o .= theme('stormperson_list', $header, $people);
-  $o .= theme('pager', NULL, $itemperpage, 0);
+  $o .= theme('pager', NULL, $itemsperpage, 0);
   print theme('page', $o);
 }
 
 function stormperson_list_filter(&$form_state, $filterdesc = 'Filter') {
-  $organization_nid = $_SESSION['stormperson_list_filter']['organization_nid'];
-  $name = $_SESSION['stormperson_list_filter']['name'];
+  $organization_nid = isset($_SESSION['stormperson_list_filter']['organization_nid']) ? $_SESSION['stormperson_list_filter']['organization_nid'] : 0;
+  $name = isset($_SESSION['stormperson_list_filter']['name']) ? $_SESSION['stormperson_list_filter']['name'] : '';
 
-  $itemsperpage = $_SESSION['stormperson_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormperson_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $itemsperpage = isset($_SESSION['stormperson_list_filter']['itemsperpage']) ? $_SESSION['stormperson_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormperson_list_filter']['itemsperpage'] = $itemsperpage;
 
   $form = array();
 
diff --git a/stormperson/stormperson.module b/stormperson/stormperson.module
index 3e798f4..e8ade4f 100644
--- a/stormperson/stormperson.module
+++ b/stormperson/stormperson.module
@@ -148,7 +148,7 @@ function stormperson_access_sql($sql, $where = array()) {
 function stormperson_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormperson/stormperson.test b/stormperson/stormperson.test
index 48afa69..9ec6deb 100644
--- a/stormperson/stormperson.test
+++ b/stormperson/stormperson.test
@@ -16,6 +16,21 @@ Person module',
     $this->drupalLogin($privileged_user);
   }
 
+  public function testStormpersonAccess() {
+    $this->drupalGet('storm/people');
+    $this->assertResponse(403, t('Make sure access is denied to Storm People list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/people');
+    $this->assertResponse(403, t('Make sure access is denied to Storm People list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm person: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/people');
+    $this->assertText(t('People'), t('Make sure the correct page has been displayed by checking that the title is "People".'));
+  }
+
   public function testStormpersonCreate() {
     $org = array(
       'title' => $this->randomName(32),
diff --git a/stormproject/stormproject.admin.inc b/stormproject/stormproject.admin.inc
index 63e9650..11697ab 100644
--- a/stormproject/stormproject.admin.inc
+++ b/stormproject/stormproject.admin.inc
@@ -51,31 +51,27 @@ function stormproject_list() {
   $args = array();
   $filterfields = array();
 
-  if ($_SESSION['stormproject_list_filter']['organization_nid']) {
+  if (isset($_SESSION['stormproject_list_filter']['organization_nid'])) {
     $where[] = 'spr.organization_nid=%d';
     $args[] = $_SESSION['stormproject_list_filter']['organization_nid'];
     $filterfields[] = 'Organization';
   }
 
-  $projectcategory = $_SESSION['stormproject_list_filter']['projectcategory'];
-  if (!$projectcategory) {
-    $category_list = stormattribute_attributes_bydomain('project category search');
-    $projectcategory = $category_list['default'];
-    $_SESSION['stormproject_list_filter']['projectcategory'] = $projectcategory;
-  }
-  if ($projectcategory && $projectcategory != '-') {
+  $category_list = stormattribute_attributes_bydomain('project category search');
+  $projectcategory = isset($_SESSION['stormproject_list_filter']['projectcategory']) ? $_SESSION['stormproject_list_filter']['projectcategory'] : $category_list['default'];
+  $_SESSION['stormproject_list_filter']['projectcategory'] = $projectcategory;
+
+  if ($projectcategory != '-') {
     $where[] = "spr.projectcategory='%s'";
     $args[] = $projectcategory;
     $filterfields[] = 'Category';
   }
 
-  $projectstatus = $_SESSION['stormproject_list_filter']['projectstatus'];
-  if (!$projectstatus) {
-    $status_list = stormattribute_attributes_bydomain('project status search');
-    $projectstatus = $status_list['default'];
-    $_SESSION['stormproject_list_filter']['projectstatus'] = $projectstatus;
-  }
-  if ($projectstatus && $projectstatus != '-') {
+  $status_list = stormattribute_attributes_bydomain('project status search');
+  $projectstatus = isset($_SESSION['stormproject_list_filter']['projectstatus']) ? $_SESSION['stormproject_list_filter']['projectstatus'] : $status_list['default'];
+  $_SESSION['stormproject_list_filter']['projectstatus'] = $projectstatus;
+
+  if ($projectstatus != '-') {
     $status = split(',', $projectstatus);
     $v = array();
     foreach ($status as $item) $v[] = '%s';
@@ -86,20 +82,18 @@ function stormproject_list() {
     $filterfields[] = 'Status';
   }
 
-  $projectpriority = $_SESSION['stormproject_list_filter']['projectpriority'];
-  if (!$projectpriority) {
-    $priority_list = stormattribute_attributes_bydomain('project priority search');
-    $projectpriority = $priority_list['default'];
-    $_SESSION['stormproject_list_filter']['projectpriority'] = $projectpriority;
-  }
-  if ($projectpriority && $projectpriority != '-') {
+  $priority_list = stormattribute_attributes_bydomain('project priority search');
+  $projectpriority = isset($_SESSION['stormproject_list_filter']['projectpriority']) ? $_SESSION['stormproject_list_filter']['projectpriority'] : $priority_list['default'];
+  $_SESSION['stormproject_list_filter']['projectpriority'] = $projectpriority;
+
+  if ($projectpriority != '-') {
     $where[] = "spr.projectpriority='%s'";
     $args[] = $projectpriority;
     $filterfields[] = 'Priority';
   }
 
-  $datebeginfrom = $_SESSION['stormproject_list_filter']['datebeginfrom'];
-  if ($datebeginfrom) {
+  if (isset($_SESSION['stormproject_list_filter']['datebeginfrom'])) {
+    $datebeginfrom = $_SESSION['stormproject_list_filter']['datebeginfrom'];
     $datebeginfrom['hour'] = 0;
     $datebeginfrom['minute'] = 0;
     $t = _storm_datetime_to_gmtimestamp($datebeginfrom);
@@ -110,8 +104,8 @@ function stormproject_list() {
     }
   }
 
-  $datebeginto = $_SESSION['stormproject_list_filter']['datebeginto'];
-  if ($datebeginto) {
+  if (isset($_SESSION['stormproject_list_filter']['datebeginto'])) {
+    $datebeginto = $_SESSION['stormproject_list_filter']['datebeginto'];
     $datebeginto['hour'] = 23;
     $datebeginto['minute'] = 59;
     $t = _storm_datetime_to_gmtimestamp($datebeginto);
@@ -122,8 +116,8 @@ function stormproject_list() {
     }
   }
 
-  $dateendfrom = $_SESSION['stormproject_list_filter']['dateendfrom'];
-  if ($dateendfrom) {
+  if (isset($_SESSION['stormproject_list_filter']['dateendfrom'])) {
+    $dateendfrom = $_SESSION['stormproject_list_filter']['dateendfrom'];
     $dateendfrom['hour'] = 0;
     $dateendfrom['minute'] = 0;
     $t = _storm_datetime_to_gmtimestamp($dateendfrom);
@@ -134,8 +128,8 @@ function stormproject_list() {
     }      
   }
 
-  $dateendto = $_SESSION['stormproject_list_filter']['dateendto'];
-  if ($dateendto) {
+  if (isset($_SESSION['stormproject_list_filter']['dateendto'])) {
+    $dateendto = $_SESSION['stormproject_list_filter']['dateendto'];
     $dateendto['hour'] = 23;
     $dateendto['minute'] = 59;
     $t = _storm_datetime_to_gmtimestamp($dateendto);
@@ -146,25 +140,21 @@ function stormproject_list() {
     }
   }
 
-  if ($_SESSION['stormproject_list_filter']['assigned_to']) {
+  if (isset($_SESSION['stormproject_list_filter']['assigned_to'])) {
     if (!is_numeric($_SESSION['stormproject_list_filter']['assigned_to'])) {
       switch ($_SESSION['stormproject_list_filter']['assigned_to']) {
-        
         case 'all':
           // NO FILTER
           break;
-        
         case 'mine':
           // CURRENT USER 
           if (!empty($user->stormperson_nid) && is_numeric($user->stormperson_nid)) {
             $assigned_to_nid = $user->stormperson_nid;
           }
           break;
-          
         case 'none':
           $where[] = '(spr.assigned_nid IS NULL OR spr.assigned_nid = 0) ';
           break;
-          
       }
     }
     else {
@@ -177,23 +167,20 @@ function stormproject_list() {
     }
   }
   
-  if ($_SESSION['stormproject_list_filter']['billable'] != '-' && $_SESSION['stormproject_list_filter']['billable'] != NULL) {
+  if (isset($_SESSION['stormproject_list_filter']['billable']) && $_SESSION['stormproject_list_filter']['billable'] != '-') {
     $where[] = 'spr.billable=%d';
     $args[] = $_SESSION['stormproject_list_filter']['billable'];
     $filterfields[] = t('Billable');
   }
 
-  if ($_SESSION['stormproject_list_filter']['billed'] != '-' && $_SESSION['stormproject_list_filter']['billed'] != NULL) {
+  if (isset($_SESSION['stormproject_list_filter']['billed']) && $_SESSION['stormproject_list_filter']['billed'] != '-') {
     $where[] = 'spr.billed=%d';
     $args[] = $_SESSION['stormproject_list_filter']['billed'];
     $filterfields[] = t('Billed');
   }
 
-  $itemsperpage = $_SESSION['stormproject_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
-  
+  $itemsperpage = isset($_SESSION['stormproject_list_filter']['itemsperpage']) ? $_SESSION['stormproject_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+
   if (count($filterfields) == 0) {
     $filterdesc = t('Not filtered');
   }
@@ -221,29 +208,26 @@ function stormproject_list() {
 }
 
 function stormproject_list_filter(&$form_state, $filterdesc = 'Filter') {
-  $organization_nid = $_SESSION['stormproject_list_filter']['organization_nid'];
+  $organization_nid = isset($_SESSION['stormproject_list_filter']['organization_nid']) ? $_SESSION['stormproject_list_filter']['organization_nid'] : 0;
 
   $category_list = stormattribute_attributes_bydomain('project category search');
-  $projectcategory = $_SESSION['stormproject_list_filter']['projectcategory'];
+  $projectcategory = isset($_SESSION['stormproject_list_filter']['projectcategory']) ? $_SESSION['stormproject_list_filter']['projectcategory'] : $category_list['default'];
 
   $status_list = stormattribute_attributes_bydomain('project status search');
-  $projectstatus = $_SESSION['stormproject_list_filter']['projectstatus'];
+  $projectstatus = isset($_SESSION['stormproject_list_filter']['projectstatus']) ? $_SESSION['stormproject_list_filter']['projectstatus'] : $status_list['default'];
 
   $priority_list = stormattribute_attributes_bydomain('project priority search');
-  $projectpriority = $_SESSION['stormproject_list_filter']['projectpriority'];
+  $projectpriority = isset($_SESSION['stormproject_list_filter']['projectpriority']) ? $_SESSION['stormproject_list_filter']['projectpriority'] : $priority_list['default'];
 
-  $datebeginfrom = $_SESSION['stormproject_list_filter']['datebeginfrom'];
-  $datebeginto = $_SESSION['stormproject_list_filter']['datebeginto'];
-  $dateendfrom = $_SESSION['stormproject_list_filter']['dateendfrom'];
-  $dateendto = $_SESSION['stormproject_list_filter']['dateendto'];
+  $datebeginfrom = isset($_SESSION['stormproject_list_filter']['datebeginfrom']) ? $_SESSION['stormproject_list_filter']['datebeginfrom'] : NULL;
+  $datebeginto = isset($_SESSION['stormproject_list_filter']['datebeginto']) ? $_SESSION['stormproject_list_filter']['datebeginto'] : NULL;
+  $dateendfrom = isset($_SESSION['stormproject_list_filter']['dateendfrom']) ? $_SESSION['stormproject_list_filter']['dateendfrom'] : NULL;
+  $dateendto = isset($_SESSION['stormproject_list_filter']['dateendto']) ? $_SESSION['stormproject_list_filter']['dateendto'] : NULL;
 
-  $assigned_to = $_SESSION['stormproject_list_filter']['assigned_to'];
+  $assigned_to = isset($_SESSION['stormproject_list_filter']['assigned_to']) ? $_SESSION['stormproject_list_filter']['assigned_to'] : NULL;
   
-  $itemsperpage = $_SESSION['stormproject_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormproject_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $itemsperpage = isset($_SESSION['stormproject_list_filter']['itemsperpage']) ? $_SESSION['stormproject_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormproject_list_filter']['itemsperpage'] = $itemsperpage;
 
   $form = array();
 
@@ -340,7 +324,7 @@ function stormproject_list_filter(&$form_state, $filterdesc = 'Filter') {
   );
   
   // ASSIGNED TO
-  $options = storm_get_assignment_options($node->organization_nid, $node->project_nid);
+  $options = isset($node) ? storm_get_assignment_options($node->organization_nid, $node->project_nid) : array();
   $form['filter']['group4']['assigned_to'] = array(
     '#type' => 'select',
     '#title' => t('Assigned to'),
@@ -352,14 +336,14 @@ function stormproject_list_filter(&$form_state, $filterdesc = 'Filter') {
     '#type' => 'select',
     '#title' => 'Billable',
     '#options' => array('-' => t('all'), '1' => t('billable'), '0' => t('not billable')),
-    '#default_value' => $_SESSION['stormproject_list_filter']['billable'],
+    '#default_value' => isset($_SESSION['stormproject_list_filter']['billable']) ? $_SESSION['stormproject_list_filter']['billable'] : '-',
   );
 
   $form['filter']['group4']['billed'] = array(
     '#type' => 'select',
     '#title' => 'Billed',
     '#options' => array('-' => t('all'), '1' => t('billed'), '0' => t('not billed')),
-    '#default_value' => $_SESSION['stormproject_list_filter']['billed'],
+    '#default_value' => isset($_SESSION['stormproject_list_filter']['billed']) ? $_SESSION['stormproject_list_filter']['billed'] : '-',
   );
 
   
diff --git a/stormproject/stormproject.module b/stormproject/stormproject.module
index 294f964..e477e55 100644
--- a/stormproject/stormproject.module
+++ b/stormproject/stormproject.module
@@ -176,7 +176,7 @@ function stormproject_access_sql($sql, $where = array()) {
 function stormproject_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormproject/stormproject.test b/stormproject/stormproject.test
index 25184e3..c81c510 100644
--- a/stormproject/stormproject.test
+++ b/stormproject/stormproject.test
@@ -13,6 +13,21 @@ class StormprojectTestCase extends DrupalWebTestCase {
     parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormproject');
   }
 
+  public function testStormprojectAccess() {
+    $this->drupalGet('storm/projects');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Projects list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/projects');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Projects list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm project: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/projects');
+    $this->assertText(t('Projects'), t('Make sure the correct page has been displayed by checking that the title is "Projects".'));
+  }
+
   public function testStormprojectCreate() {
     // Create and login user
     $user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm project: add', 'Storm project: view all'));
diff --git a/stormtask/stormtask.admin.inc b/stormtask/stormtask.admin.inc
index b25811f..700f659 100644
--- a/stormtask/stormtask.admin.inc
+++ b/stormtask/stormtask.admin.inc
@@ -480,17 +480,17 @@ function stormtask_list() {
   $filterfields = array();
 
   $s  = "SELECT n.*, sta.* FROM {node} AS n INNER JOIN {stormtask} AS sta ON n.vid=sta.vid WHERE n.status=1 AND n.type='stormtask' ";
-  if ($_SESSION['stormtask_list_filter']['organization_nid']) {
+  if (isset($_SESSION['stormtask_list_filter']['organization_nid'])) {
     $where[] = 'sta.organization_nid=%d';
     $args[] = $_SESSION['stormtask_list_filter']['organization_nid'];
     $filterfields[] = 'Organization';
   }
-  if ($_SESSION['stormtask_list_filter']['project_nid']) {
+  if (isset($_SESSION['stormtask_list_filter']['project_nid'])) {
     $where[] = 'sta.project_nid=%d';
     $args[] = $_SESSION['stormtask_list_filter']['project_nid'];
     $filterfields[] = 'Project';
   }
-  if ($_SESSION['stormtask_list_filter']['taskcategory'] && $_SESSION['stormtask_list_filter']['taskcategory'] != '-') {
+  if (isset($_SESSION['stormtask_list_filter']['taskcategory']) && $_SESSION['stormtask_list_filter']['taskcategory'] != '-') {
     $category = split(',', $_SESSION['stormtask_list_filter']['taskcategory']);
     $v = array();
     foreach ($category as $item) $v[] = '%s';
@@ -500,7 +500,7 @@ function stormtask_list() {
     }
     $filterfields[] = 'Category';
   }
-  if ($_SESSION['stormtask_list_filter']['taskstatus'] && $_SESSION['stormtask_list_filter']['taskstatus'] != '-') {
+  if (isset($_SESSION['stormtask_list_filter']['taskstatus']) && $_SESSION['stormtask_list_filter']['taskstatus'] != '-') {
     $status = split(',', $_SESSION['stormtask_list_filter']['taskstatus']);
     $v = array();
     foreach ($status as $item) $v[] = '%s';
@@ -510,7 +510,7 @@ function stormtask_list() {
     }
     $filterfields[] = 'Status';
   }
-  if ($_SESSION['stormtask_list_filter']['taskpriority'] && $_SESSION['stormtask_list_filter']['taskpriority'] != '-') {
+  if (isset($_SESSION['stormtask_list_filter']['taskpriority']) && $_SESSION['stormtask_list_filter']['taskpriority'] != '-') {
     $priority = split(',', $_SESSION['stormtask_list_filter']['taskpriority']);
     $v = array();
     foreach ($priority as $item) $v[] = '%s';
@@ -521,8 +521,8 @@ function stormtask_list() {
     $filterfields[] = 'Priority';
   }
 
-  $datebeginfrom = $_SESSION['stormtask_list_filter']['datebeginfrom'];
-  if ($datebeginfrom) {
+  if (isset($_SESSION['stormtask_list_filter']['datebeginfrom'])) {
+    $datebeginfrom = $_SESSION['stormtask_list_filter']['datebeginfrom'];
     $datebeginfrom['hour'] = 0;
     $datebeginfrom['minute'] = 0;
     $t = _storm_datetime_to_gmtimestamp($datebeginfrom);
@@ -533,8 +533,8 @@ function stormtask_list() {
     }
   }
 
-  $datebeginto = $_SESSION['stormtask_list_filter']['datebeginto'];
-  if ($datebeginto) {
+  if (isset($_SESSION['stormtask_list_filter']['datebeginto'])) {
+    $datebeginto = $_SESSION['stormtask_list_filter']['datebeginto'];
     $datebeginto['hour'] = 23;
     $datebeginto['minute'] = 59;
     $t = _storm_datetime_to_gmtimestamp($datebeginto);
@@ -545,8 +545,8 @@ function stormtask_list() {
     }
   }
 
-  $dateendfrom = $_SESSION['stormtask_list_filter']['dateendfrom'];
-  if ($dateendfrom) {
+  if (isset($_SESSION['stormtask_list_filter']['dateendfrom'])) {
+    $dateendfrom = $_SESSION['stormtask_list_filter']['dateendfrom'];
     $dateendfrom['hour'] = 0;
     $dateendfrom['minute'] = 0;
     $t = _storm_datetime_to_gmtimestamp($dateendfrom);
@@ -557,8 +557,8 @@ function stormtask_list() {
     }
   }
 
-  $dateendto = $_SESSION['stormtask_list_filter']['dateendto'];
-  if ($dateendto) {
+  if (isset($_SESSION['stormtask_list_filter']['dateendto'])) {
+    $dateendto = $_SESSION['stormtask_list_filter']['dateendto'];
     $dateendto['hour'] = 23;
     $dateendto['minute'] = 59;
     $t = _storm_datetime_to_gmtimestamp($dateendto);
@@ -569,7 +569,7 @@ function stormtask_list() {
     }
   }
   
-  if ($_SESSION['stormtask_list_filter']['assigned_to']) {
+  if (isset($_SESSION['stormtask_list_filter']['assigned_to'])) {
     if (!is_numeric($_SESSION['stormtask_list_filter']['assigned_to'])) {
       switch ($_SESSION['stormtask_list_filter']['assigned_to']) {
         
@@ -600,22 +600,19 @@ function stormtask_list() {
     }
   }
 
-  if ($_SESSION['stormtask_list_filter']['billable'] != '-' && $_SESSION['stormtask_list_filter']['billable'] != NULL) {
+  if (isset($_SESSION['stormtask_list_filter']['billable']) && $_SESSION['stormtask_list_filter']['billable'] != '-') {
     $where[] = 'sta.billable=%d';
     $args[] = $_SESSION['stormtask_list_filter']['billable'];
     $filterfields[] = t('Billable');
   }
 
-  if ($_SESSION['stormtask_list_filter']['billed'] != '-' && $_SESSION['stormtask_list_filter']['billed'] != NULL) {
+  if (isset($_SESSION['stormtask_list_filter']['billed']) && $_SESSION['stormtask_list_filter']['billed'] != '-') {
     $where[] = 'sta.billed=%d';
     $args[] = $_SESSION['stormtask_list_filter']['billed'];
     $filterfields[] = t('Billed');
   }
 
-  $itemsperpage = $_SESSION['stormtask_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-  }
+  $itemsperpage = isset($_SESSION['stormtask_list_filter']['itemsperpage']) ? $_SESSION['stormtask_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
 
   if (count($filterfields) == 0) {
     $filterdesc = t('Not filtered');
@@ -640,47 +637,35 @@ function stormtask_list() {
   }
 
   $o .= theme('stormtask_list', $header, $tasks);
-  $o .= theme('pager', NULL, $itemperpage, 0);
+  $o .= theme('pager', NULL, $itemsperpage, 0);
   print theme('page', $o);
 }
 
 function stormtask_list_filter(&$form_state, $filterdesc = 'Filter') {
   $category_list = stormattribute_attributes_bydomain('Task category search');
-  $taskcategory = $_SESSION['stormtask_list_filter']['taskcategory'];
-  if (!$taskcategory) {
-    $taskcategory = $category_list['default'];
-    $_SESSION['stormtask_list_filter']['taskcategory'] = $taskcategory;
-  }
+  $taskcategory = isset($_SESSION['stormtask_list_filter']['taskcategory']) ? $_SESSION['stormtask_list_filter']['taskcategory'] : $taskcategory = $category_list['default'];
+  $_SESSION['stormtask_list_filter']['taskcategory'] = $taskcategory;
 
   $status_list = stormattribute_attributes_bydomain('Task status search');
-  $taskstatus = $_SESSION['stormtask_list_filter']['taskstatus'];
-  if (!$taskstatus) {
-    $taskstatus = $status_list['default'];
-    $_SESSION['stormtask_list_filter']['taskstatus'] = $taskstatus;
-  }
+  $taskstatus = isset($_SESSION['stormtask_list_filter']['taskstatus']) ? $_SESSION['stormtask_list_filter']['taskstatus'] : $status_list['default'];
+  $_SESSION['stormtask_list_filter']['taskstatus'] = $taskstatus;
 
   $priority_list = stormattribute_attributes_bydomain('Task priority search');
-  $taskpriority = $_SESSION['stormtask_list_filter']['taskpriority'];
-  if (!$taskpriority) {
-    $taskpriority = $priority_list['default'];
-    $_SESSION['stormtask_list_filter']['taskpriority'] = $taskpriority;
-  }
+  $taskpriority = isset($_SESSION['stormtask_list_filter']['taskpriority']) ? $_SESSION['stormtask_list_filter']['taskpriority'] : $priority_list['default'];
+  $_SESSION['stormtask_list_filter']['taskpriority'] = $taskpriority;
 
-  $organization_nid = $_SESSION['stormtask_list_filter']['organization_nid'];
-  $project_nid = $_SESSION['stormtask_list_filter']['project_nid'];
+  $organization_nid = isset($_SESSION['stormtask_list_filter']['organization_nid']) ? $_SESSION['stormtask_list_filter']['organization_nid'] : 0;
+  $project_nid = isset($_SESSION['stormtask_list_filter']['project_nid']) ? $_SESSION['stormtask_list_filter']['project_nid'] : 0;
 
-  $datebeginfrom = $_SESSION['stormtask_list_filter']['datebeginfrom'];
-  $datebeginto = $_SESSION['stormtask_list_filter']['datebeginto'];
-  $dateendfrom = $_SESSION['stormtask_list_filter']['dateendfrom'];
-  $dateendto = $_SESSION['stormtask_list_filter']['dateendto'];
+  $datebeginfrom = isset($_SESSION['stormtask_list_filter']['datebeginfrom']) ? $_SESSION['stormtask_list_filter']['datebeginfrom'] : NULL;
+  $datebeginto = isset($_SESSION['stormtask_list_filter']['datebeginto']) ? $_SESSION['stormtask_list_filter']['datebeginto'] : NULL;
+  $dateendfrom = isset($_SESSION['stormtask_list_filter']['dateendfrom']) ? $_SESSION['stormtask_list_filter']['dateendfrom'] : NULL;
+  $dateendto = isset($_SESSION['stormtask_list_filter']['dateendto']) ? $_SESSION['stormtask_list_filter']['dateendfrom'] : NULL;
   
-  $assigned_to = $_SESSION['stormtask_list_filter']['assigned_to'];
+  $assigned_to = isset($_SESSION['stormtask_list_filter']['assigned_to']) ? $_SESSION['stormtask_list_filter']['assigned_to'] : NULL;
 
-  $itemsperpage = $_SESSION['stormtask_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormtask_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $itemsperpage = isset($_SESSION['stormtask_list_filter']['itemsperpage']) ? $_SESSION['stormtask_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormtask_list_filter']['itemsperpage'] = $itemsperpage;
 
   $form = array();
 
@@ -802,7 +787,7 @@ function stormtask_list_filter(&$form_state, $filterdesc = 'Filter') {
   );
 
   // ASSIGNED TO
-  $options = storm_get_assignment_options($node->organization_nid, $node->project_nid);
+  $options = isset($node) ? storm_get_assignment_options($node->organization_nid, $node->project_nid) : array();
   $form['filter']['group4_1']['assigned_to'] = array(
     '#type' => 'select',
     '#title' => t('Assigned to'),
@@ -814,14 +799,14 @@ function stormtask_list_filter(&$form_state, $filterdesc = 'Filter') {
     '#type' => 'select',
     '#title' => 'Billable',
     '#options' => array('-' => t('all'), '1' => t('billable'), '0' => t('not billable')),
-    '#default_value' => $_SESSION['stormtask_list_filter']['billable'],
+    '#default_value' => isset($_SESSION['stormtask_list_filter']['billable']) ? $_SESSION['stormtask_list_filter']['billable'] : '-',
   );
 
   $form['filter']['group4_1']['billed'] = array(
     '#type' => 'select',
     '#title' => 'Billed',
     '#options' => array('-' => t('all'), '1' => t('billed'), '0' => t('not billed')),
-    '#default_value' => $_SESSION['stormtask_list_filter']['billed'],
+    '#default_value' => isset($_SESSION['stormtask_list_filter']['billed']) ? $_SESSION['stormtask_list_filter']['billed'] : '-',
   );
 
   $form['filter']['group5'] = array(
diff --git a/stormtask/stormtask.module b/stormtask/stormtask.module
index 33de2bf..8d62489 100644
--- a/stormtask/stormtask.module
+++ b/stormtask/stormtask.module
@@ -163,7 +163,7 @@ function stormtask_access_sql($sql, $where = array()) {
 function stormtask_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormtask/stormtask.test b/stormtask/stormtask.test
index 41c4690..095c10f 100644
--- a/stormtask/stormtask.test
+++ b/stormtask/stormtask.test
@@ -13,6 +13,21 @@ class StormtaskTestCase extends DrupalWebTestCase {
     parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormproject', 'stormtask');
   }
 
+  public function testStormtaskAccess() {
+    $this->drupalGet('storm/tasks');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Tasks list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/tasks');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Tasks list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm task: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/tasks');
+    $this->assertText(t('Tasks'), t('Make sure the correct page has been displayed by checking that the title is "Tasks".'));
+  }
+
   public function testStormtaskCreate() {
     // Create and login user
     $user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm project: add', 'Storm project: view all', 'Storm task: add', 'Storm task: view all'));
diff --git a/stormticket/stormticket.admin.inc b/stormticket/stormticket.admin.inc
index f71b481..bc91e81 100644
--- a/stormticket/stormticket.admin.inc
+++ b/stormticket/stormticket.admin.inc
@@ -84,28 +84,27 @@ function stormticket_list() {
 
   $s = "SELECT n.*, sti.* FROM  {node} AS n INNER JOIN {stormticket} AS sti ON n.vid=sti.vid WHERE n.status=1 AND n.type='stormticket' ";
   
-  if ($_SESSION['stormticket_list_filter']['organization_nid']) {
+  if (isset($_SESSION['stormticket_list_filter']['organization_nid'])) {
     $where[] = 'sti.organization_nid=%d';
     $args[] = $_SESSION['stormticket_list_filter']['organization_nid'];
     $filterfields[] = t('Organization');
   }
-  if ($_SESSION['stormticket_list_filter']['project_nid']) {
+  if (isset($_SESSION['stormticket_list_filter']['project_nid'])) {
     $where[] = 'sti.project_nid=%d';
     $args[] = $_SESSION['stormticket_list_filter']['project_nid'];
     $filterfields[] = t('Project');
   }
-  if ($_SESSION['stormticket_list_filter']['task_nid']) {
+  if (isset($_SESSION['stormticket_list_filter']['task_nid'])) {
     $where[] = 'sti.task_nid=%d';
     $args[] = $_SESSION['stormticket_list_filter']['task_nid'];
     $filterfields[] = t('Task');
   }
-  $ticketcategory = $_SESSION['stormticket_list_filter']['ticketcategory'];
-  if (!$ticketcategory) {
-    $category_list = stormattribute_attributes_bydomain('ticket category search');
-    $ticketcategory = $category_list['default'];
-    $_SESSION['stormticket_list_filter']['ticketcategory'] = $ticketcategory;
-  }
-  if ($ticketcategory && $ticketcategory != '-') {
+
+  $category_list = stormattribute_attributes_bydomain('ticket category search');
+  $ticketcategory = isset($_SESSION['stormticket_list_filter']['ticketcategory']) ? $_SESSION['stormticket_list_filter'] : $category_list['default'];
+  $_SESSION['stormticket_list_filter']['ticketcategory'] = $ticketcategory;
+
+  if ($ticketcategory != '-') {
     $category = split(',', $ticketcategory);
     $v = array();
     foreach ($category as $item) $v[] = '%s';
@@ -115,13 +114,12 @@ function stormticket_list() {
     }
     $filterfields[] = t('Category');
   }
-  $ticketstatus = $_SESSION['stormticket_list_filter']['ticketstatus'];
-  if (!$ticketstatus) {
-    $status_list = stormattribute_attributes_bydomain('ticket status search');
-    $ticketstatus = $status_list['default'];
-    $_SESSION['stormticket_list_filter']['ticketstatus'] = $ticketstatus;
-  }
-  if ($ticketstatus && $ticketstatus != '-') {
+
+  $status_list = stormattribute_attributes_bydomain('ticket status search');
+  $ticketstatus = isset($_SESSION['stormticket_list_filter']['ticketstatus']) ? $_SESSION['stormticket_list_filter']['ticketstatus'] : $status_list['default'];
+  $_SESSION['stormticket_list_filter']['ticketstatus'] = $ticketstatus;
+
+  if ($ticketstatus != '-') {
     $status = split(',', $ticketstatus);
     $v = array();
     foreach ($status as $item) $v[] = '%s';
@@ -131,13 +129,12 @@ function stormticket_list() {
     }
     $filterfields[] = t('Status');
   }
-  $ticketpriority = $_SESSION['stormticket_list_filter']['ticketpriority'];
-  if (!$ticketpriority) {
-    $priority_list = stormattribute_attributes_bydomain('ticket priority search');
-    $ticketpriority = $priority_list['default'];
-    $_SESSION['stormticket_list_filter']['ticketpriority'] = $ticketpriority;
-  }
-  if ($ticketpriority && $ticketpriority != '-') {
+
+  $priority_list = stormattribute_attributes_bydomain('ticket priority search');
+  $ticketpriority = isset($_SESSION['stormticket_list_filter']['ticketpriority']) ? $_SESSION['stormticket_list_filter']['ticketpriority'] : $priority_list['default'];
+  $_SESSION['stormticket_list_filter']['ticketpriority'] = $ticketpriority;
+
+  if ($ticketpriority != '-') {
     $priority = split(',', $ticketpriority);
     $v = array();
     foreach ($priority as $item) $v[] = '%s';
@@ -148,8 +145,8 @@ function stormticket_list() {
     $filterfields[] = t('Priority');
   }
 
-  $datebeginfrom = $_SESSION['stormticket_list_filter']['datebeginfrom'];
-  if ($datebeginfrom) {
+  if (isset($_SESSION['stormticket_list_filter']['datebeginfrom'])) {
+    $datebeginfrom = $_SESSION['stormticket_list_filter']['datebeginfrom'];
     $datebeginfrom['hour'] = 0;
     $datebeginfrom['minute'] = 0;
     $t = _storm_datetime_to_gmtimestamp($datebeginfrom);
@@ -160,8 +157,8 @@ function stormticket_list() {
     }
   }
 
-  $datebeginto = $_SESSION['stormticket_list_filter']['datebeginto'];
-  if ($datebeginto) {
+  if (isset($_SESSION['stormticket_list_filter']['datebeginto'])) {
+    $datebeginto = $_SESSION['stormticket_list_filter']['datebeginto'];
     $datebeginto['hour'] = 23;
     $datebeginto['minute'] = 59;
     $t = _storm_datetime_to_gmtimestamp($datebeginto);
@@ -172,8 +169,8 @@ function stormticket_list() {
     }
   }
 
-  $dateendfrom = $_SESSION['stormticket_list_filter']['dateendfrom'];
-  if ($dateendfrom) {
+  if (isset($_SESSION['stormticket_list_filter']['dateendfrom'])) {
+    $dateendfrom = $_SESSION['stormticket_list_filter']['dateendfrom'];
     $dateendfrom['hour'] = 0;
     $dateendfrom['minute'] = 0;
     $t = _storm_datetime_to_gmtimestamp($dateendfrom);
@@ -184,8 +181,8 @@ function stormticket_list() {
     }
   }
 
-  $dateendto = $_SESSION['stormticket_list_filter']['dateendto'];
-  if ($dateendto) {
+  if (isset($_SESSION['stormticket_list_filter']['dateendto'])) {
+    $dateendto = $_SESSION['stormticket_list_filter']['dateendto'];
     $dateendto['hour'] = 23;
     $dateendto['minute'] = 59;
     $t = _storm_datetime_to_gmtimestamp($dateendto);
@@ -196,25 +193,21 @@ function stormticket_list() {
     }
   }
   
-  if ($_SESSION['stormticket_list_filter']['assigned_to']) {
+  if (isset($_SESSION['stormticket_list_filter']['assigned_to'])) {
     if (!is_numeric($_SESSION['stormticket_list_filter']['assigned_to'])) {
       switch ($_SESSION['stormticket_list_filter']['assigned_to']) {
-        
         case 'all':
           // NO FILTER
           break;
-        
         case 'mine':
           // CURRENT USER 
           if (!empty($user->stormperson_nid) && is_numeric($user->stormperson_nid)) {
             $assigned_to_nid = $user->stormperson_nid;
           }
           break;
-          
         case 'none':
           $where[] = '(sti.assigned_nid IS NULL OR sti.assigned_nid = 0) ';
           break;
-          
       }
     }
     else {
@@ -227,23 +220,20 @@ function stormticket_list() {
     }
   }
 
-  if ($_SESSION['stormticket_list_filter']['billable'] != '-' && $_SESSION['stormticket_list_filter']['billable'] != NULL) {
+  if (isset($_SESSION['stormticket_list_filter']['billable']) && $_SESSION['stormticket_list_filter']['billable'] != '-') {
     $where[] = 'sti.billable=%d';
     $args[] = $_SESSION['stormticket_list_filter']['billable'];
     $filterfields[] = t('Billable');
   }
 
-  if ($_SESSION['stormticket_list_filter']['billed'] != '-' && $_SESSION['stormticket_list_filter']['billed'] != NULL) {
+  if (isset($_SESSION['stormticket_list_filter']['billed']) && $_SESSION['stormticket_list_filter']['billed'] != '-') {
     $where[] = 'sti.billed=%d';
     $args[] = $_SESSION['stormticket_list_filter']['billed'];
     $filterfields[] = t('Billed');
   }
 
-  $itemsperpage = $_SESSION['stormticket_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormticket_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $itemsperpage = isset($_SESSION['stormticket_list_filter']['itemsperpage']) ? $_SESSION['stormticket_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormticket_list_filter']['itemsperpage'] = $itemsperpage;
 
   if (count($filterfields)==0) {
     $filterdesc = t('Not filtered');
@@ -272,31 +262,28 @@ function stormticket_list() {
 }
 
 function stormticket_list_filter(&$form_state, $filterdesc='Filter') {
-  $organization_nid = $_SESSION['stormticket_list_filter']['organization_nid'];
-  $project_nid = $_SESSION['stormticket_list_filter']['project_nid'];
-  $task_nid = $_SESSION['stormticket_list_filter']['task_nid'];
+  $organization_nid = isset($_SESSION['stormticket_list_filter']['organization_nid']) ? $_SESSION['stormticket_list_filter']['organization_nid'] : 0;
+  $project_nid = isset($_SESSION['stormticket_list_filter']['project_nid']) ? $_SESSION['stormticket_list_filter']['project_nid'] : 0;
+  $task_nid = isset($_SESSION['stormticket_list_filter']['task_nid']) ? $_SESSION['stormticket_list_filter']['task_nid'] : 0;
 
   $category_list = stormattribute_attributes_bydomain('ticket category search');
-  $ticketcategory = $_SESSION['stormticket_list_filter']['ticketcategory'];
+  $ticketcategory = isset($_SESSION['stormticket_list_filter']['ticketcategory']) ? $_SESSION['stormticket_list_filter']['ticketcategory'] : $category_list['default'];
 
   $status_list = stormattribute_attributes_bydomain('ticket status search');
-  $ticketstatus = $_SESSION['stormticket_list_filter']['ticketstatus'];
+  $ticketstatus = isset($_SESSION['stormticket_list_filter']['ticketstatus']) ? $_SESSION['stormticket_list_filter']['ticketstatus'] : $status_list['default'];
 
   $priority_list = stormattribute_attributes_bydomain('ticket priority search');
-  $ticketpriority = $_SESSION['stormticket_list_filter']['ticketpriority'];
+  $ticketpriority = isset($_SESSION['stormticket_list_filter']['ticketpriority']) ? $_SESSION['stormticket_list_filter']['ticketpriority'] : $priority_list['default'];
 
-  $itemsperpage = $_SESSION['stormticket_list_filter']['itemsperpage'];
-  if (!$itemsperpage) {
-    $itemsperpage = variable_get('storm_default_items_per_page', 10);
-    $_SESSION['stormticket_list_filter']['itemsperpage'] = $itemsperpage;
-  }
+  $itemsperpage = isset($_SESSION['stormticket_list_filter']['itemsperpage']) ? $_SESSION['stormticket_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
+  $_SESSION['stormticket_list_filter']['itemsperpage'] = $itemsperpage;
 
-  $datebeginfrom = $_SESSION['stormticket_list_filter']['datebeginfrom'];
-  $datebeginto = $_SESSION['stormticket_list_filter']['datebeginto'];
-  $dateendfrom = $_SESSION['stormticket_list_filter']['dateendfrom'];
-  $dateendto = $_SESSION['stormticket_list_filter']['dateendto'];
+  $datebeginfrom = isset($_SESSION['stormticket_list_filter']['datebeginfrom']) ? $_SESSION['stormticket_list_filter']['datebeginfrom'] : NULL;
+  $datebeginto = isset($_SESSION['stormticket_list_filter']['datebeginto']) ? $_SESSION['stormticket_list_filter']['datebeginto'] : NULL;
+  $dateendfrom = isset($_SESSION['stormticket_list_filter']['dateendfrom']) ? $_SESSION['stormticket_list_filter']['dateendfrom'] : NULL;
+  $dateendto = isset($_SESSION['stormticket_list_filter']['dateendto']) ? $_SESSION['stormticket_list_filter']['dateendto'] : NULL;
   
-  $assigned_to = $_SESSION['stormticket_list_filter']['assigned_to'];
+  $assigned_to = isset($_SESSION['stormticket_list_filter']['assigned_to']) ? $_SESSION['stormticket_list_filter']['assigned_to'] : NULL;
 
   $form = array();
 
@@ -436,7 +423,7 @@ function stormticket_list_filter(&$form_state, $filterdesc='Filter') {
   );
   
   // ASSIGNED TO
-  $options = storm_get_assignment_options($node->organization_nid, $node->project_nid);
+  $options = isset($node) ? storm_get_assignment_options($node->organization_nid, $node->project_nid) : array();
   $form['filter']['group4_1']['assigned_to'] = array(
     '#type' => 'select',
     '#title' => t('Assigned to'),
@@ -448,14 +435,14 @@ function stormticket_list_filter(&$form_state, $filterdesc='Filter') {
     '#type' => 'select',
     '#title' => 'Billable',
     '#options' => array('-' => t('all'), '1' => t('billable'), '0' => t('not billable')),
-    '#default_value' => $_SESSION['stormticket_list_filter']['billable'],
+    '#default_value' => isset($_SESSION['stormticket_list_filter']['billable']) ? $_SESSION['stormticket_list_filter']['billable'] : '-',
   );
 
   $form['filter']['group4_1']['billed'] = array(
     '#type' => 'select',
     '#title' => 'Billed',
     '#options' => array('-' => t('all'), '1' => t('billed'), '0' => t('not billed')),
-    '#default_value' => $_SESSION['stormticket_list_filter']['billed'],
+    '#default_value' => isset($_SESSION['stormticket_list_filter']['billed']) ? $_SESSION['stormticket_list_filter']['billed'] : '-',
   );
 
   $form['filter']['group5'] = array(
diff --git a/stormticket/stormticket.module b/stormticket/stormticket.module
index c760ca3..97bd8f9 100644
--- a/stormticket/stormticket.module
+++ b/stormticket/stormticket.module
@@ -167,7 +167,7 @@ function stormticket_access_sql($sql, $where=array()) {
 function stormticket_storm_rewrite_where_sql($query, $primary_table, $account) {
   static $conds = array();
 
-  if ($conds[$primary_table][$account->uid]) {
+  if (isset($conds[$primary_table][$account->uid])) {
     return $conds[$primary_table][$account->uid];
   }
 
diff --git a/stormticket/stormticket.test b/stormticket/stormticket.test
index 51ee590..f0a7ef6 100644
--- a/stormticket/stormticket.test
+++ b/stormticket/stormticket.test
@@ -13,6 +13,21 @@ class StormticketTestCase extends DrupalWebTestCase {
     parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormproject', 'stormtask', 'stormticket');
   }
 
+  public function testStormticketAccess() {
+    $this->drupalGet('storm/tickets');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Tickets list for anonymous user'));
+
+    $basic_user = $this->drupalCreateUser();
+    $this->drupalLogin($basic_user);
+    $this->drupalGet('storm/tickets');
+    $this->assertResponse(403, t('Make sure access is denied to Storm Tickets list for basic user'));
+
+    $privileged_user = $this->drupalCreateUser(array('Storm ticket: access'));
+    $this->drupalLogin($privileged_user);
+    $this->drupalGet('storm/tickets');
+    $this->assertText(t('Tickets'), t('Make sure the correct page has been displayed by checking that the title is "Tickets".'));
+  }
+
   public function testStormticketCreate() {
     // Create and login user
     $user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm project: add', 'Storm project: view all', 'Storm task: add', 'Storm task: view all', 'Storm ticket: add', 'Storm ticket: view all'));
-- 
1.7.0.4

