Big initialization rework in order to be able to facilitate preloaded backend settings
This commit is contained in:
@@ -3,9 +3,25 @@ import config from 'ember-get-config'
|
||||
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin'
|
||||
|
||||
export default Ember.Mixin.create ApplicationRouteMixin,
|
||||
current_user_loaded: (user) ->
|
||||
current_user_loaded: (user) -> @get('initial_resources_resolve')(user)
|
||||
beforeModel: (transition) ->
|
||||
@_loadCurrentUser arguments... unless transition?.targetName is 'login'
|
||||
@set 'router.globals.initial_resources_fulfilled', false
|
||||
time_now = new Date()
|
||||
console.log "Application beforeModel"
|
||||
initial_resources_loaded = new Ember.RSVP.Promise((resolve, reject) =>
|
||||
@set 'initial_resources_resolve', resolve
|
||||
@set 'initial_resources_reject', reject
|
||||
).then((resources) =>
|
||||
console.log "Initial resources loaded (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
|
||||
@set 'router.globals.initial_resources_fulfilled', true
|
||||
).catch((reason) =>
|
||||
console.log "No initial resource loading (#{Math.round((new Date() - time_now) / 100) / 10}s)" # rounded devide by 1000
|
||||
@set('router.globals.flash_message', reason) if reason
|
||||
).finally -> Ember.$('#initial-loader').remove()
|
||||
|
||||
@set 'initial_resources_loaded_promise', initial_resources_loaded
|
||||
@_loadCurrentUser arguments...
|
||||
initial_resources_loaded
|
||||
|
||||
sessionAuthenticated: ->
|
||||
@_super arguments...
|
||||
@@ -13,13 +29,15 @@ export default Ember.Mixin.create ApplicationRouteMixin,
|
||||
|
||||
_loadCurrentUser: (transition) ->
|
||||
#if userId = @get('session.data.authenticated.user_id')
|
||||
return if transition?.targetName is 'login'
|
||||
if transition?.targetName is 'login' # don't load current user on login page
|
||||
@get('initial_resources_reject')('Please login')
|
||||
return
|
||||
@get('store').queryRecord('user', me: true).then (user) =>
|
||||
@set 'router.globals.current_user', user
|
||||
@current_user_loaded user # overloadable
|
||||
, =>
|
||||
@set 'router.globals.current_user', null
|
||||
#@transitionTo('login').then (loginRoute) -> loginRoute.set('router.globals.flash.notice', 'Please login')
|
||||
#@get('initial_resources_reject')('Unauthenticated user')
|
||||
@transitionTo('login')
|
||||
|
||||
actions:
|
||||
|
||||
Reference in New Issue
Block a user