diff options
author | Robin <robin@Amaya.(none)> | 2010-04-23 00:05:04 +0200 |
---|---|---|
committer | Robin <robin@Amaya.(none)> | 2010-04-23 00:05:04 +0200 |
commit | b5dae01a8a0e9c1e4f3d60da74eae74dd8a9e007 (patch) | |
tree | cdec7b5af6ae8d3e9b1c3b37edd339f179db8362 | |
parent | 07a8992a84c252ab10d6047e3de1ce16ac3c6b0b (diff) | |
download | nextcloud-server-b5dae01a8a0e9c1e4f3d60da74eae74dd8a9e007.tar.gz nextcloud-server-b5dae01a8a0e9c1e4f3d60da74eae74dd8a9e007.zip |
change the config system to support multi user
-rw-r--r-- | admin/index.php | 41 | ||||
-rw-r--r-- | admin/index.php~ | 1 | ||||
-rwxr-xr-x | inc/lib_base.php | 3 | ||||
-rwxr-xr-x | inc/lib_config.php | 332 | ||||
-rw-r--r-- | inc/lib_user.php | 67 | ||||
-rw-r--r-- | inc/templates/adminform.php | 106 | ||||
-rwxr-xr-x | inc/templates/configform.php | 103 | ||||
-rwxr-xr-x | inc/templates/header.php | 12 |
8 files changed, 458 insertions, 207 deletions
diff --git a/admin/index.php b/admin/index.php new file mode 100644 index 00000000000..2331c22f062 --- /dev/null +++ b/admin/index.php @@ -0,0 +1,41 @@ +<?php + +/** +* ownCloud +* +* @author Frank Karlitschek +* @copyright 2010 Frank Karlitschek karlitschek@kde.org +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Lesser General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +$CONFIG_ERROR=''; + +require_once('../inc/lib_base.php'); + + +OC_UTIL::showheader(); + +$FIRSTRUN=false; + +echo('<div class="center">'); +OC_CONFIG::showadminform(); +echo('</div>'); + + +OC_UTIL::showfooter(); + +?> + diff --git a/admin/index.php~ b/admin/index.php~ new file mode 100644 index 00000000000..8d1c8b69c3f --- /dev/null +++ b/admin/index.php~ @@ -0,0 +1 @@ + diff --git a/inc/lib_base.php b/inc/lib_base.php index 4f58f946c92..5a70db535db 100755 --- a/inc/lib_base.php +++ b/inc/lib_base.php @@ -173,8 +173,9 @@ class OC_UTIL { } if($_SERVER['SCRIPT_NAME']==$WEBROOT.'/log/index.php') echo('<td class="navigationitemselected"><a href="'.$WEBROOT.'/log">Log</a></td>'); else echo('<td class="navigationitem"><a href="'.$WEBROOT.'/log">Log</a></td>'); + if($_SERVER['SCRIPT_NAME']==$WEBROOT.'/settings/index.php') echo('<td class="navigationitemselected"><a href="'.$WEBROOT.'/settings">Settings</a></td>'); else echo('<td class="navigationitem"><a href="'.$WEBROOT.'/settings">Settings</a></td>'); if(OC_USER::ingroup($_SESSION['username'],'admin')){ - if($_SERVER['SCRIPT_NAME']==$WEBROOT.'/settings/index.php') echo('<td class="navigationitemselected"><a href="'.$WEBROOT.'/settings">Settings</a></td>'); else echo('<td class="navigationitem"><a href="'.$WEBROOT.'/settings">Settings</a></td>'); + if($_SERVER['SCRIPT_NAME']==$WEBROOT.'/admin/index.php') echo('<td class="navigationitemselected"><a href="'.$WEBROOT.'/admin">Admin Panel</a></td>'); else echo('<td class="navigationitem"><a href="'.$WEBROOT.'/admin">Admin Panel</a></td>'); } echo('<td class="navigationitem"><a href="?logoutbutton=1">Logout</a></td>'); echo('</tr></table>'); diff --git a/inc/lib_config.php b/inc/lib_config.php index 5fa6b5f7c64..98099cad72a 100755 --- a/inc/lib_config.php +++ b/inc/lib_config.php @@ -13,154 +13,230 @@ class OC_CONFIG{ global $CONFIG_DBNAME; require('templates/configform.php'); } - - public static function createuserlisener(){ - if(isset($_POST['new_username']) and isset($_POST['new_password'])){ - if(OC_USER::createuser($_POST['new_username'],$_POST['new_password'])){ - return 'user successfully created'; - }else{ - return 'error while trying to create user'; - } - }else{ - return false; - } - } - + /** - * lisen for configuration changes and write it to the file + * show the configform * */ - public static function writeconfiglisener(){ - global $DOCUMENTROOT; - global $SERVERROOT; - global $WEBROOT; - global $CONFIG_DBHOST; - global $CONFIG_DBNAME; - global $CONFIG_DBUSER; - global $CONFIG_DBPASSWORD; - global $CONFIG_DBTYPE; + public static function showadminform(){ global $CONFIG_ADMINLOGIN; global $CONFIG_ADMINPASSWORD; - if(isset($_POST['set_config'])){ + global $CONFIG_DATADIRECTORY; + global $CONFIG_HTTPFORCESSL; + global $CONFIG_DATEFORMAT; + global $CONFIG_DBNAME; + global $CONFIG_INSTALLED; + if(OC_USER::ingroup($_SESSION['username'],'admin') or $CONFIG_INSTALLED==false){ + require('templates/adminform.php'); + } + } - //checkdata - $error=''; - $FIRSTRUN=empty($CONFIG_ADMINLOGIN); - if(!$FIRSTRUN){ - if($_POST['currentpassword']!=$CONFIG_ADMINPASSWORD){ - $error.='wrong password<br />'; + public static function createuserlisener(){ + if(OC_USER::ingroup($_SESSION['username'],'admin')){ + if(isset($_POST['new_username']) and isset($_POST['new_password'])){ + if(OC_USER::createuser($_POST['new_username'],$_POST['new_password'])){ + return 'user successfully created'; + }else{ + return 'error while trying to create user'; + } + }else{ + return false; } + }else{ + return false; } - - if(!isset($_POST['adminlogin']) or empty($_POST['adminlogin'])) $error.='admin login not set<br />'; - if((!isset($_POST['adminpassword']) or empty($_POST['adminpassword'])) and $FIRSTRUN) $error.='admin password not set<br />'; - if((!isset($_POST['adminpassword2']) or empty($_POST['adminpassword2'])) and $FIRSTRUN) $error.='retype admin password not set<br />'; - if(!isset($_POST['datadirectory']) or empty($_POST['datadirectory'])) $error.='data directory not set<br />'; - if(!isset($_POST['dateformat']) or empty($_POST['dateformat'])) $error.='dateformat not set<br />'; - if(!isset($_POST['dbname']) or empty($_POST['dbname'])) $error.='databasename not set<br />'; - if($_POST['adminpassword']<>$_POST['adminpassword2'] ) $error.='admin passwords are not the same<br />'; - $dbtype=$_POST['dbtype']; - if($dbtype=='mysql'){ - if(!isset($_POST['dbhost']) or empty($_POST['dbhost'])) $error.='database host not set<br />'; - if(!isset($_POST['dbuser']) or empty($_POST['dbuser'])) $error.='database user not set<br />'; - if($_POST['dbpassword']<>$_POST['dbpassword2'] ) $error.='database passwords are not the same<br />'; - - } - if(!$FIRSTRUN){ - if(!isset($_POST['adminpassword']) or empty($_POST['adminpassword'])){ - $_POST['adminpassword']=$CONFIG_ADMINPASSWORD; - } - if(!isset($_POST['dbpassword']) or empty($_POST['dbpassword'])){ - $_POST['dbpassword']=$CONFIG_DBPASSWORD; + } + + public static function creategrouplisener(){ + if(OC_USER::isLoggedIn()){ + if(isset($_POST['creategroup']) and $_POST['creategroup']==1){ + if(OC_USER::creategroup($_POST['groupname'])){ + if(OC_USER::addtogroup($_SESSION['username'],$_POST['groupname'])){ + return 'group successfully created'; + }else{ + return 'error while trying to add user to the new created group'; + } + }else{ + return 'error while trying to create group'; + } + }else{ + return false; } + }else{ + return false; } - if(!is_dir($_POST['datadirectory'])){ - try{ - mkdir($_POST['datadirectory']); - }catch(Exception $e){ - $error.='error while trying to create data directory<br/>'; + } + + + /** + * lisen for configuration changes + * + */ + public static function configlisener(){ + if(OC_USER::isLoggedIn()){ + if(isset($_POST['config']) and $_POST['config']==1){ + $error=''; + if(!OC_USER::checkpassword($_SESSION['username'],$_POST['currentpassword'])){ + $error.='wrong password<br />'; + }else{ + if(isset($_POST['changepass']) and $_POST['changepass']==1){ + if(!isset($_POST['password']) or empty($_POST['password'])) $error.='password not set<br />'; + if(!isset($_POST['password2']) or empty($_POST['password2'])) $error.='retype password not set<br />'; + if($_POST['password']<>$_POST['password2'] ) $error.='passwords are not the same<br />'; + if(empty($error)){ + if(!OC_USER::setpassword($_SESSION['username'],$_POST['password'])){ + $error.='error while trying to set password<br />'; + } + } + } + } + return $error; + }else{ + return false; } + }else{ + return false; } - if(empty($error)) { - //create/fill database - $CONFIG_DBTYPE=$dbtype; - $CONFIG_DBNAME=$_POST['dbname']; - if($dbtype=='mysql'){ - $CONFIG_DBHOST=$_POST['dbhost']; - $CONFIG_DBUSER=$_POST['dbuser']; - $CONFIG_DBPASSWORD=$_POST['dbpassword']; - } - try{ - if(isset($_POST['createdatabase']) and $CONFIG_DBTYPE=='mysql'){ - self::createdatabase($_POST['dbadminuser'],$_POST['dbadminpwd']); + } + + + /** + * lisen for admin configuration changes and write it to the file + *4bd0be1185e76 + */ + public static function writeadminlisener(){ + global $CONFIG_INSTALLED; + if(OC_USER::ingroup($_SESSION['username'],'admin') or $CONFIG_INSTALLED==false){ + global $DOCUMENTROOT; + global $SERVERROOT; + global $WEBROOT; + global $CONFIG_DBHOST; + global $CONFIG_DBNAME; + global $CONFIG_DBUSER; + global $CONFIG_DBPASSWORD; + global $CONFIG_DBTYPE; + global $CONFIG_ADMINLOGIN; + global $CONFIG_ADMINPASSWORD; + if(isset($_POST['set_config'])){ + + //checkdata + $error=''; + $FIRSTRUN=empty($CONFIG_ADMINLOGIN); + if(!$FIRSTRUN){ + if($_POST['currentpassword']!=$CONFIG_ADMINPASSWORD){ + $error.='wrong password<br />'; + } } - }catch(Exception $e){ - $error.='error while trying to create the database<br/>'; - } - if($CONFIG_DBTYPE=='sqlite'){ - $f=@fopen($SERVERROOT.'/'.$CONFIG_DBNAME,'a+'); - if(!$f){ - $error.='path of sqlite database not writable by server<br/>'; + + if(!isset($_POST['adminlogin']) or empty($_POST['adminlogin'])) $error.='admin login not set<br />'; + if((!isset($_POST['adminpassword']) or empty($_POST['adminpassword'])) and $FIRSTRUN) $error.='admin password not set<br />'; + if((!isset($_POST['adminpassword2']) or empty($_POST['adminpassword2'])) and $FIRSTRUN) $error.='retype admin password not set<br />'; + if(!isset($_POST['datadirectory']) or empty($_POST['datadirectory'])) $error.='data directory not set<br />'; + if(!isset($_POST['dateformat']) or empty($_POST['dateformat'])) $error.='dateformat not set<br />'; + if(!isset($_POST['dbname']) or empty($_POST['dbname'])) $error.='databasename not set<br />'; + if($_POST['adminpassword']<>$_POST['adminpassword2'] ) $error.='admin passwords are not the same<br />'; + $dbtype=$_POST['dbtype']; + if($dbtype=='mysql'){ + if(!isset($_POST['dbhost']) or empty($_POST['dbhost'])) $error.='database host not set<br />'; + if(!isset($_POST['dbuser']) or empty($_POST['dbuser'])) $error.='database user not set<br />'; + if($_POST['dbpassword']<>$_POST['dbpassword2'] ) $error.='database passwords are not the same<br />'; + } - } - try{ - if(isset($_POST['filldb'])){ - self::filldatabase(); + if(!$FIRSTRUN){ + if(!isset($_POST['adminpassword']) or empty($_POST['adminpassword'])){ + $_POST['adminpassword']=$CONFIG_ADMINPASSWORD; + } + if(!isset($_POST['dbpassword']) or empty($_POST['dbpassword'])){ + $_POST['dbpassword']=$CONFIG_DBPASSWORD; + } } - }catch(Exception $e){ - $error.='error while trying to fill the database<br/>'; - } - - if(!OC_USER::createuser($_POST['adminlogin'],$_POST['adminpassword']) && !OC_USER::login($_POST['adminlogin'],$_POST['adminpassword'])){ - $error.='error while trying to create the admin user<br/>'; - } - - if(OC_USER::getgroupid('admin')==0){ - if(!OC_USER::creategroup('admin')){ - $error.='error while trying to create the admin group<br/>'; + if(!is_dir($_POST['datadirectory'])){ + try{ + mkdir($_POST['datadirectory']); + }catch(Exception $e){ + $error.='error while trying to create data directory<br/>'; + } } - } - - if(!OC_USER::addtogroup($_POST['adminlogin'],'admin')){ - $error.='error while trying to add the admin user to the admin group<br/>'; - } - - //storedata - $config='<?php '."\n"; -// $config.='$CONFIG_ADMINLOGIN=\''.$_POST['adminlogin']."';\n"; -// $config.='$CONFIG_ADMINPASSWORD=\''.$_POST['adminpassword']."';\n"; - $config.='$CONFIG_INSTALLED=true;'."\n"; - $config.='$CONFIG_DATADIRECTORY=\''.$_POST['datadirectory']."';\n"; - if(isset($_POST['forcessl'])) $config.='$CONFIG_HTTPFORCESSL=true'.";\n"; else $config.='$CONFIG_HTTPFORCESSL=false'.";\n"; - $config.='$CONFIG_DATEFORMAT=\''.$_POST['dateformat']."';\n"; - $config.='$CONFIG_DBTYPE=\''.$dbtype."';\n"; - $config.='$CONFIG_DBNAME=\''.$_POST['dbname']."';\n"; - if($dbtype=='mysql'){ - $config.='$CONFIG_DBHOST=\''.$_POST['dbhost']."';\n"; - $config.='$CONFIG_DBUSER=\''.$_POST['dbuser']."';\n"; - $config.='$CONFIG_DBPASSWORD=\''.$_POST['dbpassword']."';\n"; - } - $config.='?> '; + if(empty($error)) { + //create/fill database + $CONFIG_DBTYPE=$dbtype; + $CONFIG_DBNAME=$_POST['dbname']; + if($dbtype=='mysql'){ + $CONFIG_DBHOST=$_POST['dbhost']; + $CONFIG_DBUSER=$_POST['dbuser']; + $CONFIG_DBPASSWORD=$_POST['dbpassword']; + } + try{ + if(isset($_POST['createdatabase']) and $CONFIG_DBTYPE=='mysql'){ + self::createdatabase($_POST['dbadminuser'],$_POST['dbadminpwd']); + } + }catch(Exception $e){ + $error.='error while trying to create the database<br/>'; + } + if($CONFIG_DBTYPE=='sqlite'){ + $f=@fopen($SERVERROOT.'/'.$CONFIG_DBNAME,'a+'); + if(!$f){ + $error.='path of sqlite database not writable by server<br/>'; + } + } + try{ + if(isset($_POST['filldb'])){ + self::filldatabase(); + } + }catch(Exception $e){ + $error.='error while trying to fill the database<br/>'; + } + + if(!OC_USER::createuser($_POST['adminlogin'],$_POST['adminpassword']) && !OC_USER::login($_POST['adminlogin'],$_POST['adminpassword'])){ + $error.='error while trying to create the admin user<br/>'; + } + + if(OC_USER::getgroupid('admin')==0){ + if(!OC_USER::creategroup('admin')){ + $error.='error while trying to create the admin group<br/>'; + } + } + + if(!OC_USER::addtogroup($_POST['adminlogin'],'admin')){ + $error.='error while trying to add the admin user to the admin group<br/>'; + } + + //storedata + $config='<?php '."\n"; + // $config.='$CONFIG_ADMINLOGIN=\''.$_POST['adminlogin']."';\n"; + // $config.='$CONFIG_ADMINPASSWORD=\''.$_POST['adminpassword']."';\n"; + $config.='$CONFIG_INSTALLED=true;'."\n"; + $config.='$CONFIG_DATADIRECTORY=\''.$_POST['datadirectory']."';\n"; + if(isset($_POST['forcessl'])) $config.='$CONFIG_HTTPFORCESSL=true'.";\n"; else $config.='$CONFIG_HTTPFORCESSL=false'.";\n"; + $config.='$CONFIG_DATEFORMAT=\''.$_POST['dateformat']."';\n"; + $config.='$CONFIG_DBTYPE=\''.$dbtype."';\n"; + $config.='$CONFIG_DBNAME=\''.$_POST['dbname']."';\n"; + if($dbtype=='mysql'){ + $config.='$CONFIG_DBHOST=\''.$_POST['dbhost']."';\n"; + $config.='$CONFIG_DBUSER=\''.$_POST['dbuser']."';\n"; + $config.='$CONFIG_DBPASSWORD=\''.$_POST['dbpassword']."';\n"; + } + $config.='?> '; + + $filename=$SERVERROOT.'/config/config.php'; + if(empty($error)){ + header("Location: ".$WEBROOT."/"); + try{ + file_put_contents($filename,$config); + }catch(Exception $e){ + $error.='error while trying to save the configuration file<br/>'; + return $error; + } + }else{ + return $error; + } - $filename=$SERVERROOT.'/config/config.php'; - if(empty($error)){ - header("Location: ".$WEBROOT."/"); - try{ - file_put_contents($filename,$config); - }catch(Exception $e){ - $error.='error while trying to save the configuration file<br/>'; - return $error; } - }else{ - return $error; - } + return($error); + } } - return($error); - - } - - } + } /** * Fills the database with the initial tables diff --git a/inc/lib_user.php b/inc/lib_user.php index e7855b5b7b3..30dbdcd2fec 100644 --- a/inc/lib_user.php +++ b/inc/lib_user.php @@ -153,6 +153,21 @@ class OC_USER { } /** + * get the name of a group + * + */ + public static function getgroupname($groupid){ + $groupid=(integer)$groupid; + $query="SELECT group_name FROM `groups` WHERE `group_id` = '$groupid' LIMIT 1"; + $result=OC_DB::select($query); + if(isset($result[0]) && isset($result[0]['group_name'])){ + return $result[0]['group_name']; + }else{ + return 0; + } + } + + /** * check if a user belongs to a group * */ @@ -195,6 +210,58 @@ class OC_USER { public static function generatepassword(){ return uniqid(); } + + /** + * get all groups the user belongs to + * + */ + public static function getusergroups($username){ + $userid=OC_USER::getuserid($username); + $query="SELECT group_id FROM `user_group` WHERE `user_id` = '$userid'"; + $result=OC_DB::select($query); + $groups=array(); + if(is_array($result)){ + foreach($result as $group){ + $groupid=$group['group_id']; + $groups[]=OC_USER::getgroupname($groupid); + } + } + return $groups; + } + + /** + * set the password of a user + * + */ + public static function setpassword($username,$password){ + $password=sha1($password); + $userid=OC_USER::getuserid($username); + $query="UPDATE `users` SET `user_password` = '$password' WHERE `user_id` =$userid LIMIT 1 ;"; + $result=OC_DB::query($query); + if($result){ + return true; + }else{ + return false; + } + } + + /** + * check the password of a user + * + */ + public static function checkpassword($username,$password){ + $password=sha1($password); + $usernameclean=strtolower($username); + $username=mysql_escape_string($username); + $usernameclean=mysql_escape_string($usernameclean); + $query="SELECT user_id FROM `users` WHERE `user_name_clean` = '$usernameclean' AND `user_password` = '$password' LIMIT 1"; + $result=OC_DB::select($query); + if(isset($result[0]) && isset($result[0]['user_id']) && $result[0]['user_id']>0){ + return true; + }else{ + return false; + } + } } ?>
\ No newline at end of file diff --git a/inc/templates/adminform.php b/inc/templates/adminform.php new file mode 100644 index 00000000000..38d2b14a57e --- /dev/null +++ b/inc/templates/adminform.php @@ -0,0 +1,106 @@ +<?php +global $FIRSTRUN; +global $CONFIG_ERROR; +if(!isset($fillDB)) $fillDB=true; +if(!isset($CONFIG_DBHOST)) $CONFIG_DBHOST='localhost'; +if(!isset($CONFIG_DBUSER)) $CONFIG_DBUSER='owncloud'; +$newuserpassword=OC_USER::generatepassword(); +?> +<script type="text/javascript"> +function showDBAdmin(){ + var show=document.getElementById('dbcreate').checked; + document.getElementById('dbAdminUser').style.display=(show)?'table-row':'none'; + document.getElementById('dbAdminPwd').style.display=(show)?'table-row':'none'; +} + +function dbtypechange(){ + var dropdown=action=document.getElementById('dbtype'); + var type=dropdown.options[dropdown.selectedIndex].value; + var inputs=Array('dbhost','dbuser','dbpass','dbpass_retype','dbcreaterow','dbAdminPwd','dbAdminUser'); + var id,element; + if(type=='sqlite'){ + for(i in inputs){ + id=inputs[i]; + element=document.getElementById(id); + if(element){ + element.style.display='none'; + } + } + }else if(type=='mysql'){ + for(i in inputs){ + id=inputs[i]; + element=document.getElementById(id); + if(element){ + element.style.display='table-row'; + } + } + showDBAdmin() + } +} +</script> +<form method="post" enctype="multipart/form-data"> +<table cellpadding="5" cellspacing="5" border="0" class="loginform"> +<?php + if(!empty($CONFIG_ERROR) and !$FIRSTRUN){ + echo "<tr><td colspan='3' class='error'>$CONFIG_ERROR</td></tr>"; + } + if(!$FIRSTRUN){?> + <tr><td>current password</td><td><input type="password" name="currentpassword" size="30" class="formstyle"></input></td></tr> + <?php + } +if($FIRSTRUN){?> +<tr><td>admin login:</td><td><input type="text" name="adminlogin" size="30" class="formstyle" value="<?php echo($CONFIG_ADMINLOGIN);?>"></input></td></tr> +<tr><td>admin password:</td><td><input type="password" name="adminpassword" size="30" class="formstyle"></input></td><td>(leave empty to keep current password)</td></tr> +<tr><td>retype admin password:</td><td><input type="password" name="adminpassword2" size="30" class="formstyle"></input></td></tr> +<?php +} +?> +<tr><td>data directory:</td><td><input type="text" name="datadirectory" size="30" class="formstyle" value="<?php echo($CONFIG_DATADIRECTORY);?>"></input></td></tr> +<tr><td>force ssl:</td><td><input type="checkbox" name="forcessl" size="30" class="formstyle" value='<?php echo($CONFIG_HTTPFORCESSL);?>'></input></td></tr> +<tr><td>date format:</td><td><input type="text" name="dateformat" size="30" class="formstyle" value='<?php echo($CONFIG_DATEFORMAT);?>'></input></td></tr> +<tr><td>database type:</td><td> +<select id='dbtype' name="dbtype" onchange='dbtypechange()'> +<?php +global $CONFIG_DBTYPE; +if($CONFIG_DBTYPE=='sqlite'){ +?> +<option value="sqlite">SQLite</option> +<option value="mysql">MySQL</option> +<?php +}else{ +?> +<option value="mysql">MySQL</option> +<option value="sqlite">SQLite</option> +<?php +} +?> +</select> +</td></tr> +<tr id='dbhost'><td>database host:</td><td><input type="text" name="dbhost" size="30" class="formstyle" value='<?php echo($CONFIG_DBHOST);?>'></input></td></tr> +<tr><td>database name:</td><td><input type="text" name="dbname" size="30" class="formstyle" value='<?php echo($CONFIG_DBNAME);?>'></input></td></tr> +<tr id='dbuser'><td>database user:</td><td><input type="text" name="dbuser" size="30" class="formstyle" value='<?php echo($CONFIG_DBUSER);?>'></input></td></tr> +<tr id='dbpass'><td>database password:</td><td><input type="password" name="dbpassword" size="30" class="formstyle" value=''></input></td><td>(leave empty to keep current password)</td></tr> +<tr id='dbpass_retype'><td>retype database password:</td><td><input type="password" name="dbpassword2" size="30" class="formstyle" value=''></input></td></tr> +<tr id='dbcreaterow'><td>create database and user:</td><td><input id='dbcreate' type="checkbox" name="createdatabase" size="30" class="formstyle" value='1' <?php if($FIRSTRUN) echo 'checked'; ?> onchange='showDBAdmin()'></input></td></tr> +<tr id='dbAdminUser'><td>database administrative user:</td><td><input type="text" name="dbadminuser" size="30" class="formstyle" value='root'></input></td></tr> +<tr id='dbAdminPwd'><td>database administrative password:</td><td><input type="password" name="dbadminpwd" size="30" class="formstyle" value=''></input></td></tr> +<tr><td>automaticly fill initial database:</td><td><input type="checkbox" name="filldb" size="30" class="formstyle" value='1' <?php if($FIRSTRUN) echo 'checked'; ?>></input></td></tr> +<tr><td></td><td><input type="submit" name="set_config" alt="save" value="save" class="formstyle" /></td></tr> +</table></form><br/> +<?php +if(!$FIRSTRUN){?> +<br/> +<form method="post" enctype="multipart/form-data"> +<table cellpadding="5" cellspacing="5" border="0" class="loginform"> +<tr><td colspan='2'>Create new user:</td></tr> +<tr><td>user name</td><td><input type='text' name='new_username' class="formstyle"></input></td></tr> +<tr><td>password</td><td><input type='text' name='new_password' class="formstyle" autocomplete="off" value='<?php echo($newuserpassword);?>'></input></td></tr> +<tr><td></td><td><input type='submit' value='create' class="formstyle"></input></td></tr> +</table> +</form> +<?php +} +?> +<script type="text/javascript"> + dbtypechange() +</script>
\ No newline at end of file diff --git a/inc/templates/configform.php b/inc/templates/configform.php index ba946fc67b0..037249a84a2 100755 --- a/inc/templates/configform.php +++ b/inc/templates/configform.php @@ -7,92 +7,45 @@ if(!isset($CONFIG_DBUSER)) $CONFIG_DBUSER='owncloud'; $newuserpassword=OC_USER::generatepassword(); ?> <script type="text/javascript"> -function showDBAdmin(){ - var show=document.getElementById('dbcreate').checked; - document.getElementById('dbAdminUser').style.display=(show)?'table-row':'none'; - document.getElementById('dbAdminPwd').style.display=(show)?'table-row':'none'; -} - -function dbtypechange(){ - var dropdown=action=document.getElementById('dbtype'); - var type=dropdown.options[dropdown.selectedIndex].value; - var inputs=Array('dbhost','dbuser','dbpass','dbpass_retype','dbcreaterow','dbAdminPwd','dbAdminUser'); - var id,element; - if(type=='sqlite'){ - for(i in inputs){ - id=inputs[i]; - element=document.getElementById(id); - if(element){ - element.style.display='none'; - } - } - }else if(type=='mysql'){ - for(i in inputs){ - id=inputs[i]; - element=document.getElementById(id); - if(element){ - element.style.display='table-row'; - } - } - showDBAdmin() - } +changepassset=function(){ + var change=document.getElementById('changepass').checked; + if(!change){ + document.getElementById('new_password').style.display='none'; + document.getElementById('new_password_retype').style.display='none'; + }else{ + document.getElementById('new_password').style.display='table-row'; + document.getElementById('new_password_retype').style.display='table-row'; + } } </script> <form method="post" enctype="multipart/form-data"> +<input type='hidden' name='config' value='1'> <table cellpadding="5" cellspacing="5" border="0" class="loginform"> <?php if(!empty($CONFIG_ERROR) and !$FIRSTRUN){ echo "<tr><td colspan='3' class='error'>$CONFIG_ERROR</td></tr>"; } - if(!$FIRSTRUN){?> - <tr><td>current password</td><td><input type="password" name="currentpassword" size="30" class="formstyle"></input></td></tr> - <?php - } -?> -<tr><td>admin login:</td><td><input type="text" name="adminlogin" size="30" class="formstyle" value="<?php echo($CONFIG_ADMINLOGIN);?>"></input></td></tr> -<tr><td>admin password:</td><td><input type="password" name="adminpassword" size="30" class="formstyle"></input></td><td>(leave empty to keep current password)</td></tr> -<tr><td>retype admin password:</td><td><input type="password" name="adminpassword2" size="30" class="formstyle"></input></td></tr> -<tr><td>data directory:</td><td><input type="text" name="datadirectory" size="30" class="formstyle" value="<?php echo($CONFIG_DATADIRECTORY);?>"></input></td></tr> -<tr><td>force ssl:</td><td><input type="checkbox" name="forcessl" size="30" class="formstyle" value='<?php echo($CONFIG_HTTPFORCESSL);?>'></input></td></tr> -<tr><td>date format:</td><td><input type="text" name="dateformat" size="30" class="formstyle" value='<?php echo($CONFIG_DATEFORMAT);?>'></input></td></tr> -<tr><td>database type:</td><td> -<select id='dbtype' name="dbtype" onchange='dbtypechange()'> -<?php -global $CONFIG_DBTYPE; -if($CONFIG_DBTYPE=='sqlite'){ -?> -<option value="sqlite">SQLite</option> -<option value="mysql">MySQL</option> -<?php -}else{ ?> -<option value="mysql">MySQL</option> -<option value="sqlite">SQLite</option> +<tr><td>enter password</td><td><input type="password" name="currentpassword" size="30" class="formstyle"></input></td></tr> +<tr><td>change password:</td><td><input onchange='changepassset()' id='changepass' type="checkbox" name="changepass" size="30" class="formstyle" value='1'></input></td></tr> +<tr style='display:none' id='new_password'><td>new password:</td><td><input type="password" name="password" size="30" class="formstyle"></input></td></tr> +<tr style='display:none' id='new_password_retype'><td>retype admin password:</td><td><input type="password" name="password2" size="30" class="formstyle"></input></td></tr> +</table> +</form> +Groups: +<form method="post" enctype="multipart/form-data"> +<input type='hidden' name='creategroup' value='1'> +<table cellpadding="5" cellspacing="5" border="0" class="loginform"> +<tr><td colspan='2' class='center'>Current groups</td></tr> <?php +$groups=OC_USER::getusergroups($_SESSION['username']); +foreach($groups as $group){ + ?> + <tr><td><?php echo $group;?></td></tr> + <?php } ?> -</select> -</td></tr> -<tr id='dbhost'><td>database host:</td><td><input type="text" name="dbhost" size="30" class="formstyle" value='<?php echo($CONFIG_DBHOST);?>'></input></td></tr> -<tr><td>database name:</td><td><input type="text" name="dbname" size="30" class="formstyle" value='<?php echo($CONFIG_DBNAME);?>'></input></td></tr> -<tr id='dbuser'><td>database user:</td><td><input type="text" name="dbuser" size="30" class="formstyle" value='<?php echo($CONFIG_DBUSER);?>'></input></td></tr> -<tr id='dbpass'><td>database password:</td><td><input type="password" name="dbpassword" size="30" class="formstyle" value=''></input></td><td>(leave empty to keep current password)</td></tr> -<tr id='dbpass_retype'><td>retype database password:</td><td><input type="password" name="dbpassword2" size="30" class="formstyle" value=''></input></td></tr> -<tr id='dbcreaterow'><td>create database and user:</td><td><input id='dbcreate' type="checkbox" name="createdatabase" size="30" class="formstyle" value='1' <?php if($FIRSTRUN) echo 'checked'; ?> onchange='showDBAdmin()'></input></td></tr> -<tr id='dbAdminUser'><td>database administrative user:</td><td><input type="text" name="dbadminuser" size="30" class="formstyle" value='root'></input></td></tr> -<tr id='dbAdminPwd'><td>database administrative password:</td><td><input type="password" name="dbadminpwd" size="30" class="formstyle" value=''></input></td></tr> -<tr><td>automaticly fill initial database:</td><td><input type="checkbox" name="filldb" size="30" class="formstyle" value='1' <?php if($FIRSTRUN) echo 'checked'; ?>></input></td></tr> -<tr><td></td><td><input type="submit" name="set_config" alt="save" value="save" class="formstyle" /></td></tr> -</table></form><br/> -<br/> -<form method="post" enctype="multipart/form-data"> -<table cellpadding="5" cellspacing="5" border="0" class="loginform"> -<tr><td colspan='2'>Create new user:</td></tr> -<tr><td>user name</td><td><input type='text' name='new_username' class="formstyle"></input></td></tr> -<tr><td>password</td><td><input type='text' name='new_password' class="formstyle" autocomplete="off" value='<?php echo($newuserpassword);?>'></input></td></tr> -<tr><td></td><td><input type='submit' value='create' class="formstyle"></input></td></tr> +<tr><td colspan='2' class='center'>Create new group</td></tr> +<tr><td><input type='text' name='groupname' class="formstyle"></input></td><td><input type='submit' value='create' class="formstyle"></input></td></tr> </table> </form> -<script type="text/javascript"> - dbtypechange() -</script>
\ No newline at end of file diff --git a/inc/templates/header.php b/inc/templates/header.php index 46c64bfd645..51e729cb8e1 100755 --- a/inc/templates/header.php +++ b/inc/templates/header.php @@ -32,9 +32,15 @@ echo('<h1><a id="owncloud-logo" href="'.$WEBROOT.'"><span>ownCloud</span></a></h // check if already configured. otherwise start configuration wizard - $error=OC_CONFIG::writeconfiglisener(); + $error=OC_CONFIG::writeadminlisener(); + if($e=OC_CONFIG::configlisener()){ + $error.=$e; + } if($e=OC_CONFIG::createuserlisener()){ - $error=$e; + $error.=$e; + } + if($e=OC_CONFIG::creategrouplisener()){ + $error.=$e; } $CONFIG_ERROR=$error; global $CONFIG_INSTALLED; @@ -44,7 +50,7 @@ echo('<h1><a id="owncloud-logo" href="'.$WEBROOT.'"><span>ownCloud</span></a></h echo('<div class="center">'); echo('<p class="errortext">'.$error.'</p>'); echo('<p class="highlighttext">First Run Wizard</p>'); - OC_CONFIG::showconfigform(); + OC_CONFIG::showadminform(); echo('</div>'); OC_UTIL::showfooter(); exit(); |