Esempio n. 1
0
 def get_wiki_user(self, create=False, back=None):
   current_user = self.get_current_user(back)
   wiki_user = WikiUser.gql('WHERE wiki_user = :1', current_user).get()
   if not wiki_user and create:
     wiki_user = WikiUser(wiki_user=current_user)
     wiki_user.put()
   return wiki_user
Esempio n. 2
0
 def post(self):
   self.acl.check_edit_settings()
   email = self.request.get('email').strip()
   if email and not WikiUser.gql('WHERE wiki_user = :1', users.User(email)).get():
     user = WikiUser(wiki_user=users.User(email))
     user.put()
   self.redirect('/w/users')
Esempio n. 3
0
    def post(self, page_title):
        # Again, only accept saves from a signed in user
        current_user = users.get_current_user()

        if not current_user:
            self.redirect(users.create_login_url('/edit/' + page_title))

        # See if this user has a profile
        wiki_user = WikiUser.gql('WHERE wiki_user = :1', current_user).get()

        # If not, create the profile
        if not wiki_user:
            wiki_user = WikiUser(wiki_user=current_user)
            wiki_user.put()

        # get the user entered content in the form
        body = self.request.get('body')

        # Find the entry, if it exists
        entry = WikiContent.gql('WHERE title = :1', page_title).get()

        # Generate the version number based on the entries previous existence
        if entry:
            latest_version = WikiRevision.gql(
                'WHERE wiki_page = :content'
                ' ORDER BY version_number DESC',
                content=entry).get()
            version_number = latest_version.version_number + 1
        else:
            version_number = 1
            entry = WikiContent(title=page_title)
            entry.put()

        # Create a version for this entry
        version = WikiRevision(version_number=version_number,
                               revision_body=body,
                               author=wiki_user,
                               wiki_page=entry)
        version.put()

        # above, memcache sets the following:
        # return [wiki_body, author_email, author_nickname, version, version_date]
        content = [
            markdown.markdown(body),
            current_user.email(),
            current_user.nickname(), version_number, version.created
        ]
        memcache.set(page_title, content, 600)
        # After the entry has been saved, direct the user back to view the page
        self.redirect('/view/' + page_title)
Esempio n. 4
0
 def new_user(self, username, password, email):
   q = db.GqlQuery("SELECT * FROM WikiUser " + 
                   "WHERE username = :1",
                   username)
   results = q.fetch(1)
   if results:
     # user exists
     return None
   else:
     # create new user
     secure_password = sec_utils.make_pw_hash(username, password)
     newUser = WikiUser(username=username, password=secure_password) 
     if email:
       newUser.email = email
     newUser.put()
     return newUser
  def post(self, page_title):
    # Again, only accept saves from a signed in user
    current_user = users.get_current_user()

    if not current_user:
      self.redirect(users.create_login_url('/edit/' + page_title))

    # See if this user has a profile
    wiki_user = WikiUser.gql('WHERE wiki_user = :1', current_user).get()

    # If not, create the profile
    if not wiki_user:
      wiki_user = WikiUser(wiki_user=current_user)
      wiki_user.put()

    # get the user entered content in the form
    body = self.request.get('body')

    # Find the entry, if it exists
    entry = WikiContent.gql('WHERE title = :1', page_title).get()

    # Generate the version number based on the entries previous existence
    if entry:
      latest_version = WikiRevision.gql('WHERE wiki_page = :content'
                                        ' ORDER BY version_number DESC', content=entry).get()
      version_number = latest_version.version_number + 1
    else:
      version_number = 1
      entry = WikiContent(title=page_title)
      entry.put()

    # Create a version for this entry
    version = WikiRevision(version_number=version_number,
                           revision_body=body, author=wiki_user,
                           wiki_page=entry)
    version.put()

    # above, memcache sets the following:
    # return [wiki_body, author_email, author_nickname, version, version_date]
    content = [markdown.markdown(body), current_user.email(), 
               current_user.nickname(), version_number, version.created]
    memcache.set(page_title, content, 600)
    # After the entry has been saved, direct the user back to view the page
    self.redirect('/view/' + page_title)
  def get(self, user):
    # Get the user information
    unescaped_user = urllib.unquote(user)
    wiki_user_object = users.User(unescaped_user)
    # Only that user can edit his or her profile
    if users.get_current_user() != wiki_user_object:
      self.redirect('/view/StartPage')

    wiki_user = WikiUser.gql('WHERE wiki_user = :1', wiki_user_object).get()
    if not wiki_user:
      wiki_user = WikiUser(wiki_user=wiki_user_object)
      wiki_user.put()

    article_list = []
    for article in wiki_user.wikirevision_set:
        article_list.append(article.wiki_page.title)
    articles = set(article_list)
    self.generate('edit_user.html', template_values={'queried_user': wiki_user,
                                                     'articles': articles})
Esempio n. 7
0
    def get(self, user):
        # Get the user information
        unescaped_user = urllib.unquote(user)
        wiki_user_object = users.User(unescaped_user)
        # Only that user can edit his or her profile
        if users.get_current_user() != wiki_user_object:
            self.redirect('/view/StartPage')

        wiki_user = WikiUser.gql('WHERE wiki_user = :1',
                                 wiki_user_object).get()
        if not wiki_user:
            wiki_user = WikiUser(wiki_user=wiki_user_object)
            wiki_user.put()

        article_list = []
        for article in wiki_user.wikirevision_set:
            article_list.append(article.wiki_page.title)
        articles = set(article_list)
        self.generate('edit_user.html',
                      template_values={
                          'queried_user': wiki_user,
                          'articles': articles
                      })