Bug #6274

Updated by Tom Clegg over 6 years ago

* Add default_project_uuid attribute to users table. Must not be null. Must resolve to a group with group_class="project".
* Create a new default project for each new user.
* Each user must be the owner_uuid of its own default_project_uuid, in order for "[read-only] group admin" feature to keep working.
* Default owner_uuid for new objects is the current user's default_project_uuid, not the current user's uuid.
** services/api/app/models/arvados_model.rb - general case restricts owner_uuid to a group uuid, not a user uuid
** services/api/app/models/group.rb - exception to permit a user uuid as owner_uuid should be here
** transparently change owner_uuid from current_user.uuid to current_user.default_project_uuid during model validation, in order to support old clients (but will any clients have problems when the owner_uuid is different from what they requested?). This should log a warning on the server side so we can monitor whether active clients have stopped relying on it.
** migrate db by adding a default project for each user (system_user's default project should be system_group)
** migrate user-owned objects to their respective default_project_uuids
** various clients will need updating