bigbluebutton-Github/labs/meteor-client/app/lib/router.coffee

49 lines
2.3 KiB
CoffeeScript
Raw Normal View History

2014-07-26 00:36:31 +08:00
# Todo
# When a user is to be kicked remove their authorization token from servers
2014-07-28 23:00:07 +08:00
@Router.configure layoutTemplate: 'layout'
2014-07-28 23:00:07 +08:00
@Router.map ->
@route "login",
path: "/meeting_id=*"
action: () ->
self = @
2014-10-30 03:39:13 +08:00
url = location.href
console.log "\n\nurl=#{url}\n\n"
2014-06-19 05:20:32 +08:00
#extract the meeting_id, user_id, auth_token, etc from the uri
if url.indexOf("meeting_id") > -1 # if the URL is /meeting_id=...&...
2014-10-30 03:39:13 +08:00
urlParts = url.split("&")
meetingId = urlParts[0]?.split("=")[1]
userId = urlParts[1]?.split("=")[1]
authToken = urlParts[2]?.split("=")[1]
if meetingId? and userId? and authToken?
Meteor.call("validateAuthToken", meetingId, userId, authToken)
Meteor.call('sendMeetingInfoToClient', meetingId, userId)
self.redirect('/')
2014-10-30 03:39:13 +08:00
else
console.log "unable to extract from the URL some of {meetingId, userId, authToken}"
else
console.log "unable to extract the required information for the meeting from the URL"
@route "main",
path: "/"
2014-07-18 03:45:26 +08:00
onBeforeAction: ->
self = @
Meteor.call('sendMeetingInfoToClient', getInSession('meetingId'),getInSession('userId'))
2014-10-04 02:09:44 +08:00
# Have to check on the server whether the credentials the user has are valid on db, without being able to spam requests for credentials
Meteor.subscribe 'users', getInSession('meetingId'), getInSession("userId"), -> # callback for after users have been loaded on client
2014-10-04 02:09:44 +08:00
Meteor.subscribe 'chat', getInSession('meetingId'), getInSession("userId"), ->
Meteor.subscribe 'shapes', getInSession('meetingId'), ->
Meteor.subscribe 'slides', getInSession('meetingId'), ->
Meteor.subscribe 'meetings', getInSession('meetingId'), ->
2014-10-07 21:27:17 +08:00
Meteor.subscribe 'presentations', getInSession('meetingId'), ->
Meteor.call('sendMeetingInfoToClient', getInSession('meetingId'), getInSession("userId")) # the dbid may have changed #TODO
2014-10-07 21:27:17 +08:00
# Obtain user info here. for testing. should be moved somewhere else later
2014-10-31 07:16:47 +08:00
Meteor.call "getMyInfo", getInSession("userId"), (error, result) ->
console.log "in router:" + JSON.stringify result
2014-10-07 21:27:17 +08:00
setInSession("DBID", result.DBID)
setInSession("userName", result.name)
2014-06-24 03:11:57 +08:00
@route "logout",
path: "logout"