Hide some administration columns for basic organisation users (Fixes #3)
This commit is contained in:
@@ -68,6 +68,30 @@ class User extends UFUser
|
|||||||
->wherePivot('flag_approved', false);
|
->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.
|
* Delete this member from the database, along with any links to organisations.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -13,13 +13,17 @@
|
|||||||
<tr>
|
<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="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>
|
<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>
|
<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') %}
|
{% 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="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>
|
<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 %}
|
{% 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>
|
<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>
|
<th data-column-template="#organisation-table-column-actions" data-sorter="false" data-filter="false" data-priority="1">{{translate("ACTIONS")}}</th>
|
||||||
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -59,6 +63,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block table_cell_template_status %}
|
{% block table_cell_template_status %}
|
||||||
|
{% if hasRole('site-admin') or hasRole('organisations-admin') or (current_user.adminForOrganisations.count > 0) %}
|
||||||
{% verbatim %}
|
{% verbatim %}
|
||||||
<script id="user-table-column-status" type="text/x-handlebars-template">
|
<script id="user-table-column-status" type="text/x-handlebars-template">
|
||||||
<td
|
<td
|
||||||
@@ -80,6 +85,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</script>
|
</script>
|
||||||
{% endverbatim %}
|
{% endverbatim %}
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block table_cell_template_memberCount %}
|
{% block table_cell_template_memberCount %}
|
||||||
@@ -183,7 +189,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</script>
|
</script>
|
||||||
{% endverbatim %}
|
{% endverbatim %}
|
||||||
{% else %}
|
{% elseif (current_user.adminForOrganisations.count > 0) %}
|
||||||
{% verbatim %}
|
{% verbatim %}
|
||||||
<script id="organisation-table-column-actions" type="text/x-handlebars-template">
|
<script id="organisation-table-column-actions" type="text/x-handlebars-template">
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
Reference in New Issue
Block a user