def _loginuser(): app.logger.debug('** SWING_CMS ** - Login') try: # Validate if the user has a Valid Session and Redirects response = isUserLoggedInRedirect('loginuser', 'jsonResponse') if response is not None: return response # Login Process # Retrieve the uid from the JWT idToken idToken = request.json['idToken'] decoded_token = auth.verify_id_token(idToken) usremail = decoded_token['email'] uid = decoded_token['uid'] if usremail != '*****@*****.**' else '126-Administrator' # Search for the user in the DB. user = User.query.filter_by(uid = uid).first() if user is None: # Retrieve Firebase's User info fbUser = auth.get_user(uid) # User is not registered on DB. Insert user in DB. user = User() user.uid = uid user.email = fbUser.email user.name = fbUser.display_name user.phonenumber = fbUser.phone_number user.datecreated = dt.now(tz.utc) user.cmuserid = '126-' + user.name.strip().upper()[0:1] + user.datecreated.strftime('-%y%m%d-%H%M%S') db.session.add(user) db.session.commit() db.session.refresh(user) # Add User Role user_role = CatalogUserRoles.query.filter_by(name_short='usr').first() user_userxrole = UserXRole() user_userxrole.user_id = user.id user_userxrole.user_role_id = user_role.id db.session.add(user_userxrole) db.session.commit() app.logger.info('** SWING_CMS ** - LoginUser added: {}'.format(user.id)) # Create User Session createLoginSession(user) # Return Session Cookie # Set URL depending on role url = getUserRedirectURL(user, 'loginuser') response = createCookieSession(idToken, 'redirectURL', url) return response except Exception as e: app.logger.error('** SWING_CMS ** - LoginUser Error: {}'.format(e)) return jsonify({ 'status': 'error' })
def register(): form = FormUser() if form.validate_on_submit(): user = User() user.name = form.name.data user.login = form.login.data user.email = form.email.data user.password = generate_password_hash(form.password.data) db.session.add(user) db.session.commit() return redirect("/users") return render_template("add_user.html", form=form)