forked from miguel456/rbrecruiter
Miguel Nogueira
5f1f92a9ce
This commit fixes some superficial instances of Broken Access Control (https://owasp.org/www-project-top-ten/OWASP_Top_Ten_2017/Top_10-2017_A5-Broken_Access_Control). There may be some more instances of this, as authorization was only done after most of the controllers were done (big mistake). Some refactoring was also performed, where Route Model Binding with DI (dependency injection) was used whenever possible, to increase testability of the codebase. Some reused code was also moved to Helper classes as to enforce DRY; There may be some lines of code that are still copy-pasted from other parts of the codebase for reuse. Non-breaking refactoring changes were made, but the app as a whole still needs full manual testing, and customised responses to HTTP 500 responses. Some errors are also not handled gracefully and this wasn't checked in this commit.
99 lines
3.0 KiB
PHP
99 lines
3.0 KiB
PHP
@extends('adminlte::page')
|
|
|
|
@section('title', 'Raspberry Network | Applications')
|
|
|
|
@section('content_header')
|
|
|
|
<h4>Application Management / Peer Review</h4>
|
|
|
|
@stop
|
|
|
|
@section('content')
|
|
|
|
<div class="row">
|
|
|
|
<div class="col">
|
|
|
|
<div class="callout callout-info">
|
|
|
|
<h4>Voting Reminder</h4>
|
|
|
|
<p>Applications which gain more than 50% of positive votes are automatically approved after one day.</p>
|
|
<p>Conversely, applications that do not reach this number are automatically denied.</p>
|
|
|
|
<p>Please note that the vote system can be overriden.</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="col">
|
|
|
|
<div class="card">
|
|
|
|
<div class="card-header">
|
|
<div class="card-title"><h3>Vote Backlog</h3></div>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
|
|
@if(!$applications->isEmpty())
|
|
<table class="table" style="white-space: nowrap">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Applicant Name</th>
|
|
<th>Last Acted On</th>
|
|
<th>Status</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
|
|
@foreach($applications as $application)
|
|
|
|
<td>{{$application->id}}</td>
|
|
<td>{{$application->user->name}}</td>
|
|
<td>{{$application->created_at}}</td>
|
|
<td><span class="badge badge-warning">{{($application->applicationStatus == 'STAGE_PEERAPPROVAL') ? 'Peer Review' : 'Unknown'}}</span></td>
|
|
<td>
|
|
<button type="button" class="btn btn-info btn-sm" onclick="window.location.href='{{route('showUserApp', ['application' => $application->id])}}'"><i class="far fa-clipboard"></i> Review</button>
|
|
</td>
|
|
|
|
@endforeach
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
@else
|
|
<x-alert alert-type="warning">
|
|
<p class="text-bold"><i class="fa fa-exclamation-triangle"></i> There are no applications pending review</p>
|
|
|
|
Check the other queues for any applications! Applications will be shown here as soon as their interview is completed.
|
|
You'll be able to view meeting notes and vote based on your observations.
|
|
</x-alert>
|
|
@endif
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@stop
|
|
|
|
@section('footer')
|
|
@include('breadcrumbs.dashboard.footer')
|
|
@stop
|