source: Dev/trunk/src/client/qed-client/ui/LoginDialogWrapper.coffee @ 468

Last change on this file since 468 was 468, checked in by hendrikvanantwerpen, 12 years ago

Improved authentication

  • Authentication cannot be cancelled, removing a lot of weird race conditions.
  • We offer a request provider that has automatic retry in case of authentication failures.
  • Reduced dependency on LoginDialog? by having it act independent based on events. Other modules can just depend on 'session'.
File size: 1.2 KB
Line 
1define [
2    "../session",
3    "dijit/_WidgetBase",
4    "dijit/_TemplatedMixin",
5    "dijit/_WidgetsInTemplateMixin",
6    "dijit/registry",
7    "dojo/_base/declare",
8    "dojo/_base/event",
9    "dojo/_base/lang",
10    "dojo/on",
11    "dojo/text!./templates/LoginDialogWrapper.html"
12], (session, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin,
13    registry, declare, event, lang, _on, template) ->
14    declare [_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin],
15        templateString: template
16        startup: () ->
17            if @_started then return
18            @inherited arguments
19            _on session, 'change', (lang.hitch @, @onUserChange)
20            @onUserChange session.get()
21        onLogin: (evt) ->
22            if @loginForm.validate()
23                value = @loginForm.get 'value'
24                session.login value.username,
25                              value.password
26                .then () =>
27                    @loginDialog.hide()
28                , () =>
29                    alert "Login failed!"
30            event.stop evt if evt
31            false
32        onUserChange: (user) ->
33            if user
34                @loginDialog.hide()
35            else
36                @loginDialog.show()
Note: See TracBrowser for help on using the repository browser.