Skip to content

Commit

Permalink
added admin for ISTs only
Browse files Browse the repository at this point in the history
  • Loading branch information
Lung committed Mar 27, 2024
1 parent 78111a0 commit c19429b
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 20 deletions.
2 changes: 1 addition & 1 deletion src/Middleware/AdminPaymentsOnlyMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public function process(Request $request, ResponseHandler $handler): Response
{
$user = $request->getAttribute('user');

if ($user instanceof User && $user->role->isEligibleToConfirmPayments() === false) {
if ($user instanceof User && $user->role->isEligibleToHandlePayments() === false) {
$this->flashMessages->error($this->translator->trans('flash.error.adminPaymentsOnly'));

return $this->createRedirectResponse($request, 'getDashboard');
Expand Down
2 changes: 1 addition & 1 deletion src/Participant/ParticipantRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ private function addFilterAdminParticipants(Fluent $qb, User $adminUser): void
// allow all
break;
case UserRole::IstAdmin:
// TODO
$qb->where('participant.role = %s', ParticipantRole::Ist);
break;
case UserRole::ContingentAdminCs:
$qb->where('participant.contingent = %s', EventTypeCej::CONTINGENT_CZECHIA);
Expand Down
36 changes: 19 additions & 17 deletions src/Templates/translatable/admin/dashboard-admin.twig
Original file line number Diff line number Diff line change
Expand Up @@ -103,19 +103,19 @@
class="btn">{% trans %}dashboard-admin.open{% endtrans %}</a><br/>
<a href="{{ url_for('admin-show-approving', {'eventSlug': event.slug}) }}"
class="btn">{% trans %}dashboard-admin.approving{% endtrans %}</a><br/>
{% if user.role.isEligibleToConfirmPayments and event.automaticPaymentPairing %}
{% if user.role.isEligibleToHandlePayments and event.automaticPaymentPairing %}
<a href="{{ url_for('admin-show-auto-payments', {'eventSlug': event.slug}) }}"
class="btn">{% trans %}dashboard-admin.newPayments{% endtrans %}</a><br/>
{% endif %}
{% if user.role.isEligibleToConfirmPayments %}
{% if user.role.isEligibleToHandlePayments %}
<a href="{{ url_for('admin-show-payments', {'eventSlug': event.slug}) }}"
class="btn">{% trans %}dashboard-admin.confirmPayments{% endtrans %}</a><br/>
{% endif %}
<a href="{{ url_for('admin-show-stats', {'eventSlug': event.slug}) }}"
class="btn">{% trans %}dashboard-admin.showStats{% endtrans %}</a><br/>
</div>
<div>
{% if event.allowTroops %}
{% if event.allowTroops and user.role.isEligibleToManageTroops %}
<a href="{{ url_for('admin-troop-management', {'eventSlug': event.slug}) }}"
class="btn">{% trans %}dashboard-admin.troopManagement{% endtrans %}</a><br/>
{% endif %}
Expand All @@ -128,20 +128,22 @@
</div>
</div>
</div>
<div class="card card-half paid-theme">
<form method="GET" action="{{ url_for('admin-show-transfer-payment', {'eventSlug': event.slug}) }}" class="form-group">
<label class="form-group">{% trans %}dashboard-admin.emailFrom{% endtrans %}:<br/>
<input class="form-control form-wide" name="emailFrom" type="email" required></label>
<br/>
<label class="form-group">{% trans %}dashboard-admin.emailTo{% endtrans %}:<br/>
<input class="form-control form-wide" name="emailTo" type="email" required></label>
<br/>
<input class="btn btn-small"
type="submit"
value="{% trans %}dashboard-admin.checkMovePayments{% endtrans %}">
</form>
</div>
{% if event.eventType.showIstImport %}
{% if user.role.isEligibleToHandlePayments %}
<div class="card card-half paid-theme">
<form method="GET" action="{{ url_for('admin-show-transfer-payment', {'eventSlug': event.slug}) }}" class="form-group">
<label class="form-group">{% trans %}dashboard-admin.emailFrom{% endtrans %}:<br/>
<input class="form-control form-wide" name="emailFrom" type="email" required></label>
<br/>
<label class="form-group">{% trans %}dashboard-admin.emailTo{% endtrans %}:<br/>
<input class="form-control form-wide" name="emailTo" type="email" required></label>
<br/>
<input class="btn btn-small"
type="submit"
value="{% trans %}dashboard-admin.checkMovePayments{% endtrans %}">
</form>
</div>
{% endif %}
{% if event.eventType.showIstImport and user.role.isEligibleToImportIst %}
<div class="card card-half paid-theme">
<form
id="uploadFileForm"
Expand Down
19 changes: 18 additions & 1 deletion src/User/UserRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public static function adminRoles(): array
{
return [
self::Admin,
self::IstAdmin,
self::ContingentAdminCs,
self::ContingentAdminSk,
self::ContingentAdminPl,
Expand All @@ -36,11 +37,27 @@ public static function adminRoles(): array
];
}

public function isEligibleToConfirmPayments(): bool
public function isEligibleToHandlePayments(): bool
{
return match ($this) {
self::Admin, self::ContingentAdminCs, self::ContingentAdminSk => true,
default => false,
};
}

public function isEligibleToManageTroops(): bool
{
return match ($this) {
self::Admin, self::ContingentAdminCs, self::ContingentAdminSk => true,
default => false,
};
}

public function isEligibleToImportIst(): bool
{
return match ($this) {
self::Admin => true,
default => false,
};
}
}

0 comments on commit c19429b

Please sign in to comment.