]>
git.proxmox.com Git - pmg-gui.git/blob - js/LoginView.js
2 Ext
.define('PMG.form.RealmComboBox', {
3 extend
: 'Proxmox.form.KVComboBox',
4 xtype
: 'pmgRealmComboBox',
7 return { value
: this.getValue() };
9 applyState : function(state
) {
10 if (state
&& state
.value
) {
11 this.setValue(state
.value
);
14 stateEvents
: [ 'select' ],
15 stateful
: true, // last chosen auth realm is saved between page reloads
16 id
: 'pmgloginrealm', // We need stable ids when using stateful, not autogenerated
17 stateID
: 'pmgloginrealm',
20 ['pam', 'Local System (PAM)'],
21 ['pmg', 'Proxmox Mail Gateway']
25 Ext
.define('PMG.LoginView', {
26 extend
: 'Ext.container.Container',
30 xclass
: 'Ext.app.ViewController',
32 init: function(view
) {
34 var loginForm
= this.lookupReference('loginForm');
36 // try autologin with quarantine ticket from URL
38 var qs
= Ext
.Object
.fromQueryString(location
.search
);
39 if (qs
.ticket
== undefined) { return; }
40 var ticket
= decodeURIComponent(qs
.ticket
);
41 var match
= ticket
.match(/^PMGQUAR:([^\s\:]+):/);
42 if (!match
) { return; }
43 var username
= match
[1];
44 var loginwin
= me
.lookup('loginwindow');
45 loginwin
.autoShow
= false;
46 loginwin
.setVisible(false);
47 me
.lookup('realmfield').setDisabled(true);
49 me
.lookup('usernameField').setValue(username
);
50 me
.lookup('passwordField').setValue(ticket
);
55 submitForm: function() {
57 var view
= me
.getView();
58 var loginForm
= me
.lookupReference('loginForm');
60 if (loginForm
.isValid()) {
61 if (loginForm
.isVisible()) {
62 loginForm
.mask(gettext('Please wait...'), 'x-mask-loading');
65 success: function(form
, action
) {
66 // save login data and create cookie
67 PMG
.Utils
.updateLoginData(action
.result
.data
);
68 PMG
.app
.changeView(view
.targetview
);
70 failure: function(form
, action
) {
74 gettext('Login failed. Please try again')
83 change: function(f
, value
) {
84 var dt
= Ext
.Date
.add(new Date(), Ext
.Date
.YEAR
, 10);
85 Ext
.util
.Cookies
.set('PMGLangCookie', value
, dt
);
87 var loginwin
= this.lookupReference('loginwindow');
88 loginwin
.mask(gettext('Please wait...'), 'x-mask-loading');
89 window
.location
.reload();
92 'button[reference=loginButton]': {
119 xtype
: 'versioninfo',
131 reference
: 'loginwindow',
135 defaultFocus
: 'usernameField',
141 title
: gettext('Proxmox Mail Gateway Login'),
149 defaultButton
: 'loginButton',
150 url
: '/api2/extjs/access/ticket',
151 reference
: 'loginForm',
161 fieldLabel
: gettext('User name'),
163 itemId
: 'usernameField',
164 reference
: 'usernameField'
168 inputType
: 'password',
169 fieldLabel
: gettext('Password'),
171 reference
: 'passwordField'
174 xtype
: 'pmgRealmComboBox',
175 fieldLabel
: gettext('Realm'),
176 reference
: 'realmfield',
181 xtype
: 'proxmoxLanguageSelector',
182 fieldLabel
: gettext('Language'),
183 value
: Ext
.util
.Cookies
.get('PMGLangCookie') || 'en',
190 text
: gettext('Login'),
191 reference
: 'loginButton',