-
Notifications
You must be signed in to change notification settings - Fork 0
/
base.py
83 lines (66 loc) · 2.47 KB
/
base.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import os
import urllib
import logging
from google.appengine.ext import db
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from models import File, Revision, FilePermissions
import permissions
ACCESS_NONE = 0
ACCESS_READ = 1
ACCESS_WRITE = 2
SUGGESTIONS_USER = "SUGGESTIONS"
class BasePage(webapp.RequestHandler):
def log_info(self, msg):
logging.info(msg)
def get_current_user(self):
return users.get_current_user()
def check_user(self, redirect=True):
user = self.get_current_user()
if user:
return True
else:
if redirect:
self.redirect(users.create_login_url(self.request.uri))
return False
def create_permission(self, file, user, access):
permissions.create_permission(file, user, access)
def get_file_permission(self, file):
return permissions.get_file_permission(file, self.get_current_user())
def create_file(self, filename, user=None):
file = File()
if user is None:
user = self.get_current_user()
file.author = user
file.name = filename
key = file.put()
self.create_permission(file, file.author, ACCESS_WRITE)
#self.redirect('/file?' + urllib.urlencode({'id': key}))
return key
def get_file(self, id):
query = File.gql("WHERE __key__ = :1", db.Key(id))
entities = query.fetch(1)
if len(entities) > 0:
file = entities[0]
#if self.get_file_permission(file):
self.log_info("found file id=" + id)
return file
self.log_info("file not found")
return None
def get_revision_by_id(self, id):
rev_key = db.Key(id)
query = Revision.gql("WHERE __key__ = :1", db.Key(id))
entities = query.fetch(1)
if len(entities) > 0:
rev = entities[0]
return rev
return None
def web_version(self):
return True
def get_template_path(self, filename):
template_path = os.path.join(os.path.dirname(__file__), "templates")
#template_path = os.path.join(template_path, "mobile")
template_path = os.path.join(template_path, "web")
#template_path = os.path.join(template_path, "json")
return os.path.join(template_path, filename)