def db_put_user(post, roles, token): user = DBSession.query(Users).filter(or_(Users.username == post['username'], Users.email == post['email'])).all() if not user: ts = time.time() DBSession.autoflush = False addprofiles = Profiles(post['fullname'], '', '', '') usersactivation = UsersActivation(token, ts) u = Users(post['username'], post['email'], hash_password(post['password']), ts, 1, addprofiles, usersactivation=usersactivation) DBSession.add(u) DBSession.flush() DBSession.refresh(u) for e in roles: ru = RolesUsers(u.id, e) DBSession.add(ru) DBSession.flush() try: transaction.commit() except: DBSession.rollback() return False else: return True else: return 3
def new_user2(post, roles, useavatars): ts = time.time() # Добавляем запись DBSession.autoflush = False if useavatars == 1 and "avatarsource" in post: # Если используем аваторы addprofiles = Profiles(post["fullname"], post["avatarsource"], post["avatarsize1"], post["avatarsize2"]) else: # Если нет addprofiles = Profiles(post["fullname"]) u = Users(post["username"], post["email"], hash_password(post["password"]), ts, 1, addprofiles) DBSession.add(u) DBSession.flush() DBSession.refresh(u) # Добавляем роли for e in roles: ru = RolesUsers(u.id, e) DBSession.add(ru) DBSession.flush() try: transaction.commit() except: DBSession.rollback() return False else: return u
def edit_user2(post, roles, useavatars): # Обновлеяем запись obj = get_user2(post["id"]) if not obj: return False obj.username = post["username"] obj.email = post["email"] obj.profiles.fullname = post["fullname"] if useavatars == 1 and "avatarsource" in post: obj.profiles.avatar1 = post["avatarsource"] obj.profiles.avatar2 = post["avatarsize1"] obj.profiles.avatar3 = post["avatarsize2"] if post["password"] != "": obj.password = hash_password(post["password"]) # Удаляем роли DBSession.query(RolesUsers).filter(RolesUsers.user_id == post["id"]).delete() # Добавляем роли for e in roles: ru = RolesUsers(post["id"], e) DBSession.add(ru) try: transaction.commit() except: DBSession.rollback() return False else: return True
def set_userpassword(post): setopt(Users, 'check_password', Users_check_password) user = DBSession.query(Users).filter(Users.id == post['userid']).one() if user.check_password(post['oldpassword']): user.password = hash_password(post['password']) try: transaction.commit() except: DBSession.rollback() return False else: return 1 else: return 2