Пример #1
0
def get_user_info():
  """Get UserInfo for currently logged in user.

  This will insert the new user if it does not already exist in datastore.

  Returns:
    UserInfo record for user if user is logged in, else None.
  """
  user = users.get_current_user()
  if user is None:
    return None
  auth_email = user.email()
  effective_email = auth_email

  if auth_email == '*****@*****.**':
    effective_email = '*****@*****.**'
  if auth_email == '*****@*****.**':
    effective_email = '*****@*****.**'

  if auth_email == effective_email:
    ui = UserInfo.get_or_insert(key_name='user:%s' % auth_email)
  else:
    ui = UserInfo.get_by_key_name('user:%s' % effective_email)
    if not ui:
      logging.error("User %s failed to act as %s; %s doesn't exist", auth_email, effective_email, effective_email)
      return None
    logging.info("User %s acting as %s", auth_email, effective_email)
    ui.non_owner = True
    ui.real_email = auth_email
  return ui
Пример #2
0
def lookup_and_authenticate_user(handler, claimed_email, claimed_password):
    if not claimed_email:
        return None
    claimed_user = UserInfo.get_by_key_name("user:%s" % claimed_email)
    if not claimed_user:
        return None
    if claimed_email == "*****@*****.**" and handler.request.headers["Host"] == "localhost:8080":
        # No auth for testing.
        return claimed_user
    if claimed_user.upload_password and claimed_user.upload_password == claimed_password:
        return claimed_user
    return None
Пример #3
0
def lookup_and_authenticate_user(handler, claimed_email, claimed_password):
  if not claimed_email:
    return None
  claimed_user = UserInfo.get_by_key_name('user:%s' % claimed_email)
  if not claimed_user:
    return None
  if claimed_email == '*****@*****.**' and \
        handler.request.headers["Host"] == "localhost:8080":
    # No auth for testing.
    return claimed_user
  if claimed_user.upload_password and \
        claimed_user.upload_password == claimed_password:
    return claimed_user
  return None
Пример #4
0
  def get(self):
    effective_user = None

    claimed_email = self.request.get('user_email')
    if claimed_email:
      claimed_user = UserInfo.get_by_key_name('user:%s' % claimed_email)
      if claimed_user and \
         claimed_user.upload_password and \
         claimed_user.upload_password == self.request.get('password'):
        effective_user = claimed_user

    if effective_user:
      self.response.headers['Content-Type'] = 'text/plain'
      upload_url = blobstore.create_upload_url('/admin/store')
      self.response.out.write(upload_url)
    else:
      self.error(403)
Пример #5
0
    def get(self):
        effective_user = None

        claimed_email = self.request.get('user_email')
        if claimed_email:
            claimed_user = UserInfo.get_by_key_name('user:%s' % claimed_email)
            if claimed_user and \
               claimed_user.upload_password and \
               claimed_user.upload_password == self.request.get('password'):
                effective_user = claimed_user

        if effective_user:
            self.response.headers['Content-Type'] = 'text/plain'
            upload_url = blobstore.create_upload_url('/admin/store')
            self.response.out.write(upload_url)
        else:
            self.error(403)
Пример #6
0
        def store_media():
            """Store media object info in datastore.

      Also updates the user-info record to keep count of media objects.

      This function is run as a transaction.
      """
            user_info = UserInfo.get_by_key_name("user:%s" % user_email)
            if user_info is None:
                error_messages.append("User record has been deleted.  " "Try uploading again")
                return

            media = MediaObject(
                parent=user_info,
                owner=user_info,
                blob=blob_info.key(),
                creation=blob_info.creation,
                content_type=blob_info.content_type,
                filename=blob_info.filename,
                size=int(blob_info.size),
                lacks_document=True,
            )

            user_info.media_objects += 1
            db.put(user_info)
            db.put(media)

            if bool(is_doc) and is_doc != "0":
                tag_list = []
                if tags is not None:
                    tag_list = [x for x in re.split("\s*,\s*", tags) if x]

                doc = Document(
                    parent=user_info,
                    owner=user_info,
                    pages=[media.key()],
                    title=title,
                    description=description,
                    no_tags=(len(tag_list) == 0),
                    tags=tag_list,
                )
                db.put(doc)
                media.document = doc.key()
                media.lacks_document = False
                db.put(media)
Пример #7
0
  def get(self):
    self.response.headers['Cache-Control'] = "private"
    self.response.headers['Content-Type'] = "text/plain; charset=utf-8"

    user = UserInfo.get_by_key_name('user:[email protected]')

    docs = Document.all().filter('owner', user)
    docs = docs.fetch(10000)
    self.response.out.write("# got %d docs\n" % len(docs))
    for doc in docs:
      self.response.out.write("%s tags[%s] date[%s] title[%s] \n" % (doc.display_url, doc.tag_comma_separated, doc.date_yyyy_mm_dd, doc.title_or_empty_string))
      for page in doc.pages:
        self.response.out.write(" has_page: %d\n" % (page.id_or_name()))
    meds = MediaObject.all().filter('owner', user)
    meds = meds.fetch(10000)
    self.response.out.write("# got %d mediaobjects\n" % len(meds))
    for mo in meds:
      self.response.out.write("%s creation[%s] size[%d]\n" % (mo.url_path, str(mo.creation), mo.size))
Пример #8
0
    def store_media():
      """Store media object info in datastore.

      Also updates the user-info record to keep count of media objects.

      This function is run as a transaction.
      """
      user_info = UserInfo.get_by_key_name('user:%s' % user_email)
      if user_info is None:
        error_messages.append('User record has been deleted.  '
                              'Try uploading again')
        return

      media = MediaObject(
          parent=user_info,
          owner=user_info,
          blob=blob_info.key(),
          creation=blob_info.creation,
          content_type=blob_info.content_type,
          filename=blob_info.filename,
          size=int(blob_info.size),
          lacks_document=True)

      user_info.media_objects += 1
      db.put(user_info)
      db.put(media)

      if bool(is_doc) and is_doc != "0":
        tag_list = []
        if tags is not None:
          tag_list = [x for x in re.split('\s*,\s*', tags) if x]

        doc = Document(
            parent=user_info,
            owner=user_info,
            pages=[media.key()],
            title=title,
            description=description,
            no_tags=(len(tag_list)==0),
            tags=tag_list)
        db.put(doc)
        media.document = doc.key()
        media.lacks_document = False
        db.put(media)
Пример #9
0
    def get(self):
        self.response.headers['Cache-Control'] = "private"
        self.response.headers['Content-Type'] = "text/plain; charset=utf-8"

        user = UserInfo.get_by_key_name('user:[email protected]')

        docs = Document.all().filter('owner', user)
        docs = docs.fetch(10000)
        self.response.out.write("# got %d docs\n" % len(docs))
        for doc in docs:
            self.response.out.write(
                "%s tags[%s] date[%s] title[%s] \n" %
                (doc.display_url, doc.tag_comma_separated, doc.date_yyyy_mm_dd,
                 doc.title_or_empty_string))
            for page in doc.pages:
                self.response.out.write(" has_page: %d\n" %
                                        (page.id_or_name()))
        meds = MediaObject.all().filter('owner', user)
        meds = meds.fetch(10000)
        self.response.out.write("# got %d mediaobjects\n" % len(meds))
        for mo in meds:
            self.response.out.write("%s creation[%s] size[%d]\n" %
                                    (mo.url_path, str(mo.creation), mo.size))