[IMP] Improved methods for backup, restore, change password.

bzr revid: noz@tinyerp.com-20110704134823-bhn2qg4nwgx819ii
This commit is contained in:
noz (OpenERP) 2011-07-04 19:18:23 +05:30
parent 9d77bed1ca
commit 6c971a0fda
3 changed files with 82 additions and 16 deletions

View File

@ -127,7 +127,31 @@ class Session(openerpweb.Controller):
if flag == 'drop':
db = kw.get('db')
password = kw.get('password')
return req.session.proxy("db").drop(password, db)
elif flag == 'backup':
db = kw.get('db')
password = kw.get('password')
# todo: content type
res = rpc.session.proxy("db").dump(password, db)
if res:
return base64.decodestring(res)
elif flag == 'restore':
filename = kw.get('filename')
db = kw.get('db')
password = kw.get('password')
data = base64.encodestring(filename.file.read())
return rpc.session.proxy("db").restore(password, db, data)
elif flag == 'change_password':
old_password = kw.get('old_password')
new_password = kw.get('new_password')
confirm_password = kw.get('confirm_password')
return rpc.session.proxy("db").change_admin_password(old_password, new_password)
@openerpweb.jsonrequest
def modules(self, req):

View File

@ -935,13 +935,14 @@ openerp.base.Database = openerp.base.Controller.extend({
self.db_string = "CREATE DATABASE";
self.$option_id.html(QWeb.render("CreateDB", self));
});
self.$element.find('#db-drop').click(function() {
self.db_string = "DROP DATABASE";
self.$option_id.html(QWeb.render("DropDB", self));
self.$option_id.find('#drop_db_btn').click(function() {
var db = self.$option_id.find("select[name=drop_db]").val();
var password = self.$option_id.find("input[name=drop_password]").val();
var password = self.$option_id.find("input[name=drop_pwd]").val();
if (confirm("Do you really want to delete the database: " + db + " ?")) {
self.rpc("/base/session/db_operation", {'flag': 'drop', 'db': db, 'password': password},
@ -953,20 +954,61 @@ openerp.base.Database = openerp.base.Controller.extend({
});
}
});
});
self.$element.find('#db-backup').click(function() {
self.db_string = "BACKUP DATABASE";
self.$option_id.html(QWeb.render("BackupDB", self));
self.$option_id.find('#backup_db_btn').click(function() {
var db = self.$option_id.find("select[name=backup_db]").val();
var password = self.$option_id.find("input[name=backup_pwd]").val();
self.rpc("/base/session/db_operation", {'flag': 'backup', 'db': db, 'password': password},
function(result) {
if (!result.error) {
self.notification.notify("Backup has been created for the database: '" + db + "'");
}
});
});
});
self.$element.find('#db-restore').click(function() {
self.db_string = "RESTORE DATABASE";
self.$option_id.html(QWeb.render("RestoreDB", self));
self.$option_id.find('#restore_db_btn').click(function() {
var db = self.$option_id.find("input[name=restore_db]").val();
var password = self.$option_id.find("input[name=restore_pwd]").val();
var new_db = self.$option_id.find("input[name=new_db]").val();
self.rpc("/base/session/db_operation", {'flag': 'restore', 'db': db, 'password': password, 'new_db': new_db},
function(result) {
if (!result.error) {
self.notification.notify("You restored your database as: '" + new_db + "'");
}
});
});
});
self.$element.find('#db-change-password').click(function() {
self.db_string = "CHANGE DATABASE PASSWORD";
self.$option_id.html(QWeb.render("Change_DB_Pwd", self));
self.$option_id.find('#change_pwd_btn').click(function() {
var old_pwd = self.$option_id.find("input[name=old_db]").val();
var new_pwd = self.$option_id.find("input[name=new_pwd]").val();
var confirm_pwd = self.$option_id.find("input[name=confirm_pwd]").val();
self.rpc("/base/session/db_operation", {'flag': 'change_password', 'old_password': old_pwd, 'new_password': new_pwd, 'confirm_password': confirm_pwd},
function(result) {
if (!result.error) {
self.notification.notify("Password has been changed successfully");
}
});
});
});
self.$element.find('#back-to-login').click(function() {
self.header = new openerp.base.Header(self.session, "oe_header");
self.header.on_logout();

View File

@ -113,7 +113,7 @@
<td><input type="text" name="confirm_pwd"/></td>
</tr>
<tr>
<td colspan="2" align="right"><button type="button">Create</button></td>
<td colspan="2" align="right"><button type="button" id="create_db_btn">Create</button></td>
</tr>
</table>
</t>
@ -137,8 +137,8 @@
</t>
</tr>
<tr>
<td><label for="droppassword">Password:</label></td>
<td><input type="password" name="drop_password" value=""/></td>
<td><label for="drop_password">Password:</label></td>
<td><input type="password" name="drop_pwd" value=""/></td>
</tr>
<tr>
<td colspan="2" align="right"><button type="button" id="drop_db_btn">Drop</button></td>
@ -155,10 +155,10 @@
</table>
<table align="center" class="db_option_table">
<tr>
<td><label for="db_name">Database:</label></td>
<td><label for="backup_db">Database:</label></td>
<td>
<t t-if="db_list">
<select name="db">
<select name="backup_db">
<t t-foreach="db_list" t-as="db">
<option t-att-value="db"><t t-esc="db"/></option>
</t>
@ -167,11 +167,11 @@
</td>
</tr>
<tr>
<td><label for="pwd">Password:</label></td>
<td><input type="password" name="pwd"/></td>
<td><label for="backup_pwd">Password:</label></td>
<td><input type="password" name="backup_pwd"/></td>
</tr>
<tr>
<td colspan="2" align="right"><button type="button">Backup</button></td>
<td colspan="2" align="right"><button type="button" id="backup_db_btn">Backup</button></td>
</tr>
</table>
</t>
@ -185,19 +185,19 @@
</table>
<table align="center" class="db_option_table">
<tr>
<td><label for="db_name">File:</label></td>
<td><input type="file"/></td>
<td><label for="restore_db">File:</label></td>
<td><input type="file" name="restore_db"/></td>
</tr>
<tr>
<td><label for="pwd">Password:</label></td>
<td><input type="password" name="pwd"/></td>
<td><label for="restore_pwd">Password:</label></td>
<td><input type="password" name="restore_pwd"/></td>
</tr>
<tr>
<td><label for="new_db">New database name:</label></td>
<td><input type="text" name="new_db"/></td>
</tr>
<tr>
<td colspan="2" align="right"><button type="button">Restore</button></td>
<td colspan="2" align="right"><button type="button" id="restore_db_btn">Restore</button></td>
</tr>
</table>
</t>
@ -223,7 +223,7 @@
<td><input type="password" name="confirm_pwd"/></td>
</tr>
<tr>
<td colspan="2" align="right"><button type="button">Change Password</button></td>
<td colspan="2" align="right"><button type="button" id="change_pwd_btn">Change Password</button></td>
</tr>
</table>
</t>