-
Notifications
You must be signed in to change notification settings - Fork 30
De-link organizations and teams #151
Comments
Counterpoint: Teams are also useful for creating lists of individuals in which the maintainer of the list is not also a member of the list. Access rights to create such a list is currently granted via the organization's ownership. If teams have no parent organization, the only way to have edit access to the team is by also being a member and having the appropriate membership flag (admin/owner) set. This makes it impossible to maintain a list of other people. Why is this required? In #34 we wanted to promote a certain use case for teams up to the level of being an organization. The 2015 edition of The Fifth Elephant had an editorial panel comprised of non-HasGeek staff, but managed by a HasGeek staff member. If the team's membership was meant to be a statement of record on who was in the EP, it can't have a non-member (of the real-life entity) be a member of the team just for the sake of managing it. This brings up another scenario: sometimes the team is archived and membership is for the record, not for current activity, so it should be possible to "archive" a team, making it read-only -- or preventing a user from leaving a team by themselves, requiring the team's admin to do that instead. |
As an extension: Teams can optionally be owned by an Organization, allowing the team admin to then be present outside the team. |
We can make all this simpler by reversing the assumptions. Specifically:
With this approach, organizations start out like teams with a simple list of members, but acquire complexity as needed. |
The Members team was introduced in #28, but has never gained traction, so is being deleted to aid transition to the direct membership model presented in #151, #118 and #232. The final switch to direct org membership will happen elsewhere, in hasgeek/funnel#401.
Lastuser's
Organization
andTeam
models are modelled on GitHub's. The assumptions are:User
account. (There has been a discussion to merge these at the database level in Merge User, Organization and Team models into a new Principal model #91).Under expected use circumstances, an average user will be a member of one organization, their employer, and maybe a few more representing non-profit causes or community groups.
With the benefit of hindsight of the past few years, we now know that (a) organizations are used to represent brandnames, so it's normal for an active user of HasGeek's infra (such as HasGeek staff) to be a part of ten or more organizations, and that (b) any changes to staff require adding or removing them from teams within each of these organizations, which is a pain. We've discussed having parent organizations (#6) as a means to centralise team management, with the caveat that the Owners and Members teams are special-cases that cannot be inherited, so those will instead be virtual teams, representing both their own members and inherited members.
Since #6 (and the related #34) represent tricky architecture – we may have a use case for parents of parents, making team membership lookups recursive – this issue presents an alternative proposal: de-link Team from Organization.
The text was updated successfully, but these errors were encountered: