From dev-return-7786-archive-asf-public=cust-asf.ponee.io@airflow.apache.org Thu Mar 7 10:33:12 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id DC88D180654 for ; Thu, 7 Mar 2019 11:33:11 +0100 (CET) Received: (qmail 39035 invoked by uid 500); 7 Mar 2019 10:33:10 -0000 Mailing-List: contact dev-help@airflow.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@airflow.apache.org Delivered-To: mailing list dev@airflow.apache.org Received: (qmail 39018 invoked by uid 99); 7 Mar 2019 10:33:10 -0000 Received: from mail-relay.apache.org (HELO mailrelay1-lw-us.apache.org) (207.244.88.152) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Mar 2019 10:33:10 +0000 Received: from themisto.localdomain (231.25.169.217.in-addr.arpa [217.169.25.231]) by mailrelay1-lw-us.apache.org (ASF Mail Server at mailrelay1-lw-us.apache.org) with ESMTPSA id D7DC41249 for ; Thu, 7 Mar 2019 10:33:09 +0000 (UTC) From: Ash Berlin-Taylor Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: custom auth Date: Thu, 7 Mar 2019 10:33:07 +0000 References: To: dev@airflow.apache.org In-Reply-To: Message-Id: X-Mailer: Apple Mail (2.3273) The problem is you are creating a new User record, which maps to an = INSERT statment every request/log in. Instead you should query first to find the record. Something like this: user =3D session.query(models.User).filter( models.User.username =3D=3D username).first() if not user: user =3D models.User(...) session.merge(user) flask_login.login_user(user) > On 6 Mar 2019, at 22:01, Sudhir Babu Pothineni = wrote: >=20 > Hi Devs, >=20 > We have our own users database, I am doign liek this to authenticate: > try: > cred =3D authenticate(session, username, password) > if cred: > user =3D models.User( > username=3Dusername, > is_superuser=3DFalse) > user.is_active=3DTrue >=20 > session.merge(user) > flask_login.login_user(user) > session.commit() > return redirect(request.args.get("next") or = url_for("admin.index")) > except AuthenticationError: > flash("Incorrect login details") > return self.render('airflow/login.html', > title=3D"Airflow - Login", > form=3Dform) > but its failing if user already exists, is there any alternative to = check existing user and keep forwarding? >=20 > IntegrityError: (sqlite3.IntegrityError) column username is not unique = [SQL: u'INSERT INTO users (username, email, superuser) VALUES (?, ?, = ?)'] [parameters: (u'testuser', None, 0)] (Background on this error at: = http://sqlalche.me/e/gkpj) >=20 >=20