<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -24,98 +24,116 @@ rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
     &lt;div id=&quot;ushahidi_login_logo&quot;&gt;&lt;img src=&quot;../media/img/admin/logo_login.gif&quot; width=&quot;400&quot; 
     height=&quot;80&quot; /&gt;&lt;/div&gt;
     &lt;div id=&quot;ushahidi_login&quot;&gt;
-      &lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;3&quot; cellpadding=&quot;4&quot; 
-      background=&quot;&quot; id=&quot;ushahidi_loginbox&quot;&gt;
-        &lt;form method=&quot;POST&quot; name=&quot;frm_install&quot; action=&quot;process.php&quot; 
-        style=&quot;line-height: 100%; margin-top: 0; margin-bottom: 0&quot;&gt;     
-	    &lt;?php
-	        if ($form-&gt;num_errors &gt; 0 ) { ?&gt;
-            &lt;tr&gt;
-              	&lt;td align=&quot;left&quot; class=&quot;login_error&quot;&gt;
-		    &lt;?php
-		        print ( $form-&gt;error('username') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
-			    . $form-&gt;error('username') . &quot;&lt;br /&gt;&quot;;
-				print ( $form-&gt;error('host') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
-			    .$form-&gt;error('host') . &quot;&lt;br /&gt;&quot;;
-				print ( $form-&gt;error('db_name') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
-			    .$form-&gt;error('db_name') . &quot;&lt;br /&gt;&quot;;
-				print ( $form-&gt;error('permission') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
-			    .$form-&gt;error('permission') . &quot;&lt;br /&gt;&quot;;
-				print ( $form-&gt;error('load_db_tpl') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
-			    .$form-&gt;error('load_db_tpl') . &quot;&lt;br /&gt;&quot;;
-				print ( $form-&gt;error('connection') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
-			    .$form-&gt;error('connection') . &quot;&lt;br /&gt;&quot;;
-		    ?&gt;
-		&lt;/td&gt;
-            &lt;/tr&gt;
-		&lt;?php } ?&gt;
-            &lt;tr&gt;
-              &lt;td&gt;&lt;strong&gt;Base Path:&lt;/strong&gt;&lt;br /&gt;
-              &lt;input type=&quot;text&quot; name=&quot;base_path&quot; class=&quot;login_text&quot; 
-                value=&quot;&lt;?php print $form-&gt;value('base_path'); ?&gt;&quot;/&gt;
-              &lt;br /&gt;Just interested in the name of the sub folder.&lt;br /&gt; 
-              If Ushahidi is in the root folder, leave this field empty. No slahes
-              Eg. ushahidi 
-              &lt;/td&gt;
-            &lt;/tr&gt;
-            &lt;tr&gt;
-              &lt;td&gt;&lt;strong&gt;Username:&lt;/strong&gt;&lt;br /&gt;
-              &lt;input type=&quot;text&quot; name=&quot;username&quot; class=&quot;login_text&quot; 
-                value=&quot;&lt;?php print $form-&gt;value('username'); ?&gt;&quot;/&gt;
-              &lt;br /&gt;Your database username.
-              &lt;/td&gt;
-            &lt;/tr&gt;
-            &lt;tr&gt;
-              &lt;td&gt;&lt;strong&gt;Password:&lt;/strong&gt;&lt;br /&gt;
-              &lt;input type=&quot;password&quot; name=&quot;password&quot; class=&quot;login_text&quot; /&gt;
-              &lt;br /&gt;Your database password.
-              &lt;/td&gt;
-            &lt;/tr&gt;
-            &lt;tr&gt;
-              &lt;td&gt;
-                &lt;strong&gt;Database Host:&lt;/strong&gt;&lt;br /&gt;
-              &lt;input type=&quot;text&quot; name=&quot;host&quot; class=&quot;login_text&quot; 
-                value=&quot;&lt;?php print $form-&gt;value('host') == '' ? 'localhost':$form-&gt;value('host'); ?&gt;&quot; /&gt;
-              &lt;br /&gt;Your database host. It could also be mysql.somedomain.com
-              &lt;/td&gt;  
-            &lt;/tr&gt;
-            &lt;tr&gt;
-              &lt;td&gt;
-                &lt;strong&gt;Database Name:&lt;/strong&gt;&lt;br /&gt;
-              &lt;input type=&quot;text&quot; name=&quot;db_name&quot; class=&quot;login_text&quot; 
-              value=&quot;&lt;?php print $form-&gt;value('db_name'); ?&gt;&quot; /&gt;
-                &lt;br /&gt;The name of the database you want to run Ushahidi in.
-              &lt;/td&gt;
-            &lt;/tr&gt;
-            &lt;tr&gt;
-              &lt;td&gt;
-                &lt;strong&gt;Database Type:&lt;/strong&gt;&lt;br /&gt;
-                &lt;select name=&quot;select_db_type&quot;&gt;
-                    &lt;option value=&quot;mysql&quot;&gt;mysql&lt;/option&gt;
-                    &lt;option value=&quot;postgresql&quot;&gt;postgresql&lt;/option&gt;
-                &lt;/select&gt;
-                &lt;br /&gt;Select the type of database you want to use.
-              &lt;/td&gt;
-            &lt;/tr&gt;
-            &lt;tr&gt;
-              &lt;td&gt;
-                &lt;strong&gt;Table Prefix:&lt;/strong&gt;&lt;br /&gt;
-                  &lt;input type=&quot;text&quot; name=&quot;table_prefix&quot; class=&quot;login_text&quot; 
-                  value=&quot;&lt;?php print $form-&gt;value('table_prefix'); ?&gt;&quot; /&gt;
-                &lt;br /&gt;The prefix to be used by the tables. Eg. ush_&lt;br /&gt;
-                Leave it blank for nothing. 
-                &lt;input type=&quot;hidden&quot; name=&quot;connection&quot; /&gt;
-                &lt;input type=&quot;hidden&quot; name=&quot;permission&quot; /&gt;
-                &lt;input type=&quot;hidden&quot; name=&quot;load_db_tpl&quot; /&gt;
-              &lt;/td&gt;
-            &lt;/tr&gt;
-            
-            &lt;tr&gt;
-              &lt;td&gt;&lt;input type=&quot;submit&quot; id=&quot;install&quot; name=&quot;install&quot; 
-              value=&quot;Install&quot; class=&quot;login_btn&quot; /&gt;&lt;/td&gt;
-            &lt;/tr&gt;
-        &lt;/form&gt;
-      &lt;/table&gt;
+    
+      &lt;?php 
+      	$ret = $install-&gt;_check_writable_dir();
+		
+		if ($form-&gt;num_errors &gt; 0 ) {
+			print ( $form-&gt;error('root_dir') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+				.$form-&gt;error('root_dir') . &quot;&lt;br /&gt;&lt;br /&gt;&quot;;
+			print ( $form-&gt;error('config_dir') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+				.$form-&gt;error('config_dir') . &quot;&lt;br /&gt;&lt;br /&gt;&quot;;
+		}?&gt;
+		
+		&lt;p&gt;
+			After fixing the above problem, click &lt;a href=&quot;&quot;&gt;here&lt;/a&gt; to install ushahidi.
+		&lt;/p&gt;
+		
+		&lt;?php
+	    if($ret == 0 ){ 
+	    	if ($form-&gt;num_errors &gt; 0 ) { ?&gt;
+	    		&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;3&quot; c&lt;table width=&quot;100%&quot; border=&quot;0&quot; cellspacing=&quot;3&quot; cellpadding=&quot;4&quot; 
+      				background=&quot;&quot; id=&quot;ushahidi_loginbox&quot;&gt;ellpadding=&quot;4&quot; 
+      				background=&quot;&quot; id=&quot;ushahidi_loginbox&quot;&gt;
+        		&lt;form method=&quot;POST&quot; name=&quot;frm_install&quot; action=&quot;process.php&quot; 
+        			style=&quot;line-height: 100%; margin-top: 0; margin-bottom: 0&quot;&gt;     
+            		&lt;tr&gt;
+              			&lt;td align=&quot;left&quot; class=&quot;login_error&quot;&gt;
+		    			&lt;?php
+		        			print ( $form-&gt;error('username') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+			    				.$form-&gt;error('username') . &quot;&lt;br /&gt;&quot;;
+							print ( $form-&gt;error('host') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+			    				.$form-&gt;error('host') . &quot;&lt;br /&gt;&quot;;
+							print ( $form-&gt;error('db_name') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+			    				.$form-&gt;error('db_name') . &quot;&lt;br /&gt;&quot;;
+							print ( $form-&gt;error('permission') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+			    				.$form-&gt;error('permission') . &quot;&lt;br /&gt;&quot;;
+							print ( $form-&gt;error('load_db_tpl') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+			    				.$form-&gt;error('load_db_tpl') . &quot;&lt;br /&gt;&quot;;
+							print ( $form-&gt;error('connection') ==&quot;&quot;) ?'':&quot;&amp;#8226;&amp;nbsp;&quot; 
+			    				.$form-&gt;error('connection') . &quot;&lt;br /&gt;&quot;;
+		    			?&gt;
+						&lt;/td&gt;
+            		&lt;/tr&gt;
+				&lt;?php } ?&gt;
+            		&lt;tr&gt;
+              			&lt;td&gt;&lt;strong&gt;Base Path:&lt;/strong&gt;&lt;br /&gt;
+              				&lt;input type=&quot;text&quot; name=&quot;base_path&quot; class=&quot;login_text&quot; 
+                				value=&quot;&lt;?php print $form-&gt;value('base_path'); ?&gt;&quot;/&gt;
+              					&lt;br /&gt;Just interested in the name of the sub folder.&lt;br /&gt; 
+              					If Ushahidi is in the root folder, leave this field empty. No slahes
+              					Eg. ushahidi 
+              			&lt;/td&gt;
+            		&lt;/tr&gt;
+            		&lt;tr&gt;
+              			&lt;td&gt;&lt;strong&gt;Username:&lt;/strong&gt;&lt;br /&gt;
+              				&lt;input type=&quot;text&quot; name=&quot;username&quot; class=&quot;login_text&quot; 
+                				value=&quot;&lt;?php print $form-&gt;value('username'); ?&gt;&quot;/&gt;
+              				&lt;br /&gt;Your database username.
+              			&lt;/td&gt;
+            		&lt;/tr&gt;
+            		&lt;tr&gt;
+              			&lt;td&gt;&lt;strong&gt;Password:&lt;/strong&gt;&lt;br /&gt;
+              				&lt;input type=&quot;password&quot; name=&quot;password&quot; class=&quot;login_text&quot; /&gt;
+              				&lt;br /&gt;Your database password.
+              			&lt;/td&gt;
+            		&lt;/tr&gt;
+            		&lt;tr&gt;
+              			&lt;td&gt;
+                			&lt;strong&gt;Database Host:&lt;/strong&gt;&lt;br /&gt;
+              				&lt;input type=&quot;text&quot; name=&quot;host&quot; class=&quot;login_text&quot; 
+                			value=&quot;&lt;?php print $form-&gt;value('host') == '' ? 'localhost':$form-&gt;value('host'); ?&gt;&quot; /&gt;
+              				&lt;br /&gt;Your database host. It could also be mysql.somedomain.com
+              			&lt;/td&gt;  
+            		&lt;/tr&gt;
+            		&lt;tr&gt;
+              			&lt;td&gt;
+                			&lt;strong&gt;Database Name:&lt;/strong&gt;&lt;br /&gt;
+              				&lt;input type=&quot;text&quot; name=&quot;db_name&quot; class=&quot;login_text&quot; 
+              				value=&quot;&lt;?php print $form-&gt;value('db_name'); ?&gt;&quot; /&gt;
+                			&lt;br /&gt;The name of the database you want to run Ushahidi in.
+              			&lt;/td&gt;
+            		&lt;/tr&gt;
+            		&lt;tr&gt;
+              			&lt;td&gt;
+                			&lt;strong&gt;Database Type:&lt;/strong&gt;&lt;br /&gt;
+                			&lt;select name=&quot;select_db_type&quot;&gt;
+                    			&lt;option value=&quot;mysql&quot;&gt;mysql&lt;/option&gt;
+                    			&lt;option value=&quot;postgresql&quot;&gt;postgresql&lt;/option&gt;
+                			&lt;/select&gt;
+                			&lt;br /&gt;Select the type of database you want to use.
+              			&lt;/td&gt;
+            		&lt;/tr&gt;
+            		&lt;tr&gt;
+              			&lt;td&gt;
+                			&lt;strong&gt;Table Prefix:&lt;/strong&gt;&lt;br /&gt;
+                  			&lt;input type=&quot;text&quot; name=&quot;table_prefix&quot; class=&quot;login_text&quot; 
+                  			value=&quot;&lt;?php print $form-&gt;value('table_prefix'); ?&gt;&quot; /&gt;
+                			&lt;br /&gt;The prefix to be used by the tables. Eg. ush_&lt;br /&gt;
+                			Leave it blank for nothing. 
+                			&lt;input type=&quot;hidden&quot; name=&quot;connection&quot; /&gt;
+                			&lt;input type=&quot;hidden&quot; name=&quot;permission&quot; /&gt;
+                			&lt;input type=&quot;hidden&quot; name=&quot;load_db_tpl&quot; /&gt;
+              			&lt;/td&gt;
+            		&lt;/tr&gt;            
+            		&lt;tr&gt;
+              			&lt;td&gt;&lt;input type=&quot;submit&quot; id=&quot;install&quot; name=&quot;install&quot; 
+              				value=&quot;Install&quot; class=&quot;login_btn&quot; /&gt;
+              			&lt;/td&gt;
+            		&lt;/tr&gt;
+            	&lt;/table&gt;
+        	&lt;/form&gt;
+        	&lt;?php } ?&gt;
   &lt;/div&gt;
 &lt;/div&gt;
 &lt;/body&gt;</diff>
      <filename>installer/index.php</filename>
    </modified>
    <modified>
      <diff>@@ -21,9 +21,13 @@ class Install
 
     private $database_file;
 
-
+	private $install_directory;
 	public function __construct()
 	{
+		global $form;
+	    
+	    $this-&gt;install_directory = dirname(dirname(__FILE__));
+	    
 		$this-&gt;index();
 	}
 
@@ -39,8 +43,6 @@ class Install
 	    $db_name, $table_prefix, $base_path )
     {
 	    global $form;
-	    $install_directory = dirname(dirname(__FILE__));
-
 	    //check for empty fields
 	    if(!$username || strlen($username = trim($username)) == 0 ){
 	        $form-&gt;set_error(&quot;username&quot;, &quot;Please enter the username of the
@@ -60,14 +62,14 @@ class Install
 	    // load database.template.php and work from it.
 		if(!file_exists('../application/config/database.template.php')){
 		    $form-&gt;set_error(&quot;load_db_tpl&quot;,&quot;Sorry, I need a database.template.php file to work
-            from. Please re-upload this file from your Ushahidi installation.&quot;);
+            from. Please re-upload this file from the Ushahidi files.&quot;);
 		}
 
 		if( !is_writable('../application/config')) {
 		    $form-&gt;set_error('permission',&quot;Sorry, can't write to the directory.
 		    You'll have to either change the permissions on your Ushahidi
 		    directory with this command &lt;blockquote&gt;chmod a+w
-		    $install_directory/application/config&lt;/blockquote&gt; or
+		    $this-&gt;install_directory/application/config&lt;/blockquote&gt; or
 		    create your database.php manually.&quot;);
 		}
 
@@ -347,6 +349,37 @@ class Install
 		
 		return $buffer;
 	}
+	
+	/**
+	 * Check if relevant directories are writable.
+	 */
+	public function _check_writable_dir() {
+		global $form;
+		
+		if( !is_writable('../')) {
+			$form-&gt;set_error('root_dir',&quot;Sorry, can't write to the directory. You'll have to &quot; .
+					&quot;change the permission on the directory &lt;code&gt;$this-&gt;install_directory/&lt;/code&gt;. Make sure its writable by the webserver. &lt;br /&gt;&quot;);
+		}
+		
+		if( !is_writable('../application/config')) {
+		    $form-&gt;set_error('config_dir',&quot;Sorry, can't write to the directory.
+		    You'll have to either change the permissions on your Ushahidi
+		    directory with this command &lt;code&gt;chmod a+w
+		    $this-&gt;install_directory/application/config&lt;/code&gt; or
+		    create your database.php manually.&quot;);
+		}
+		
+		/**
+	     * error exists, have user correct them.
+	     */
+	   if( $form-&gt;num_errors &gt; 0 ) {
+	        return 1;
+
+	   } else {
+	   		return 0;
+	   }
+			
+	}
 }
 
 $install = new Install();</diff>
      <filename>installer/install.php</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>369286263787b11fd28660a2c6ddd2d66eee6279</id>
    </parent>
  </parents>
  <author>
    <name>Henry Addo</name>
    <email>eyedol@addhen.(none)</email>
  </author>
  <url>http://github.com/ushahidi/Ushahidi_Web/commit/4b1e2d70811d24c492c9ac6ac2b0ddc26950b119</url>
  <id>4b1e2d70811d24c492c9ac6ac2b0ddc26950b119</id>
  <committed-date>2009-11-06T07:47:33-08:00</committed-date>
  <authored-date>2009-11-06T07:47:33-08:00</authored-date>
  <message>Check for writable directories first before showing up the install form</message>
  <tree>a3e359d68a8b7f5beb99ccedcf1dc5474bfe0fba</tree>
  <committer>
    <name>Henry Addo</name>
    <email>eyedol@addhen.(none)</email>
  </committer>
</commit>
