#2184 Refactor user existence code in API and UI
Closed 6 years ago by pingou. Opened 7 years ago by akasurde.
akasurde/pagure miscfix  into  master

file modified
+14 -9
@@ -90,9 +90,7 @@ 

      httpcode = 200

      output = {}

  

-     user = pagure.lib.search_user(SESSION, username=username)

-     if not user:

-         raise pagure.exceptions.APIError(404, error_code=APIERROR.ENOUSER)

+     user = _get_user(username=username)

  

      repopage = flask.request.args.get('repopage', 1)

      try:
@@ -203,9 +201,7 @@ 

      """

      date_format = flask.request.args.get('format', 'isoformat')

  

-     user = pagure.lib.search_user(SESSION, username=username)

-     if not user:

-         raise pagure.exceptions.APIError(404, error_code=APIERROR.ENOUSER)

+     user = _get_user(username=username)

  

      stats = pagure.lib.get_yearly_stats_user(

          SESSION,
@@ -310,9 +306,7 @@ 

          raise pagure.exceptions.APIError(

              400, error_code=APIERROR.ENOCODE, error=str(err))

  

-     user = pagure.lib.search_user(SESSION, username=username)

-     if not user:

-         raise pagure.exceptions.APIError(404, error_code=APIERROR.ENOUSER)

+     user = _get_user(username=username)

  

      activities = pagure.lib.get_user_activity_day(SESSION, user, date)

      js_act = []
@@ -353,3 +347,14 @@ 

          )

      )

      return jsonout

+ 

+ 

+ def _get_user(username=None):

+     """ Check user is valid or not

+     """

+     user = None

+     try:

+         user = pagure.lib.get_user(SESSION, username)

+     except pagure.exceptions.PagureException:

+         raise pagure.exceptions.APIError(404, error_code=APIERROR.ENOUSER)

+     return user

file modified
+22 -41
@@ -72,10 +72,7 @@ 

  def index_auth():

      """ Front page for authenticated user.

      """

-     user = pagure.lib.search_user(SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'No user `%s` found, re-login maybe?' % (

-             flask.g.fas_user.username))

+     user = _get_user(username=flask.g.fas_user.username)

  

      repopage = flask.request.args.get('repopage', 1)

      try:
@@ -275,9 +272,7 @@ 

  def view_user(username):

      """ Front page of a specific user.

      """

-     user = pagure.lib.search_user(SESSION, username=username)

-     if not user:

-         flask.abort(404, 'No user `%s` found' % username)

+     user = _get_user(username=username)

  

      repopage = flask.request.args.get('repopage', 1)

      try:
@@ -348,9 +343,7 @@ 

  def view_user_requests(username):

      """ Shows the pull-requests for the specified user.

      """

-     user = pagure.lib.search_user(SESSION, username=username)

-     if not user:

-         flask.abort(404, 'No user `%s` found' % username)

+     user = _get_user(username=username)

  

      requests = pagure.lib.get_pull_request_of_user(

          SESSION,
@@ -378,9 +371,7 @@ 

      if not APP.config.get('ENABLE_TICKETS', True):

          flask.abort(404, 'Tickets have been disabled on this pagure instance')

  

-     user = pagure.lib.search_user(SESSION, username=username)

-     if not user:

-         flask.abort(404, 'No user `%s` found' % username)

+     user = _get_user(username=username)

  

      return flask.render_template(

          'user_issues.html',
@@ -466,10 +457,7 @@ 

          return flask.redirect(

              flask.url_for('auth_login', next=flask.request.url))

  

-     user = pagure.lib.search_user(

-         SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'User not found')

+     user = _get_user(username=flask.g.fas_user.username)

  

      form = pagure.forms.UserSettingsForm()

      if form.validate_on_submit():
@@ -513,10 +501,7 @@ 

          return flask.redirect(

              flask.url_for('auth_login', next=flask.request.url))

  

-     user = pagure.lib.search_user(

-         SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'User not found')

+     user = _get_user(username=flask.g.fas_user.username)

  

      form = pagure.forms.ConfirmationForm()

  
@@ -567,10 +552,7 @@ 

          return flask.redirect(

              flask.url_for('auth_login', next=flask.request.url))

  

-     user = pagure.lib.search_user(

-         SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'User not found')

+     user = _get_user(username=flask.g.fas_user.username)

  

      if len(user.emails) == 1:

          flask.flash(
@@ -618,10 +600,7 @@ 

          return flask.redirect(

              flask.url_for('auth_login', next=flask.request.url))

  

-     user = pagure.lib.search_user(

-         SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'User not found')

+     user = _get_user(username=flask.g.fas_user.username)

  

      form = pagure.forms.UserEmailForm(

          emails=[mail.email for mail in user.emails])
@@ -656,10 +635,7 @@ 

          return flask.redirect(

              flask.url_for('auth_login', next=flask.request.url))

  

-     user = pagure.lib.search_user(

-         SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'User not found')

+     user = _get_user(username=flask.g.fas_user.username)

  

      form = pagure.forms.UserEmailForm()

      if form.validate_on_submit():
@@ -697,10 +673,7 @@ 

          return flask.redirect(

              flask.url_for('auth_login', next=flask.request.url))

  

-     user = pagure.lib.search_user(

-         SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'User not found')

+     user = _get_user(username=flask.g.fas_user.username)

  

      form = pagure.forms.UserEmailForm()

      if form.validate_on_submit():
@@ -772,10 +745,7 @@ 

              flask.url_for('auth_login', next=flask.request.url))

  

      # Ensure the user is in the DB at least

-     user = pagure.lib.search_user(

-         SESSION, username=flask.g.fas_user.username)

-     if not user:

-         flask.abort(404, 'User not found')

+     user = _get_user(username=flask.g.fas_user.username)

  

      acls = pagure.lib.get_acls(

          SESSION, restrict=APP.config.get('CROSS_PROJECT_ACLS'))
@@ -845,3 +815,14 @@ 

                  'error')

  

      return flask.redirect(flask.url_for('.user_settings'))

+ 

+ 

+ def _get_user(username=None):

+     """ Check if user exists or not

+     """

+     user = None

+     try:

+         user = pagure.lib.get_user(SESSION, username)

+     except pagure.exceptions.PagureException as e:

+         flask.abort(404, e.message)

+     return user

We could/should use pagure.lib.get_user() instead I think

rebased

7 years ago

rebased

7 years ago

rebased

7 years ago

Now that https://pagure.io/pagure/pull-request/2180 got merge, could we try to build on their change?

Rebase and a little adjusted in https://pagure.io/pagure/pull-request/2317 so closing this one :)

Thanks for the patch!

Pull-Request has been closed by pingou

6 years ago