4343
4444 // array to hold logged in users
4545 var users = [ ] ;
46+ var owner = null ;
4647
4748 // Our logger
4849 var log = bunyan . createLogger ( { name : 'Windows Azure Active Directory Tutorial' } ) ;
@@ -104,7 +105,7 @@ function createTask(req, res, next) {
104105 return ;
105106 }
106107
107- _task . owner = req . params . owner ;
108+ _task . owner = owner ;
108109 _task . task = req . params . task ;
109110 _task . date = new Date ( ) ;
110111
@@ -127,13 +128,14 @@ function createTask(req, res, next) {
127128
128129function removeTask ( req , res , next ) {
129130
130- Task . remove ( { task :req . params . task } , function ( err ) {
131+ Task . remove ( { task :req . params . task , owner : owner } , function ( err ) {
131132 if ( err ) {
132133 req . log . warn ( err ,
133134 'removeTask: unable to delete %s' ,
134135 req . params . task ) ;
135136 next ( err ) ;
136137 } else {
138+ log . info ( 'Deleted task:' , req . params . task ) ;
137139 res . send ( 204 ) ;
138140 next ( ) ;
139141 }
@@ -153,10 +155,10 @@ function removeAll(req, res, next) {
153155
154156function getTask ( req , res , next ) {
155157
156- log . info ( 'getTask was called' ) ;
157- Task . find ( req . params . owner , function ( err , data ) {
158+ log . info ( 'getTask was called for: ' , owner ) ;
159+ Task . find ( owner , function ( err , data ) {
158160 if ( err ) {
159- req . log . warn ( err , 'get: unable to read %s' , req . params . owner ) ;
161+ req . log . warn ( err , 'get: unable to read %s' , owner ) ;
160162 next ( err ) ;
161163 return ;
162164 }
@@ -168,17 +170,17 @@ function getTask(req, res, next) {
168170}
169171
170172 /// Simple returns the list of TODOs that were loaded.
171-
173+
172174function listTasks ( req , res , next ) {
173175 // Resitify currently has a bug which doesn't allow you to set default headers
174176 // This headers comply with CORS and allow us to mongodbServer our response to any origin
175177
176178 res . header ( "Access-Control-Allow-Origin" , "*" ) ;
177179 res . header ( "Access-Control-Allow-Headers" , "X-Requested-With" ) ;
178180
179- log . info ( "listTasks was called" ) ;
181+ log . info ( "listTasks was called for: " , owner ) ;
180182
181- Task . find ( ) . limit ( 20 ) . sort ( 'date' ) . exec ( function ( err , data ) {
183+ Task . find ( owner ) . limit ( 20 ) . sort ( 'date' ) . exec ( function ( err , data ) {
182184
183185 if ( err )
184186 return next ( err ) ;
@@ -291,7 +293,7 @@ var server = restify.createServer({
291293 /**
292294 /*
293295 /* Calling the OIDCBearerStrategy and managing users
294- /*
296+ /*
295297 /* Passport pattern provides the need to manage users and info tokens
296298 /* with a FindorCreate() method that must be provided by the implementor.
297299 /* Here we just autoregister any user and implement a FindById().
@@ -301,7 +303,8 @@ var server = restify.createServer({
301303 var findById = function ( id , fn ) {
302304 for ( var i = 0 , len = users . length ; i < len ; i ++ ) {
303305 var user = users [ i ] ;
304- if ( user . id === id ) {
306+ log . info ( 'Got user: ' , user ) ;
307+ if ( user . sub === id ) {
305308 return fn ( null , user ) ;
306309 }
307310 }
@@ -315,13 +318,15 @@ var server = restify.createServer({
315318 log . info ( token , 'was the token retreived' ) ;
316319 findById ( token . sub , function ( err , user ) {
317320 if ( err ) { return done ( err ) ; }
318-
319321 if ( ! user ) {
320322 // "Auto-registration"
321323 log . info ( 'User was added automatically as they were new. Their sub is: ' , token . sub )
322324 users . push ( token ) ;
325+ log . info ( users ) ;
326+ owner = token . sub ;
323327 return done ( null , token ) ;
324328 }
329+ owner = token . sub ;
325330 return done ( null , user , token ) ;
326331 } ) ;
327332 }
@@ -334,7 +339,7 @@ var server = restify.createServer({
334339 /**
335340 /*
336341 /* Each of these handlers are protected by our OIDCBearerStrategy by invoking 'oidc-bearer'
337- /* in the pasport.authenticate() method. We set 'session: false' as REST is stateless and
342+ /* in the pasport.authenticate() method. We set 'session: false' as REST is stateless and
338343 /* we don't need to maintain session state. You can experiement removing API protection
339344 /* by removing the passport.authenticate() method like so:
340345 /*
0 commit comments