Esempio n. 1
0
    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('/')
Esempio n. 2
0
    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))
Esempio n. 3
0
    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('/')
        '''
Esempio n. 4
0
 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('/')
Esempio n. 5
0
    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")
Esempio n. 6
0
    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('/')
Esempio n. 7
0
 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")