From 0ce2490bc2b99f7cc419d023e20e77a6a6b76ded Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no>
Date: Fri, 14 Nov 2008 21:29:50 +0000
Subject: [PATCH] Some sanity check for the statistics module, whether
 directory and input file exists and is writable

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@996 44740490-163a-0410-bde0-09ae8108e29a
---
 modules/statistics/hooks/hook_sanitycheck.php | 40 +++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 modules/statistics/hooks/hook_sanitycheck.php

diff --git a/modules/statistics/hooks/hook_sanitycheck.php b/modules/statistics/hooks/hook_sanitycheck.php
new file mode 100644
index 000000000..1d7ea71fe
--- /dev/null
+++ b/modules/statistics/hooks/hook_sanitycheck.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Hook to do santity checks
+ *
+ * @param array &$hookinfo  hookinfo
+ */
+function statistics_hook_sanitycheck(&$hookinfo) {
+	assert('is_array($hookinfo)');
+	assert('array_key_exists("errors", $hookinfo)');
+	assert('array_key_exists("info", $hookinfo)');
+
+	try {
+		$config = SimpleSAML_Configuration::getInstance();
+		$statconfig = $config->copyFromBase('statconfig', 'statistics.php');
+	} catch(Exception $e) {
+		$hookinfo['errors'][] = '[statistics] Could not get configuration: ' . $e->getMessage(); return;
+	}
+
+	$statdir = $statconfig->getValue('statdir');
+	$inputfile = $statconfig->getValue('inputfile');
+
+	if (file_exists($statdir)) {
+		$hookinfo['info'][] = '[statistics] Statistics dir [' . $statdir . '] exists';
+		if (is_writable($statdir)) {
+			$hookinfo['info'][] = '[statistics] Statistics dir [' . $statdir . '] is writable';
+		} else {
+			$hookinfo['errors'][] = '[statistics] Statistics dir [' . $statdir . '] is not writable';
+		}
+	} else {
+		$hookinfo['errors'][] = '[statistics] Statistics dir [' . $statdir . '] does not exists';
+	}
+
+
+	if (file_exists($inputfile)) {
+		$hookinfo['info'][] = '[statistics] Input file [' . $inputfile . '] exists';
+	} else {
+		$hookinfo['errors'][] = '[statistics] Input file [' . $inputfile . '] does not exists';
+	}
+}
+?>
\ No newline at end of file
-- 
GitLab