I have the system setup, thanks to the help of a polish friend, and it seems to successfully register new users into the database. The issue lies in my login. It seems that the data itself it saved, but I notice that the password is set a string. It is not hashed. I think this is where the problem is, but I could be totally wrong. So is there something I am doing wrong here? I am running the latest trunk code. The following is the db.py file. ----- #!/usr/bin/python # -*- coding: utf-8 -*- import datetime from gluon.tools import Mail, Auth, Recaptcha from gluon.tools import Crud # System Variables now = datetime.date.today() #Create the database connection db = SQLDB('sqlite://interestID.db') mail=Mail() ## specify your SMTP server mail.settings.server = 'smtp.gmail.com:25' ## specify your email address mail.settings.sender = 'encomp...@gmail.com' ## optional: specify the username and password for SMTP mail.settings.login = 'encomp...@------' ## instantiate the Auth class (or your derived class) crud = Crud(globals(),db) ## optional: require email verification for registration # auth.settings.mailer = mail ## optional: if you require captcha verification for registration # auth.settings.captcha = Recaptcha(request,public_key='RECAPTCHA_PUBLIC_KEY',private_key='RECAPTCHA_PRIVATE_KEY') # Create the user table db.define_table('users', SQLField('nickname', length=25), SQLField('email', 'string'), SQLField('first_name', 'string'), SQLField('last_name', 'string'), SQLField('password', 'password'), SQLField('created', 'date', default=now), SQLField('deleted', 'string'), SQLField('verified', 'boolean', default= False), SQLField('position', 'string'), SQLField('profile_text', 'text'), SQLField('profile_photo', 'upload', default=''), SQLField('homepage', 'string'), SQLField('event','string'), SQLField('registration_key', length=128, writable=False, readable=False), )
#Setup the users table db.users.nickname.requires = [IS_NOT_IN_DB(db, 'users.nickname')] db.users.email.requires = [IS_EMAIL(), IS_NOT_IN_DB(db, 'users.email')] db.users.first_name.requires = IS_NOT_EMPTY() db.users.last_name.requires = IS_NOT_EMPTY() db.users.password.requires = IS_NOT_EMPTY() db.users.position.requires = IS_NOT_EMPTY() db.users.nickname.requires = IS_NOT_EMPTY() class MyAuth(Auth): def __init__(self, environment, T, db = None): "Initialise parent class & make any necessary modifications" Auth.__init__(self,environment,db) self.messages.logged_in = T("Logged in") self.messages.email_sent = T("Email sent") self.messages.email_verified = T("Email verified") self.messages.logged_out = T("Logged out") self.messages.registration_successful = T("Registration successful") self.messages.invalid_email = T("Invalid email") self.messages.invalid_login = T("Invalid login") self.messages.verify_email_subject = T("Password verify") self.messages.username_sent = T("Your username was emailed to you") self.messages.new_password_sent = T("A new password was emailed to you") self.messages.invalid_email = T("Invalid email") self.messages.password_changed = T("Password changed") self.messages.retrieve_username=str(T("Your username is"))+": %(username)s" self.messages.retrieve_username_subject="Username retrieve" self.messages.retrieve_password=str(T("Your password is"))+": %(password)s" self.messages.retrieve_password_subject = T("Password retrieve") self.messages.profile_updated = T("Profile updated") #Use my own table instead of the default table. self.settings.table_user=db.users #Create groups for the authenticated users #The current list is not real, but just some ideas to fill space. #positions = {'Administrator' : 'Add and Remove users. Creates events.', # 'Vistor' : 'Can view information about events and tags.', # 'Speaker' : 'Can create special tags and schedules', # 'Guest' : 'Can view information about the event.', # 'Staff' : 'Can edit the room and booth locations and information', # 'Booth' : 'Can create a booth profile and add prizes', # 'Room' : 'Can create a schedule for the room'} #for role_id in positions.keys(): # group_id = auth.add_group(role = role_id, description = positions[role_id]) auth = MyAuth(globals(), T, db) ## ask it to create all necessary tables auth.define_tables() db.define_table('tagCloud', SQLField('creator','string'), SQLField('name','string'), SQLField('description','text'), SQLField('created','date', default=now), SQLField('logo_picture','upload', default='')) #Setup the tagCloud table db.tagCloud.creator.requires = IS_IN_DB(db, 'users.id', 'users.nickname') db.tagCloud.name.requires = IS_NOT_EMPTY() db.tagCloud.logo_picture.requires = IS_NOT_EMPTY() db.define_table('tag', SQLField('tag_id',db.tagCloud), SQLField('personalRating','integer')) db.tag.tag_id.requires = IS_IN_DB(db, 'tagCloud.id', 'tagCloud.name') db.define_table('emailMessages', SQLField('from_nickname','string'), SQLField('to_nickname','string'), SQLField('recieved','date', default=now), SQLField('subject','string'), SQLField('email_text','text'), SQLField('thread', 'integer')) #Setup the emailMessages table db.emailMessages.subject.requires = [IS_NOT_EMPTY()] db.emailMessages.from_nickname.requires = IS_IN_DB(db,'users.id','users.nickname') db.emailMessages.to_nickname.requires = IS_IN_DB(db,'users.id','users.nickname') db.emailMessages.recieved.requires = [IS_NOT_EMPTY()] db.emailMessages.email_text.requires = [IS_NOT_EMPTY()] #A building can have many rooms db.define_table('rooms', SQLField('roomName','string'), SQLField('capacity','integer'), SQLField('description','text'), SQLField('projector','boolean', default= False), SQLField('whiteboard','boolean', default= False), SQLField('amps','boolean', default= False), SQLField('tables','boolean', default= False), SQLField('chairs','boolean', default= False), SQLField('wInternet','boolean', default= False), SQLField('width','integer', default=0), SQLField('length','integer', default=0), SQLField('scale','string', default="meters"), SQLField('building','string')) #Creating an event db.define_table('events', SQLField('eventName','string'), SQLField('address','string'), SQLField('phone','string'), SQLField('email','string'), SQLField('logo','string'), SQLField('startDate', 'date'), SQLField('endDate','date')) #An event can have many rooms db.define_table('neededRooms', SQLField('event','string'), SQLField('room','string')) #A room can have many sessions #But those times should not over lap db.define_table('session', SQLField('name','string'), SQLField('date','string'), SQLField('startTime','string'), SQLField('endTime','string'), SQLField('room','string')) #A speaker can give many sessions (talk,song,speech, etc...) db.define_table('speaker', SQLField('name','string'), SQLField('session','string'), SQLField('subject','string'), SQLField('description','text'), SQLField('logo','upload')) #A user can attend many sessions db.define_table('attendance', SQLField('nickname','string'), SQLField('session','string')) --- Hope you can help. :) Regards, Jason Brower --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---