Users of a Space should have a Profile
Summary: Profiles / profile pages are ubiquitous on any sort of interactive website, for several good reasons: (1) if the site is remotely social, people want a sense of "who is this other user?" - creating a sense of community requires creating a sense of personhood. (2) websites very often want to present the user with relevant preferences.
I've hacked around this in the Spirit Island Playtesting space using a Model anyone can make Instances of, then setting up the leftnav with either a link to create one (if they don't have any) or linking to the one they've created (if they do). Then I defined a function which grabs the first Thing with that Model they've made. However, this is a poor long-term solution, because:
- A User could easily create another of that Thing, confusing my "find their Profile" function;
- Since part of the purpose of a Profile is for other users to see, the Thing must be Readable by all - which means everything in the Profile is world-readable, including user preferences! (Note from Justin: you can work around this by creating two Models, one Public, one not. Create both at the same time. The owner can still see the non-public version because you can now Edit Things that you have created. Unite both of them in the same Edit UI. Yes, it's a bit of hassle, but very flexible.)
- Users must manually create their Profile - until they do, it doesn't exist (as opposed to existing but populated with default values) (Justin: I work around this by not allowing access to the guts of the Space until they have created the Profile. Full functionality is available behind a flag check on that.)
- Guest users don't have a Profile (whereas I'd rather they have one that's populated with default values - ideally if they edit it then create an account that temporary profile should be copied over to their new permanent one)
ETA: some sort of visual/graphical personalization (avatars, badges, whatever) would be super-helpful for #1; I'm having a hard time keeping some of my playtesters straight and they're names I see over and over!