<p>My first thoughts are that we might have the need to create "teams" (or "groups", but that concept has a different history in OSM so I'll stick to "team" for now for clarity). That ensures the Directors can only manage particular Directees (and not Directees from other organisations). This would also help show the organisation, and allow people to e.g. view all the Directee accounts for a particular organisation.</p>
<p>If so, perhaps the Director and Directee roles are actually attributes of the membership of the team, rather than site-wide "user roles" that we have now. For example, in pseudocode</p>
<pre><code>t = Team.new(name: 'foobar school')
d = User.new(display_name: 'S. Teacher')
u = User.new(display_name: 'S. Student')
...
TeamMembership.new(team: t, user: d, role: 'director')
TeamMembership.new(team: t, user: u, role: 'directee')
...
</code></pre>
<p>However, this doesn't quite cover the limitations of a 'directee' account, such as having limited ability to manage their own account, so there might be a need for for a user role applied to their whole account too.</p>
<p>We should also consider:</p>
<ul>
<li>Whether there could be multiple directors for one team</li>
<li>Whether a directee account can be a member of multiple teams (simultaneously, or over time)</li>
<li>Whether a regular user account can be a member of a team but not a director (e.g. student has existing account that they would like to use for some directed coursework)</li>
<li>Before messages can be intercepted and shown to Directors, we would need a <a href="http://www.legislation.gov.uk/ukpga/2016/25/part/2/chapter/2/enacted" rel="nofollow">lawful basis</a> to do so, for example getting consent from both the Directee and also whichever user is sending the message.</li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/issues/1822#issuecomment-381820298">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABWnLc-EDZ6DveqPxBP6AqWW7qW6gDMkks5tpV0ygaJpZM4TXgf2">mute the thread</a>.<img src="https://github.com/notifications/beacon/ABWnLbHmXlF_YbmMQx5p7dEtX4jhfXwsks5tpV0ygaJpZM4TXgf2.gif" height="1" width="1" alt="" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/openstreetmap/openstreetmap-website/issues/1822#issuecomment-381820298"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/openstreetmap/openstreetmap-website","title":"openstreetmap/openstreetmap-website","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/openstreetmap/openstreetmap-website"}},"updates":{"snippets":[{"icon":"PERSON","message":"@gravitystorm in #1822: My first thoughts are that we might have the need to create \"teams\" (or \"groups\", but that concept has a different history in OSM so I'll stick to \"team\" for now for clarity). That ensures the Directors can only manage particular Directees (and not Directees from other organisations). This would also help show the organisation, and allow people to e.g. view all the Directee accounts for a particular organisation.\r\n\r\nIf so, perhaps the Director and Directee roles are actually attributes of the membership of the team, rather than site-wide \"user roles\" that we have now. For example, in pseudocode\r\n```\r\nt = Team.new(name: 'foobar school')\r\nd = User.new(display_name: 'S. Teacher')\r\nu = User.new(display_name: 'S. Student')\r\n...\r\nTeamMembership.new(team: t, user: d, role: 'director')\r\nTeamMembership.new(team: t, user: u, role: 'directee')\r\n...\r\n```\r\nHowever, this doesn't quite cover the limitations of a 'directee' account, such as having limited ability to manage their own account, so there might be a need for for a user role applied to their whole account too.\r\n\r\nWe should also consider:\r\n* Whether there could be multiple directors for one team\r\n* Whether a directee account can be a member of multiple teams (simultaneously, or over time)\r\n* Whether a regular user account can be a member of a team but not a director (e.g. student has existing account that they would like to use for some directed coursework)\r\n* Before messages can be intercepted and shown to Directors, we would need a [lawful basis](http://www.legislation.gov.uk/ukpga/2016/25/part/2/chapter/2/enacted) to do so, for example getting consent from both the Directee and also whichever user is sending the message."}],"action":{"name":"View Issue","url":"https://github.com/openstreetmap/openstreetmap-website/issues/1822#issuecomment-381820298"}}}</script>