Skip to content

(proposal to) automatically link user and author page slugs on creation #33

Description

@eplebel

this is to ensure that the following 2 requirements can be achieved (which are necessary for the crowdsourcing platform to work and grow):

  1. user names (displayed publicly and to the logged-in user themselves) need to be unique for reputational dynamics to work
  2. admins need to be able to create author pages (so that we can lure in prominent transparency mavericks by first [partially] curating their author pages and then inviting them to the platform). indeed, this is precisely what i'm doing right now for Lorne Campbell's and Daniel Lakens' author pages.

relevant discussion from #14 :
Alex:
here's a thought: What if creating an author page automatically created a linked user account, and vice versa? Then when you invite the user and they accept, their user account and author page are already linked and waiting for them, they would just need to set their password and start curating. This way, a given person's username and author slug would always match because they'd always be created at the same time, and they wouldn't need to decide between creating a new author profile vs searching for and linking one that you already created for them.

The only downside I can think of is that the users who don't need an author page would still have one, but in my mind that's OK because they could just not fill it out or link any articles to it.

I think this would work fine for both flows:

  1. You (an admin) invite someone you haven't created an author page for. You enter their e-mail and full name. A User, Author, and Invitation are simultaneously created, linked and saved. They click the link in the e-mail, choose a password, and log in, and their profile is there waiting for them.
  2. You (an admin) create an author page for someone, entering their full name. User and Author objects are simultaneously created, linked and saved. Later, you invite them, and enter their e-mail address. An Invitation is created and linked to the existing User and Author objects, and the invite e-mail is sent. They click the link in the e-mail, choose a password, and log in, and their profile is there waiting for them.

Etienne:
yes i think your proposed approach (of automatically/simultaneously creating/linking user and author page) is a good one.

however, i still think it may not cover an edge case whereby an admin creates an author page, but then that person signs up before being invited by the admin (or somehow gets invited but doesn't click the invite link). for this edge case, the user would need to be able to claim a pre-existing author page and then any (non-redundant) articles on that pre-existing author page would be merged into their newest author page.

for example, admin creates author page for "steve-smith", but doesn't invite him. later, that same person signs up under "steve-smith-2". the user then realizes that the "steve-smith" author page is his, and claims the author page. all (non-redundant) articles from pre-existing "steve-smith" author page are merged into his "steve-smith-2" author page, and the "steve-smith" author page is deactivated (or could even re-direct to "steve-smith-2" author page; but any one searching for "Steve Smith" would only be displayed the correct activated "steve-smith-2" author page.

so in summary, it appears we need the following new functionality:

  1. automatic/simultaneous creation/linking of user and author page (having same slug)
  2. allow user to claim pre-existing author page
  3. author page merge tool (merging all non-redundant articles of pre-existing author page into newest author-page)

well let me know what you think.
this of course involves a non-trivial amount of work, but the good news is that we only need the stuff in
# 1 for now and can implement # 2 and # 3 later (given that the 1st group of early beta testers won't be allowed to invite new users and non-invited users won't be able to sign-up until way later).

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions