def signin(db): session = bottle.request.environ.get('beaker.session') username = bottle.request.forms.username.strip().lower() email = bottle.request.forms.email.strip().lower() username_re = re.compile(r'^[_0-9A-Za-z]{5,20}$') email_re = re.compile(r'^[a-zA-Z0-9._%-+]+@[a-zA-Z0-9._%-]+.[a-zA-Z]{2,6}$') password = bottle.request.forms.password if not username_re.match(username): return {'ok':False,'msg':u"Имя пользователя должно быть не менее 5 и \ не более 20 символов, и содержать латинские буквы и цифры и знак подчеркивания"} if not email_re.match(email): return {'ok':False, 'msg': u"Неправильный формат e-mail"} if len(password) < 6: return {'ok':False,'msg':u"Пароль должен содержать не менее 7 символов"} user = db.query(User).filter(or_(User.name==username,User.email==email)).first() if not user: new_user = User(name = username, password=hashlib.sha256(password).hexdigest(), email = email) new_user_notebook = Notebook(name=u"Блокнот", deflt=True) new_user_notebook.user = new_user new_note = Note(text=u"Добро пожаловать в Notebook!", title=u"Первая заметка"); new_user_notebook.notes.append(new_note); db.add(new_user) db.commit() session['user_id'] = new_user.id return {'ok':True, 'msg':u"Пользователь {0} создан.".format(new_user.name)} else: return {'ok':False,'msg':u"Пользователь с таким именем или адресом e-mail уже существует"}
os.unlink('database.sqlite') except OSError: pass Base.metadata.create_all(db.engine) def pwd_hash(t): return hashlib.sha256(t).hexdigest() Session = sessionmaker(bind=db.engine) session = Session() admin_user = User(name="admin", admin=True, password=hashlib.sha256("admin").hexdigest(), email="*****@*****.**" ) ntb = Notebook( name=u"Блокнот", deflt=True, published=False) ntb.notes = [ Note(title=u'Заголовок заметки', text=u"Добро пожаловать, admin") ] ntb.user = admin_user session.add(admin_user) session.commit() #fill database f = open('/usr/share/dict/words') allwords = [] users = [] for a in f: if 7 < len(a) < 10: allwords.append(a.strip().lower()) if len(a) == int(random.uniform(8,1500)): if(len(a) < 12): users.append(a.strip().lower()) f.close()