#5404 error registering user-projects for users whose name has underscore

sf-1 (611)
Cory Johns
Dave Brondsema

Need to use the existing logic that uses their user id, if the username isn't valid for a project name.

File '/var/local/allura/ForgeWiki/forgewiki/templates/wiki/page_view.html', line 2 in top-level template code
  {% do g.register_forge_css('css/forge/hilite.css', compress=False) %}
File '/var/local/allura/ForgeWiki/forgewiki/templates/wiki/master.html', line 2 in top-level template code
  {% do g.register_app_css('css/wiki.css', compress=False) %}
File '/var/local/allura/Allura/allura/templates/jinja_master/master.html', line 94 in top-level template code
  {% block edit_box %}{% endblock %}
File '/var/local/allura/ForgeWiki/forgewiki/templates/wiki/master.html', line 5 in block "edit_box"
  {% if show_meta %}{% block wiki_meta %}{% endblock %}{% endif %}
File '/var/local/allura/ForgeWiki/forgewiki/templates/wiki/page_view.html', line 59 in block "wiki_meta"
  {{lib.gravatar(author, size=16)}}
File '/var/local/allura/Allura/allura/templates/jinja_master/lib.html', line 15 in template
  {% if user.icon_url() %}
File '<string>', line 2 in icon_url
File '/var/local/allura/Allura/allura/lib/decorators.py', line 196 in memoize
  result = func(*args)
File '/var/local/allura/Allura/allura/model/auth.py', line 484 in icon_url
  private_project = self.private_project()
File '/var/local/allura/Allura/allura/model/auth.py', line 590 in private_project
  p = n.register_project('u/' + self.username, user=self, user_project=True)
File '/var/local/allura/Allura/allura/model/neighborhood.py', line 102 in register_project
  self, shortname, project_name, user or getattr(c, 'user', None), user_project, private_project, apps)
File '/var/local/forge-classic/sfx/sfx_main.py', line 275 in register_project
  user_project, private_project)
File '/var/local/allura/Allura/allura/lib/plugin.py', line 426 in validate_project
  raise ValueError('Invalid project shortname: %s' % shortname)
ValueError: Invalid project shortname: u/n_oostendorp


Tickets: #5433


  • Dave Brondsema
    Dave Brondsema

    allura:db/5404, forge-classic:db/5404

    Tests should cover the case that errored in production. To manually test, recommend to manually create an allura User with invalid punctuation via paster shell (not possible to register such via sfpy user reg), then visit /u/foobar or invoke private_project()

  • Dave Brondsema
    Dave Brondsema

    • status: in-progress --> code-review
    • qa: Cory Johns
  • Cory Johns
    Cory Johns

    • status: code-review --> closed