fixed some problems with admin no GAE, still readonly
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.1 (2012-08-29 10:27:58) rc4
|
Version 2.00.1 (2012-08-29 15:09:03) rc4
|
||||||
|
|||||||
@@ -51,12 +51,12 @@ def log_progress(app,mode='EDIT',filename=None,progress=0):
|
|||||||
progress_file = os.path.join(apath(app, r=request), 'progress.log')
|
progress_file = os.path.join(apath(app, r=request), 'progress.log')
|
||||||
now = str(request.now)[:19]
|
now = str(request.now)[:19]
|
||||||
if not os.path.exists(progress_file):
|
if not os.path.exists(progress_file):
|
||||||
open(progress_file,'w').write('[%s] START\n' % now)
|
safe_open(progress_file,'w').write('[%s] START\n' % now)
|
||||||
if filename:
|
if filename:
|
||||||
open(progress_file,'a').write('[%s] %s %s: %s\n' % (now,mode,filename,progress))
|
safe_open(progress_file,'a').write('[%s] %s %s: %s\n' % (now,mode,filename,progress))
|
||||||
|
|
||||||
def safe_open(a,b):
|
def safe_open(a,b):
|
||||||
if DEMO_MODE and 'w' in b:
|
if DEMO_MODE and ('w' in b or 'a' in b):
|
||||||
class tmp:
|
class tmp:
|
||||||
def write(self,data): pass
|
def write(self,data): pass
|
||||||
return tmp()
|
return tmp()
|
||||||
@@ -455,11 +455,13 @@ def delete():
|
|||||||
def enable():
|
def enable():
|
||||||
app = get_app()
|
app = get_app()
|
||||||
filename = os.path.join(apath(app, r=request),'DISABLED')
|
filename = os.path.join(apath(app, r=request),'DISABLED')
|
||||||
if os.path.exists(filename):
|
if is_gae:
|
||||||
|
return SPAN(T('Not supported'),_style='color:yellow')
|
||||||
|
elif os.path.exists(filename):
|
||||||
os.unlink(filename)
|
os.unlink(filename)
|
||||||
return SPAN(T('Disable'),_style='color:green')
|
return SPAN(T('Disable'),_style='color:green')
|
||||||
else:
|
else:
|
||||||
open(filename,'wb').write(time.ctime())
|
safe_open(filename,'wb').write(time.ctime())
|
||||||
return SPAN(T('Enable'),_style='color:red')
|
return SPAN(T('Enable'),_style='color:red')
|
||||||
|
|
||||||
def peek():
|
def peek():
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ if request.env.web2py_runtime_gae:
|
|||||||
session_db = DAL('gae')
|
session_db = DAL('gae')
|
||||||
session.connect(request, response, db=session_db)
|
session.connect(request, response, db=session_db)
|
||||||
hosts = (http_host, )
|
hosts = (http_host, )
|
||||||
|
is_gae = True
|
||||||
|
else:
|
||||||
|
is_gae = False
|
||||||
|
|
||||||
if request.env.http_x_forwarded_for or request.is_https:
|
if request.env.http_x_forwarded_for or request.is_https:
|
||||||
session.secure()
|
session.secure()
|
||||||
@@ -27,7 +30,7 @@ try:
|
|||||||
raise HTTP(200, T('admin disabled because no admin password'))
|
raise HTTP(200, T('admin disabled because no admin password'))
|
||||||
except IOError:
|
except IOError:
|
||||||
import gluon.fileutils
|
import gluon.fileutils
|
||||||
if request.env.web2py_runtime_gae:
|
if is_gae:
|
||||||
if gluon.fileutils.check_credentials(request):
|
if gluon.fileutils.check_credentials(request):
|
||||||
session.authorized = True
|
session.authorized = True
|
||||||
session.last_time = time.time()
|
session.last_time = time.time()
|
||||||
|
|||||||
+4
-2
@@ -14,6 +14,7 @@ FOR INTERNAL USE ONLY
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import thread
|
import thread
|
||||||
|
import logging
|
||||||
from fileutils import read_file
|
from fileutils import read_file
|
||||||
|
|
||||||
cfs = {} # for speed-up
|
cfs = {} # for speed-up
|
||||||
@@ -34,15 +35,16 @@ def getcfs(key, filename, filter=None):
|
|||||||
This is used on Google App Engine since pyc files cannot be saved.
|
This is used on Google App Engine since pyc files cannot be saved.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
|
logging.info(filename)
|
||||||
t = os.stat(filename).st_mtime
|
t = os.stat(filename).st_mtime
|
||||||
except OSError:
|
except OSError:
|
||||||
return filter()
|
return filter() if callable(filter) else ''
|
||||||
cfs_lock.acquire()
|
cfs_lock.acquire()
|
||||||
item = cfs.get(key, None)
|
item = cfs.get(key, None)
|
||||||
cfs_lock.release()
|
cfs_lock.release()
|
||||||
if item and item[0] == t:
|
if item and item[0] == t:
|
||||||
return item[1]
|
return item[1]
|
||||||
if not filter:
|
if not callable(filter):
|
||||||
data = read_file(filename)
|
data = read_file(filename)
|
||||||
else:
|
else:
|
||||||
data = filter()
|
data = filter()
|
||||||
|
|||||||
+1
-1
@@ -4329,9 +4329,9 @@ class GoogleDatastoreAdapter(NoSQLAdapter):
|
|||||||
|
|
||||||
def select_raw(self,query,fields=None,attributes=None):
|
def select_raw(self,query,fields=None,attributes=None):
|
||||||
db = self.db
|
db = self.db
|
||||||
args_get = attributes.get
|
|
||||||
fields = fields or []
|
fields = fields or []
|
||||||
attributes = attributes or {}
|
attributes = attributes or {}
|
||||||
|
args_get = attributes.get
|
||||||
new_fields = []
|
new_fields = []
|
||||||
for item in fields:
|
for item in fields:
|
||||||
if isinstance(item,SQLALL):
|
if isinstance(item,SQLALL):
|
||||||
|
|||||||
+4
-1
@@ -429,7 +429,10 @@ class translator(object):
|
|||||||
self.request = request
|
self.request = request
|
||||||
self.folder = request.folder
|
self.folder = request.folder
|
||||||
self.langpath = ospath.join(self.folder,'languages')
|
self.langpath = ospath.join(self.folder,'languages')
|
||||||
self.filenames = set(os.listdir(self.langpath))
|
try:
|
||||||
|
self.filenames = set(os.listdir(self.langpath))
|
||||||
|
except:
|
||||||
|
self.filenames = set()
|
||||||
self.http_accept_language = request.env.http_accept_language
|
self.http_accept_language = request.env.http_accept_language
|
||||||
# self.cache # filled in self.force()
|
# self.cache # filled in self.force()
|
||||||
# self.accepted_language = None # filled in self.force()
|
# self.accepted_language = None # filled in self.force()
|
||||||
|
|||||||
Reference in New Issue
Block a user