Working Appeals form

Still need to style the email form, but the Appeal Form is working with
a bit of protection from bots to cut down on spam.
This commit is contained in:
ro 2024-02-05 14:02:27 -06:00
parent 572f2434f6
commit fe49ca8699
6 changed files with 70 additions and 11 deletions

View file

@ -3,7 +3,6 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Mail\LocationAppeal; use App\Mail\LocationAppeal;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
@ -12,12 +11,20 @@ class AppealMailController extends Controller
/** /**
* Send appeal request * Send appeal request
*/ */
public function sendAppeal(Request $request): RedirectResponse public function sendAppeal(Request $request)
{ {
//$order = Order::findOrFail($request->order_id); //$order = Order::findOrFail($request->order_id);
$token = csrf_token();
Mail::to('ro@h-i.works')->send(new LocationAppeal()); if ($request->h1 != '' || $request->question != 2) {
return back()->withErrors([
'error' => 'Invalid Request',
]);
} else {
Mail::to('ro@h-i.works')->send(new LocationAppeal($request->location, $request->sponsor));
return redirect('/appeals'); //return redirect('/appeals');
return back()->with('message', "Appeal Filed");
};
} }
} }

View file

@ -17,9 +17,8 @@ class LocationAppeal extends Mailable
/** /**
* Create a new message instance. * Create a new message instance.
*/ */
public function __construct() public function __construct(public $location, public $sponsor)
{ {
//
} }
/** /**

View file

@ -1,3 +1,5 @@
<div> <div>
A quick test to see if it works. A quick test to see if it works.<br />
Appeal for: {{$location}}<br />
Appeal Sponsor: {{$sponsor}}<br />
</div> </div>

View file

@ -45,6 +45,9 @@
<a href="/exports" title="list exports" class="nav-links"> <a href="/exports" title="list exports" class="nav-links">
Exports Exports
</a><br /> </a><br />
<a href="/appeals" title="location appeals" class="nav-links">
Appeals
</a><br />
@if(Auth::check()) @if(Auth::check())
<a href="/den" title="den-start" class="nav-links"> <a href="/den" title="den-start" class="nav-links">
Den Den

View file

@ -1,11 +1,59 @@
@extends('frame') @extends('frame')
@section('title', 'The Bad Space|Exports') @section('title', 'The Bad Space|Appeals')
@section('main-content') @section('main-content')
@parent @parent
<section> <section>
<article> <article>
<h2>Appeal Process</h2> <h2>Appeals</h2>
<a href="/appeal">Send Appeal Request</a>
Locations listed in The Bad Space have the right to appeal their inclusion if they feel they have been added unfairly.
<h3>Starting the Appeals Process</h3>
<p>This process can be initiated by sending an Official Appeal to The Bad Space using the Appeal Form (link coming soon) stating why they should not be included. All appeal requests must be sponsored by at least one Current Source, and their name(s) must be included in the submission.</p>
<p>The Bad Space will validate the appeal request by contacting a moderator or administrator of the respective instance. If no moderator or administrator is detailed in the appeal request, it will be immediately disqualified.</p>
<p>If the Appeal contains any threats, hate speech, microaggressions, taunts, or slurs, the Appeal will be automatically disqualified.</p>
An Appeal can only be made once every three (3) months.
<h3>Process Description</h3>
<p>After an appeal request is validated, it will be reviewed by all Current Sources. Each Current Source will vote on whether to approve the requesting instance's appeal request.</p>
<p>80% of Current Sources must vote in favor of the request to proceed to the next step. Appeals that do not meet this threshold will be rejected, and the administrator or moderator who petitioned for the appeal will be notified.
</p>
<p>If an appeal is approved to proceed, a chat room will be created on the h.i. cloud community for the petitioner to be interviewed by Current Sources. Here, they will explain why they feel their instance should be removed from the database.</p>
The petitioner must include the following:
<ul>
<li>Verification of problematic content and members have been removed.</li>
<li>A public explanation of steps to recognize and remove problematic content and members.</li>
<li>A working plan to keep said location as free as possible from problematic members and content finding a home there.</li>
</ul>
<p>The petitioner also must be available to answer any questions from a member of Current Sources concerning the information provided.</p>
<p>Failure to provide any of this information or refusing to be interviewed by Current Sources will result in an automatic disqualification.</p>
<p>Upon completing the interview process, each Current Source will choose to remove or maintain their current block or silence action. The result of each choice will be reflected in the database itself, which can be publicly reviewed at any time.</p>
<h2>Appeals Form</h2>
<form action="/appeal" method="post" enctype="multipart/form-data">
@csrf
<label>Appeal Location</label><br />
<input type="text" name="location" value="" />
<br />
<label>Appeal Sponsor</label><br />
<input type="text" name="sponsor" value="" /><br />
<label>What is 1+1?</label><br />
<input type="text" name="question" value="" /><br />
<input type="hidden" name="h1" value="" /><br />
<input type="submit" value="File Appeal" name="submit_button">
</form>
</article> </article>
</section> </section>
@endsection @endsection

View file

@ -26,7 +26,7 @@ Route::get("/about", [FrontIndexController::class, 'about']);
Route::get("/location/{uuid}", [FrontIndexController::class, 'location']); Route::get("/location/{uuid}", [FrontIndexController::class, 'location']);
Route::get("/appeals", [FrontIndexController::class, 'appeals']); Route::get("/appeals", [FrontIndexController::class, 'appeals']);
Route::post("/search", [FrontIndexController::class, 'indexSearch']); Route::post("/search", [FrontIndexController::class, 'indexSearch']);
Route::get("/appeal", [AppealMailController::class, 'sendAppeal']); Route::post("/appeal", [AppealMailController::class, 'sendAppeal']);
//exports //exports
Route::get("/exports", [ExportController::class, 'exportIndex']); Route::get("/exports", [ExportController::class, 'exportIndex']);