summaryrefslogtreecommitdiffstats
path: root/settings
diff options
context:
space:
mode:
authorJakob Sack <kde@jakobsack.de>2011-04-18 15:07:14 +0200
committerJakob Sack <kde@jakobsack.de>2011-04-18 15:07:14 +0200
commitb57823baa5d4f0d23be8d034550a0ffcb788a2ca (patch)
treebfae96c4e0e7b88b072379e3c2addf26a31561c0 /settings
parent46f1ea14c0af9f64722d44d9390d868c4e060c14 (diff)
downloadnextcloud-server-b57823baa5d4f0d23be8d034550a0ffcb788a2ca.tar.gz
nextcloud-server-b57823baa5d4f0d23be8d034550a0ffcb788a2ca.zip
Made the "change password" thingie in settings working
Diffstat (limited to 'settings')
-rw-r--r--settings/ajax/changepassword.php35
-rw-r--r--settings/css/settings.css2
-rw-r--r--settings/index.php9
-rw-r--r--settings/js/main.js21
-rw-r--r--settings/templates/index.php20
5 files changed, 77 insertions, 10 deletions
diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php
new file mode 100644
index 00000000000..1a9ad73610e
--- /dev/null
+++ b/settings/ajax/changepassword.php
@@ -0,0 +1,35 @@
+<?php
+
+// Init owncloud
+require_once('../../lib/base.php');
+
+// We send json data
+header( "Content-Type: application/jsonrequest" );
+
+// Check if we are a user
+if( !OC_USER::isLoggedIn()){
+ echo json_encode( array( "status" => "error", "data" => array( "message" => "Authentication error" )));
+ exit();
+}
+
+// Get data
+if( !isset( $_POST["password"] ) && !isset( $_POST["oldpassword"] )){
+ echo json_encode( array( "status" => "error", "data" => array( "message" => "You have to enter the old and the new password!" )));
+ exit();
+}
+
+// Check if the old password is correct
+if( !OC_USER::checkPassword( $_SESSION["user_id"], $_POST["oldpassword"] )){
+ echo json_encode( array( "status" => "error", "data" => array( "message" => "Your old password is wrong!" )));
+ exit();
+}
+
+// Change password
+if( OC_USER::setPassword( $_SESSION["user_id"], $_POST["password"] )){
+ echo json_encode( array( "status" => "success", "data" => array( "message" => "Password changed" )));
+}
+else{
+ echo json_encode( array( "status" => "error", "data" => array( "message" => "Unable to change password" )));
+}
+
+?>
diff --git a/settings/css/settings.css b/settings/css/settings.css
new file mode 100644
index 00000000000..23561ec367d
--- /dev/null
+++ b/settings/css/settings.css
@@ -0,0 +1,2 @@
+#passworderror{display:none;}
+#passwordchanged{display:none;} \ No newline at end of file
diff --git a/settings/index.php b/settings/index.php
index 9bf89145cc3..1a442eca811 100644
--- a/settings/index.php
+++ b/settings/index.php
@@ -7,12 +7,19 @@ if( !OC_USER::isLoggedIn()){
exit();
}
+// Highlight navigation entry
OC_APP::setActiveNavigationEntry( "settings" );
-$tmpl = new OC_TEMPLATE( "settings", "index", "admin");
+OC_UTIL::addScript( "settings", "main" );
+OC_UTIL::addStyle( "settings", "settings" );
+
+// calculate the disc space
$used=OC_FILESYSTEM::filesize('/');
$free=OC_FILESYSTEM::free_space();
$total=$free+$used;
$relative=round(($used/$total)*100);
+
+// Return template
+$tmpl = new OC_TEMPLATE( "settings", "index", "admin");
$tmpl->assign('usage',OC_HELPER::humanFileSize($used));
$tmpl->assign('total_space',OC_HELPER::humanFileSize($total));
$tmpl->assign('usage_relative',$relative);
diff --git a/settings/js/main.js b/settings/js/main.js
new file mode 100644
index 00000000000..e05fc68743c
--- /dev/null
+++ b/settings/js/main.js
@@ -0,0 +1,21 @@
+$(document).ready(function(){
+ $("#passwordbutton").click( function(){
+ // Serialize the data
+ var post = $( "#passwordform" ).serialize();
+ $('#passwordchanged').hide();
+ $('#passworderror').hide();
+ // Ajax foo
+ $.post( 'ajax/changepassword.php', post, function(data){
+ if( data.status == "success" ){
+ $('#pass1').val('');
+ $('#pass2').val('');
+ $('#passwordchanged').show();
+ }
+ else{
+ $('#passworderror').html( data.data.message );
+ $('#passworderror').show();
+ }
+ });
+ return false;
+ });
+} );
diff --git a/settings/templates/index.php b/settings/templates/index.php
index 33d27922d8f..2d5e9d9140f 100644
--- a/settings/templates/index.php
+++ b/settings/templates/index.php
@@ -6,23 +6,25 @@
</fieldset>
</form>
-<form id="user_settings">
+<form id="passwordform">
<fieldset>
- <legend>User settings</legend>
+ <legend>Change Password</legend>
+ <div id="passwordchanged">You're password got changed</div>
+ <div id="passworderror"></div>
<p>
- <label for="email">Email :</label>
- <input type="text" id="email" name="email" value="user@example.net" />
+ <label for="pass1">Old password:</label>
+ <input type="password" id="pass1" name="oldpassword" />
</p>
<p>
- <label for="pass1">New password :</label>
- <input type="password" id="pass1" name="pass1" />
+ <label for="pass2">New password :</label>
+ <input type="password" id="pass2" name="password" />
</p>
<p>
- <label for="pass2">Confirm new password :</label>
- <input type="password" id="pass2" name="pass2" />
+ <input type="checkbox" id="show" name="show" />
+ <label for="show">Show new password</label>
</p>
<p class="form_footer">
- <input class="prettybutton" type="submit" value="Save" />
+ <input id="passwordbutton" class="prettybutton" type="submit" value="Save" />
</p>
</fieldset>
</form>