         }, (err, src_objects) ->
           return next err if err
           log "#{src_objects.length} objects found"
-          next null, {db, src_site, src_objects}
+          next null, {db, user, src_site, src_objects}
 
       # make sure new site doesn't already exist
-      ({db, src_site, src_objects}, next) ->
+      ({db, user, src_site, src_objects}, next) ->
         log 'make sure new site is available'
         db.sites.findOne {
           slug: dst_slug
         }, (err, dst_site) ->
           err = 'dst_slug already taken' if dst_site
-          next err, {db, src_site, src_objects}
+          next err, {db, user, src_site, src_objects}
 
       # create new site
-      ({db, src_site, src_objects}, next) ->
+      ({db, user, src_site, src_objects}, next) ->
         site = src_site.val()
         site.slug = dst_slug
         site.name = dst_slug

  # clone a site
  when 'clone'

    id_mapping = {}
    src_slug = args[0]
    dst_slug = args[1]


          return next err if err
          return next 'could not find source site' if not src_site
          log "source site found: #{src_site.get('_id').val()}"
          next null, {db, user, src_site}

      # get the source site's objects
      ({db, user, src_site}, next) ->
        log 'find the objects'
        db.objects.find {
          site_id: src_site.get('_id').val()
