Hide some administration columns for basic organisation users (Fixes #3)

This commit is contained in:
2022-02-22 13:52:53 +00:00
parent 0d5551f927
commit 96e861e7fe
2 changed files with 31 additions and 1 deletions

View File

@@ -68,6 +68,30 @@ class User extends UFUser
->wherePivot('flag_approved', false);
}
/**
* Get all organisations this user is and administrator for (including pending)
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function adminForOrganisations($excludePending = false)
{
/** @var \UserFrosting\Sprinkle\Core\Util\ClassMapper $classMapper */
$classMapper = static::$ci->classMapper;
$query = $this->belongsToMany(
$classMapper->getClassMapping('organisation'), 'organisation_members', 'user_id', 'organisation_id'
)
->orderBy('organisations.name', 'asc')
->withPivot(['flag_admin', 'flag_approved'])
->wherePivot('flag_admin', true);
if ($excludePending === true) {
$query = $query->wherePivot('flag_approved', true);
}
return $query;
}
/**
* Delete this member from the database, along with any links to organisations.
*

View File

@@ -13,13 +13,17 @@
<tr>
<th class="sorter-metatext" data-column-name="name" data-column-template="#organisation-table-column-info" data-priority="1">{{translate('ORGANISATION')}} <i class="fas fa-sort"></i></th>
<th class="sorter-metatext" data-column-name="description" data-column-template="#organisation-table-column-description" data-priority="2">{{translate("DESCRIPTION")}} <i class="fas fa-sort"></i></th>
{% if hasRole('site-admin') or hasRole('organisations-admin') or (current_user.adminForOrganisations.count > 0) %}
<th class="filter-select filter-metatext" data-column-name="status" data-column-template="#user-table-column-status" data-priority="2">{{translate("STATUS")}} <i class="fas fa-sort"></i></th>
{% endif %}
{% if checkAccess('view_organisation_members') %}
<th class="sorter-metanum" data-column-name="member_count" data-column-template="#organisation-table-column-memberCount" data-priority="2" style="min-width: 180px">{{translate("ORGANISATION.MEMBER_COUNT")}} <i class="fas fa-sort"></i></th>
<th class="sorter-metanum" data-column-name="admin_count" data-column-template="#organisation-table-column-adminCount" data-priority="2">{{translate("ORGANISATION.ADMIN_COUNT")}} <i class="fas fa-sort"></i></th>
{% endif %}
<th data-column-template="#organisation-table-column-join" data-column-name="join" data-sorter="false" data-filter="false" data-priority="3">{{translate("JOIN")}}/{{translate("LEAVE")}}</th>
{% if hasRole('site-admin') or hasRole('organisations-admin') or (current_user.adminForOrganisations.count > 0) %}
<th data-column-template="#organisation-table-column-actions" data-sorter="false" data-filter="false" data-priority="1">{{translate("ACTIONS")}}</th>
{% endif %}
</tr>
</thead>
<tbody>
@@ -59,6 +63,7 @@
{% endblock %}
{% block table_cell_template_status %}
{% if hasRole('site-admin') or hasRole('organisations-admin') or (current_user.adminForOrganisations.count > 0) %}
{% verbatim %}
<script id="user-table-column-status" type="text/x-handlebars-template">
<td
@@ -80,6 +85,7 @@
</td>
</script>
{% endverbatim %}
{% endif %}
{% endblock %}
{% block table_cell_template_memberCount %}
@@ -183,7 +189,7 @@
</td>
</script>
{% endverbatim %}
{% else %}
{% elseif (current_user.adminForOrganisations.count > 0) %}
{% verbatim %}
<script id="organisation-table-column-actions" type="text/x-handlebars-template">
<td>