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
|
if request.env.web2py_runtime_gae:
db = DAL('gae')
session.connect(request,response,db=db)
else:db = DAL("sqlite://storage.db")
db.define_table('image',
Field('file', 'upload', requires=[IS_NOT_EMPTY(error_message="Please select a file to upload"), IS_UPLOAD_FILENAME(extension='ta', error_message="Must be a Turtle Art file")]),
Field('title', requires=[IS_NOT_EMPTY(error_message="You must include a title"), IS_NOT_IN_DB(db, 'image.title', error_message="Title is already taken")]),
Field('image_id'),
Field('creator', requires=IS_NOT_EMPTY(error_message="You must include your name")),
Field('description', 'text'),
Field('views'),
Field('newimage', 'upload', requires=[IS_NOT_EMPTY(error_message="Please select a image to upload"), IS_UPLOAD_FILENAME(extension='png', error_message="Must be a PNG image")]))
db.define_table('comment',
Field('image_id', db.image),
Field('author'),
Field('body', 'text'))
from gluon.tools import Auth
auth = Auth(globals(),db)
auth_table = db.define_table(
auth.settings.table_user_name,
Field('username', length=128, default="", unique = True),
Field('email', length=128, default="", unique=True),
Field('password', 'password', length=256,
readable=False, label='Password'),
Field('registration_key', length=128, default= "",
writable=False, readable=False),
Field('reset_password_key', length=128, default="",readable=False))
db.comment.image_id.requires = IS_IN_DB(db, db.image.image_id, '%(title)s')
db.comment.author.requires = IS_NOT_EMPTY()
db.comment.body.requires = IS_NOT_EMPTY()
auth_table.username.requires = [IS_EXPR('str(value).count(" ") == 0', error_message='Username must be one word'), IS_NOT_IN_DB(db, auth_table.username)]
auth_table.password.requires = [CRYPT()]
auth_table.email.requires = [
IS_EMAIL(error_message=auth.messages.invalid_email),
IS_NOT_IN_DB(db, auth_table.email)]
auth.settings.table_user = auth_table
auth.define_tables()
from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'gae'
mail.settings.sender = 'turtlesite.authentication@gmail.com'
mail.settings.login = None
auth.settings.mailer = mail
|