Ignore:
Timestamp:
06/26/13 21:17:41 (12 years ago)
Author:
hendrikvanantwerpen
Message:

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'.
Location:
Dev/trunk/src/client/qed-client/ui
Files:
1 added
1 deleted
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • Dev/trunk/src/client/qed-client/ui/LoginDialogWrapper.coffee

    r466 r468  
    11define [
    22    "../session",
     3    "dijit/_WidgetBase",
     4    "dijit/_TemplatedMixin",
    35    "dijit/_WidgetsInTemplateMixin",
    4     "dijit/Dialog",
    5     "dijit/form/ValidationTextBox",
     6    "dijit/registry",
    67    "dojo/_base/declare",
    78    "dojo/_base/event",
    8     "dojo/dom-construct",
    9     "dojo/text!./templates/LoginDialog.html"
    10 ], (session, _WidgetsInTemplateMixin, Dialog,
    11     ValidationTextBox, declare, event,
    12     domConstruct, template) ->
    13     declare [Dialog,_WidgetsInTemplateMixin],
     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],
    1415        templateString: template
    15         title: "Login to QED"
    16         show: () ->
    17             @loginForm.reset()
     16        startup: () ->
     17            if @_started then return
    1818            @inherited arguments
     19            _on session, 'change', (lang.hitch @, @onUserChange)
     20            @onUserChange session.get()
    1921        onLogin: (evt) ->
    20             if @loginForm.validate
     22            if @loginForm.validate()
    2123                value = @loginForm.get 'value'
    2224                session.login value.username,
    2325                              value.password
    24                 .then (() => @hide()),
    25                       () => alert "Login failed!"
    26             @hide()
     26                .then () =>
     27                    @loginDialog.hide()
     28                , () =>
     29                    alert "Login failed!"
    2730            event.stop evt if evt
    2831            false
    29         onCancel: (evt) ->
    30             @hide()
    31             event.stop evt if evt
    32             false
     32        onUserChange: (user) ->
     33            if user
     34                @loginDialog.hide()
     35            else
     36                @loginDialog.show()
  • Dev/trunk/src/client/qed-client/ui/SessionMenu.coffee

    r466 r468  
    11define [
    22    "../session",
    3     "dijit/DropDownMenu",
    4     "dijit/registry",
     3    "./LoginDialogWrapper",
    54    "dijit/MenuBarItem",
    65    "dojo/_base/declare",
    76    "dojo/_base/event",
    87    "dojo/on"
    9 ], (session, DropDownMenu, registry, MenuBarItem, declare, event, _on) ->
     8], (session, LoginDialogWrapper, MenuBarItem, declare, event, _on) ->
    109    declare [MenuBarItem],
    1110        info: null
    1211        postCreate: () ->
    13             @loginDialog = registry.byId 'loginDialog'
    14             console.error "Cannot find loginDialog" if not @loginDialog
    1512            @set 'label', "Login"
    1613        startup: () ->
     
    2926                session.logout()
    3027            else
    31                 @loginDialog.show()
     28                LoginDialogWrapper.show()
    3229            event.stop evt if evt
    3330            false
Note: See TracChangeset for help on using the changeset viewer.