コード例 #1
0
ファイル: main.py プロジェクト: senyuuri/Google_Hardcode_2013
    def get(self):
        Username = self.read_secure_cookie('username')
        if not self.validate(Username):
            self.logout()
            self.redirect('/')
        
        option = self.request.get('option')
        if Username:
            if option == 'Delete Your Account':
                u=db.GqlQuery('SELECT * FROM User WHERE name=:1',Username)
                user = u[0]
                log=model.Log(from_user=user,log_type="Delete_All",lid=model.next_log_id())
                log.put()
                posts = user.posts
                db.delete(posts)
                us=db.GqlQuery('SELECT * FROM User WHERE name=:1',Username).get()
                db.delete(us)
                self.logout()


                self.redirect('/')
            if option == 'Delete All Your User Data':
                u=db.GqlQuery('SELECT * FROM User WHERE name=:1',Username)
                user = u[0]
                posts = user.posts
                db.delete(posts)
                log=model.Log(from_user=user,log_type="Delete_All_Data",lid=model.next_log_id())
                log.put()
                self.redirect('/account')
        else:
            self.redirect('/')
コード例 #2
0
ファイル: main.py プロジェクト: senyuuri/Google_Hardcode_2013
    def post(self):
        have_error = False
        username = self.request.get('username')
        password = self.request.get('password')
        verify = self.request.get('verify')
        email = self.request.get('email')
        question=self.request.get("question")
        answer=self.request.get('answer')


        params = dict(username = username,
                      email = email, PageTitle="Sign Up")

        u=model.User.all().filter('name =',username).get()
        if u:
            params['error_username'] = "******"
            have_error = True            

        if not valid_username(username):
            params['error_username'] = "******"
            have_error = True

        if not valid_password(password):
            params['error_password'] = "******"
            have_error = True
        elif password != verify:
            params['error_verify'] = "Password not match."
            have_error = True

        if not valid_email(email):
            params['error_email'] = "Email not vaild."
            have_error = True

        if not question:
            params['error_question']="Please enter your question"
            have_error=True

        if not answer:
            params['error_answer']='Please enter answer to your question'
            have_error=True

        if have_error:
            self.render('signup-form.html', **params)
        else:
            u = model.User(name = username, pw = str(hashlib.sha256(secret+password+secret).hexdigest()),auth=1, email = email,question=question,answer=str(hashlib.sha256(secret+answer+secret).hexdigest()))
            u.uid=model.next_user_id()
            u.put()
            log=model.Log(from_user=u,log_type="Signup",lid=model.next_log_id())
            log.put()
            log=model.Log(from_user=u,log_type="Login",lid=model.next_log_id())
            log.put()
            self.redirect('/?username=' + username)
            self.set_secure_cookie(str(username))
            self.set_password_cookie(str(username))
コード例 #3
0
ファイル: main.py プロジェクト: senyuuri/Google_Hardcode_2013
    def post(self):
        Username = self.read_secure_cookie('username')
        if not self.validate(Username):
            self.logout()
            self.redirect('/')
        have_error=False
        error=""
        title=self.request.get('title')
        content=self.request.get('content')
        price=self.request.get('price')
        expire=30
        '''
        if expire.month==12:
            expire=expire.replace(year=expire.year+1,month=1)
        else:
            expire=expire.replace(month=expire.month+1)
        '''
        Username = self.read_secure_cookie('username')
        

        if not valid_price(price):
            error="That's not a vaild price"
            self.render("add_post.html",title=title,content=content,error=error,PageTitle="Add Items")
        
        elif title and content:
            u=db.GqlQuery('SELECT * FROM User WHERE name=:1',Username)
            user = u[0]
            p=model.Post(title=title,content=content,user=user,price=int(price),like=0,expire=expire,strcontent=str(title)+str(content))
            p.pid=model.next_post_id()
            p.put()
            log=model.Log(from_user=user,log_type="Add_Item",relevant_post=p,lid=model.next_log_id())
            log.put()
            self.redirect('/')
        '''
コード例 #4
0
ファイル: main.py プロジェクト: senyuuri/Google_Hardcode_2013
 def get(self):
     Username=self.read_secure_cookie('username')
     u=db.GqlQuery('SELECT * FROM User WHERE name=:1',Username)
     user = u[0]
     log=model.Log(from_user=user,log_type="Logout",lid=model.next_log_id())
     log.put()
     self.logout()
     self.redirect('/')
コード例 #5
0
ファイル: main.py プロジェクト: senyuuri/Google_Hardcode_2013
    def post(self):
        username = self.request.get('username')
        password = self.request.get('password')

        u = model.User.login(username, password)
        if u:
            self.login(u.name)
            log=model.Log(from_user=u,log_type="Login",lid=model.next_log_id())
            log.put()
            self.redirect('/?username='******'Invalid login'
            self.render('login-form.html', error = msg,PageTitle="Login")
コード例 #6
0
ファイル: main.py プロジェクト: senyuuri/Google_Hardcode_2013
    def post(self):
        username=self.read_secure_cookie('username')
        answer=self.request.get("answer")
        user=db.GqlQuery("SELECT * FROM User WHERE name = :1",username).get()
        if not answer:
            error_answer="Please enter your answer"
            self.render("reset_password_2.html",username=username,question=user.question,error_answer=error_answer)
        if str(hashlib.sha256(secret+answer+secret).hexdigest())!=user.answer:
            error="Answer NOT correct"
            self.render("reset_password_2.html",username=username,question=user.question,error_answer=error)
        else:
            password=self.request.get("password")
            verify=self.request.get('verify')
            have_error=False

            params = dict(username = username,question=user.question,answer=answer)

            if not valid_password(password):
                params['error_password'] = "******"
                have_error = True
            elif password != verify:
                params['error_verify'] = "Your passwords didn't match."
                have_error = True

            if have_error:
                self.render("reset_password_2.html",**params)
            else:
                user.pw=str(hashlib.sha256(secret+password+secret).hexdigest())
                user.put()
                log=model.Log(from_user=user,log_type="Reset_Password",lid=model.next_log_id())
                log.put()
                sender_email="Metallica_Project [email protected]"
                mailbody=("""
Dear """+user.name+""": 

You have changed your password. Please reset your password if this is not your own action.

Please let us know if you have any queries.

Regards,
The Metallica Team
""")
                mail.send_mail(sender=sender_email,
                              to=user.email,
                              subject="Your password has been reset!",
                              body=mailbody)
                self.redirect('/')
コード例 #7
0
ファイル: main.py プロジェクト: senyuuri/Google_Hardcode_2013
 def post(self,pid):
     
     Username = self.read_secure_cookie("username")
     if not self.validate(Username):
         self.logout()
         self.redirect('/')
     u=db.GqlQuery('SELECT * FROM User WHERE name=:1',Username)
     user = u[0]
     title=self.request.get("title")
     content=self.request.get('content')
     price=self.request.get('price')
     #pid=self.request.get("post_id")
     if title and content:
         p=db.GqlQuery("SELECT * FROM Post WHERE pid =:1",int(pid))
         acc=p.get()
         model.update_post(acc.key(),title,content,int(price))
         log=model.Log(from_user=user,log_type="Edit_Item",relevant_post=acc,lid=model.next_log_id())
         log.put()
         self.redirect("/")
     else:
         error="title and content please"
         self.render("edit_post.html",title=title,user=Username, content=content,price=price,error=error,PageTitle="Edit a Post")