def process_user_form(user_id=None): """ Create or edit a user. """ form = UserForm() user_contr = UserController() if not form.validate(): return render_template('/admin/create_user.html', form=form, message=gettext('Some errors were found')) role_user = Role.query.filter(Role.name == "user").first() if user_id is not None: # Edit a user user_contr.update({'id': user_id}, {'nickname': form.nickname.data, 'email': form.email.data, 'password': form.password.data, 'refresh_rate': form.refresh_rate.data}) user = user_contr.get(id=user_id) flash(gettext('User %(nick)s successfully updated', nick=user.nickname), 'success') else: # Create a new user user = user_contr.create(nickname=form.nickname.data, email=form.email.data, password=form.password.data, roles=[role_user], refresh_rate=form.refresh_rate.data, activation_key="") flash(gettext('User %(nick)s successfully created', nick=user.nickname), 'success') return redirect(url_for('admin.user_form', user_id=user.id))
def process_user_form(user_id=None): """ Create or edit a user. """ form = UserForm() user_contr = UserController() if not form.validate(): return render_template('/admin/create_user.html', form=form, message=gettext('Some errors were found')) if user_id is not None: # Edit a user user_contr.update({'id': user_id}, {'nickname': form.nickname.data, 'email': form.email.data, 'password': form.password.data, 'automatic_crawling': form.automatic_crawling.data}) user = user_contr.get(id=user_id) flash(gettext('User %(nick)s successfully updated', nick=user.nickname), 'success') else: # Create a new user (by the admin) user = user_contr.create(nickname=form.nickname.data, email=form.email.data, pwdhash=generate_password_hash(form.password.data), automatic_crawling=form.automatic_crawling.data, is_admin=False, is_active=True) flash(gettext('User %(nick)s successfully created', nick=user.nickname), 'success') return redirect(url_for('admin.user_form', user_id=user.id))
def process_user_form(user_id=None): """ Create or edit a user. """ form = UserForm() user_contr = UserController() if not form.validate(): return render_template('/admin/create_user.html', form=form, message=gettext('Some errors were found')) if user_id is not None: # Edit a user user_contr.update({'id': user_id}, { 'nickname': form.nickname.data, 'password': form.password.data, 'automatic_crawling': form.automatic_crawling.data }) user = user_contr.get(id=user_id) flash( gettext('User %(nick)s successfully updated', nick=user.nickname), 'success') else: # Create a new user (by the admin) user = user_contr.create( nickname=form.nickname.data, pwdhash=generate_password_hash(form.password.data), automatic_crawling=form.automatic_crawling.data, is_admin=False, is_active=True) flash( gettext('User %(nick)s successfully created', nick=user.nickname), 'success') return redirect(url_for('admin.user_form', user_id=user.id))
def populate_db(): db_create() ucontr = UserController() ccontr = CategoryController() fcontr = FeedController() acontr = ArticleController() ccontr = CategoryController() user1, user2 = [ ucontr.create(login=name, email="*****@*****.**" % name, password=name) for name in ["user1", "user2"] ] article_total = 0 for user in (user1, user2): for i in range(3): cat_id = None if i: cat_id = ccontr.create(user_id=user.id, name="category%d" % i).id feed = fcontr.create(link="feed%d" % i, user_id=user.id, category_id=cat_id, title="%s feed%d" % (user.login, i)) for j in range(3): entry = "%s %s article%d" % (user.login, feed.title, j) article_total += 1 acontr.create(entry_id=entry, link='http://test.te/%d' % article_total, feed_id=feed.id, user_id=user.id, category_id=cat_id, title=entry, content="content %d" % article_total)
def populate_db(): db_create() ucontr = UserController() ccontr = CategoryController() fcontr = FeedController() acontr = ArticleController() ccontr = CategoryController() user1, user2 = [ucontr.create(login=name, email="*****@*****.**" % name, password=name) for name in ["user1", "user2"]] article_total = 0 for user in (user1, user2): for i in range(3): cat_id = None if i: cat_id = ccontr.create(user_id=user.id, name="category%d" % i).id feed = fcontr.create(link="feed%d" % i, user_id=user.id, category_id=cat_id, title="%s feed%d" % (user.login, i)) for j in range(3): entry = "%s %s article%d" % (user.login, feed.title, j) article_total += 1 acontr.create(entry_id=entry, link='http://test.te/%d' % article_total, feed_id=feed.id, user_id=user.id, category_id=cat_id, title=entry, content="content %d" % article_total)
def test_password(self): passwd = 'test_password' ucontr = UserController() user = ucontr.create(login=passwd, password=passwd) self.assertNotEquals(passwd, user.password) self.assertTrue(ucontr.check_password(user, passwd)) self.assertFalse(ucontr.check_password(user, passwd * 2)) passwd *= 2 ucontr.update({'id': user.id}, {'password': passwd}) user = ucontr.get(id=user.id) self.assertNotEquals(passwd, user.password) self.assertTrue(ucontr.check_password(user, passwd)) self.assertFalse(ucontr.check_password(user, passwd * 2))
def oauth_callback(provider): # pragma: no cover if not current_user.is_anonymous: return redirect(url_for('home')) oauth = OAuthSignIn.get_provider(provider) social_id, username, email = oauth.callback() if social_id is None: flash('Authentication failed.') return redirect(url_for('home')) ucontr = UserController() try: user = ucontr.get(**{'%s_identity' % provider: social_id}) except NotFound: user = None if not user: user = ucontr.create(**{'%s_identity' % provider: social_id, 'login': username, 'email': email}) login_user_bundle(user) return redirect(url_for('home'))
def login(): if current_user.is_authenticated: return redirect(url_for('home')) if request.args.get('code'): code = request.args.get('code') data = { 'grant_type': 'authorization_code', 'client_id': conf.OPENIDC_CLIENT_ID, 'client_secret': conf.OPENIDC_CLIENT_SECRET, 'redirect_uri': url_for('login', _external=True), 'code': code } r = requests.post(conf.OPENIDC_TOKEN_ENDPOINT, data=data) tokens = r.json() if 'error' not in tokens: headers = { 'Authorization': 'Bearer ' + tokens['access_token'], } r = requests.post(conf.OPENIDC_USERINFO_ENDPOINT, headers=headers) userinfo = r.json() ucontr = UserController() try: user = ucontr.get(**{'external_id': userinfo['sub']}) ucontr.update({'id': user.id}, { 'nickname': userinfo['preferred_username'], 'email': userinfo['email'], }) except NotFound: user = ucontr.create(nickname=userinfo['preferred_username'], email=userinfo['email'], external_id=userinfo['sub'], is_active=True, is_api=True) login_user_bundle(user) return redirect(url_for('home')) auth = URL(conf.OPENIDC_AUTHORIZATION_ENDPOINT) auth = auth.with_query(client_id=conf.OPENIDC_CLIENT_ID, redirect_uri=url_for('login', _external=True), response_type='code', scope='openid profile email') return render_template('login.html', authorization=auth)
def process_user_form(user_id=None): """ Create or edit a user. """ form = UserForm() user_contr = UserController() if not form.validate(): return render_template( "/admin/create_user.html", form=form, message=gettext("Some errors were found"), ) if user_id is not None: # Edit a user user_contr.update( {"id": user_id}, { "nickname": form.nickname.data, "password": form.password.data, "automatic_crawling": form.automatic_crawling.data, }, ) user = user_contr.get(id=user_id) flash( gettext("User %(nick)s successfully updated", nick=user.nickname), "success") else: # Create a new user (by the admin) user = user_contr.create( nickname=form.nickname.data, password=form.password.data, automatic_crawling=form.automatic_crawling.data, is_admin=False, is_active=True, ) flash( gettext("User %(nick)s successfully created", nick=user.nickname), "success") return redirect(url_for("admin.user_form", user_id=user.id))
def oauth_callback(provider): # pragma: no cover if not current_user.is_anonymous: return redirect(url_for('home')) oauth = OAuthSignIn.get_provider(provider) social_id, username, email = oauth.callback() if social_id is None: flash('Authentication failed.') return redirect(url_for('home')) ucontr = UserController() try: user = ucontr.get(**{'%s_identity' % provider: social_id}) except NotFound: user = None if not user and not conf.OAUTH_ALLOW_SIGNUP: flash('Account creation is not allowed through OAuth.') return redirect(url_for('home')) elif not user: user = ucontr.create(**{'%s_identity' % provider: social_id, 'login': '******' % (provider, username), 'email': email}) login_user_bundle(user) return redirect(url_for('home'))
def process_user_form(user_id=None): """ Create or edit a user. """ form = UserForm() user_contr = UserController() if not form.validate(): return render_template('/admin/create_user.html', form=form, message=gettext('Some errors were found')) role_user = Role.query.filter(Role.name == "user").first() if user_id is not None: # Edit a user user_contr.update({'id': user_id}, { 'nickname': form.nickname.data, 'email': form.email.data, 'password': form.password.data, 'refresh_rate': form.refresh_rate.data }) user = user_contr.get(id=user_id) flash( gettext('User %(nick)s successfully updated', nick=user.nickname), 'success') else: # Create a new user user = user_contr.create(nickname=form.nickname.data, email=form.email.data, password=form.password.data, roles=[role_user], refresh_rate=form.refresh_rate.data, activation_key="") flash( gettext('User %(nick)s successfully created', nick=user.nickname), 'success') return redirect(url_for('admin.user_form', user_id=user.id))