[pve-devel] r4835 - pve-manager/pve2/www/manager
svn-commits at proxmox.com
svn-commits at proxmox.com
Wed Jun 23 13:49:30 CEST 2010
Author: dietmar
Date: 2010-06-23 11:49:30 +0000 (Wed, 23 Jun 2010)
New Revision: 4835
Added:
pve-manager/pve2/www/manager/base64.js
Modified:
pve-manager/pve2/www/manager/LoginWindow.js
Log:
Modified: pve-manager/pve2/www/manager/LoginWindow.js
===================================================================
--- pve-manager/pve2/www/manager/LoginWindow.js 2010-06-23 08:10:49 UTC (rev 4834)
+++ pve-manager/pve2/www/manager/LoginWindow.js 2010-06-23 11:49:30 UTC (rev 4835)
@@ -4,10 +4,20 @@
onLogon: function() {
var form = this.get(0).getForm();
+
+ var values = form.getValues(false);
+ var user = values.username;
+ var pass = values.password;
+
+ var tok = user + ':' + pass;
+ var hash = Ext.util.base64.encode(tok);
+ var auth = "Basic " + hash;
+
if(form.isValid()){
this.el.mask('Please wait...', 'x-mask-loading');
form.submit({
+ headers: { Authorization : auth },
scope: this,
failure: function(f, resp){
this.el.unmask();
Added: pve-manager/pve2/www/manager/base64.js
===================================================================
--- pve-manager/pve2/www/manager/base64.js (rev 0)
+++ pve-manager/pve2/www/manager/base64.js 2010-06-23 11:49:30 UTC (rev 4835)
@@ -0,0 +1,51 @@
+Ext.util.base64 = {
+
+ // code from extjs forom
+
+ base64s : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
+
+ encode: function(decStr){
+ if (typeof btoa === 'function') {
+ return btoa(decStr);
+ }
+ var base64s = this.base64s;
+ var bits;
+ var dual;
+ var i = 0;
+ var encOut = "";
+ while(decStr.length >= i + 3){
+ bits = (decStr.charCodeAt(i++) & 0xff) <<16 | (decStr.charCodeAt(i++) & 0xff) <<8 | decStr.charCodeAt(i++) & 0xff;
+ encOut += base64s.charAt((bits & 0x00fc0000) >>18) + base64s.charAt((bits & 0x0003f000) >>12) + base64s.charAt((bits & 0x00000fc0) >> 6) + base64s.charAt((bits & 0x0000003f));
+ }
+ if(decStr.length -i > 0 && decStr.length -i < 3){
+ dual = Boolean(decStr.length -i -1);
+ bits = ((decStr.charCodeAt(i++) & 0xff) <<16) | (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);
+ encOut += base64s.charAt((bits & 0x00fc0000) >>18) + base64s.charAt((bits & 0x0003f000) >>12) + (dual ? base64s.charAt((bits & 0x00000fc0) >>6) : '=') + '=';
+ }
+ return(encOut);
+ },
+
+ decode: function(encStr){
+ if (typeof atob === 'function') {
+ return atob(encStr);
+ }
+ var base64s = this.base64s;
+ var bits;
+ var decOut = "";
+ var i = 0;
+ for(; i<encStr.length; i += 4){
+ bits = (base64s.indexOf(encStr.charAt(i)) & 0xff) <<18 | (base64s.indexOf(encStr.charAt(i +1)) & 0xff) <<12 | (base64s.indexOf(encStr.charAt(i +2)) & 0xff) << 6 | base64s.indexOf(encStr.charAt(i +3)) & 0xff;
+ decOut += String.fromCharCode((bits & 0xff0000) >>16, (bits & 0xff00) >>8, bits & 0xff);
+ }
+ if(encStr.charCodeAt(i -2) == 61){
+ return(decOut.substring(0, decOut.length -2));
+ }
+ else if(encStr.charCodeAt(i -1) == 61){
+ return(decOut.substring(0, decOut.length -1));
+ }
+ else {
+ return(decOut);
+ }
+ }
+
+};
\ No newline at end of file
More information about the pve-devel
mailing list