filters.coffee 857 Bytes
###
    Route Filters
    Filters for managing user access to application routes.
###

# Define Filters

# Check if a User is Logged In
# If a user is not logged in and attempts to go to an authenticated route,
# re-route them to the login screen.
checkUserLoggedIn = ->
    if not Meteor.loggingIn() or Meteor.user()
        Router.go '/login'
        pause()

# Check if a User Exists
# If a user is logged in and attempts to go to a public route, re-route
# them to the main "logged in" screen.
userAuthenticated = ->
    if not Meteor.loggingIn() and Meteor.user()
        Router.go '/'


# Run Filters

Router.onBeforeAction checkUserLoggedIn, except: [
    'signup',
    'login',
    'recover-password',
    'reset-password'
]

Router.onBeforeAction userAuthenticated, only: [
    'signup',
    'login',
    'recover-password',
    'reset-password'
]