mirror of
https://koodu.h-i.works/projects/thebadspace
synced 2025-05-06 14:41:02 -05:00
after the site is installed and the DB set up, there needed to be a way to create the first account that will be used as the admin to access the den, the admin section of tbs the system makes a check to see if this account exists and if there isn't one present, it shows the admin account set up screen on the index. it goes away after the account is created.
183 lines
5.9 KiB
PHP
183 lines
5.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Repositories\MemberRepository;
|
|
|
|
class MemberController extends Controller
|
|
{
|
|
protected $member;
|
|
|
|
public function __construct(
|
|
MemberRepository $memberRepo
|
|
) {
|
|
$this->member = $memberRepo;
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$member = Auth::user();
|
|
return view('back.member', [
|
|
'handle' => $member->handle,
|
|
'members' => $this->member->getAll(),
|
|
'mode' => 'index',
|
|
'title' => "Manage Members"]);
|
|
}
|
|
|
|
public function profile(Request $request)
|
|
{
|
|
$member = Auth::user();
|
|
$avi = '';
|
|
if ($member->avatar == 'default-member-avatar') {
|
|
$avi = '/assets/images/global/default-avi.png';
|
|
} else {
|
|
$avi = $member->avatar;
|
|
}
|
|
return view('back.profile', [
|
|
'title' => "Hey, it's you!",
|
|
'handle' => $member->handle,
|
|
'email' => $member->email,
|
|
'avatar' => $avi,
|
|
'pronouns' => $member->pronoun,
|
|
'uuid' => $member->uuid,
|
|
'role' => $member->role
|
|
]);
|
|
}
|
|
|
|
public function editMember(Request $request, $uuid = 0)
|
|
{
|
|
$member = $this->member->get($uuid);
|
|
$avi = '';
|
|
if ($member->avatar == 'default-member-avatar') {
|
|
$avi = '/assets/images/global/default-avi.png';
|
|
} else {
|
|
$avi = $member->avatar;
|
|
}
|
|
return view('back.member', [
|
|
'member' => $member,
|
|
'avatar' => $avi,
|
|
'mode' => 'member-edit',
|
|
'title' => "Edit Member Info"]);
|
|
}
|
|
|
|
public function createMember(Request $Request)
|
|
{
|
|
return view('back.member', [
|
|
'mode' => 'member-create',
|
|
'title' => "Make a new friend"]);
|
|
}
|
|
|
|
//actions
|
|
public function profileEdit(Request $request)
|
|
{
|
|
$token = csrf_token();
|
|
//check if logged in member id matches profile request id
|
|
$member = Auth::user();
|
|
if ($member->uuid == $request->id) {
|
|
//validate required fields
|
|
$valid = $request->validate([
|
|
'handle' => ['required'],
|
|
'email' => ['required'],
|
|
]);
|
|
if ($valid) {
|
|
$response = $this->member->editProfile($request);
|
|
if ($response['status'] == true) {
|
|
return back()->with('message', $response['message']);
|
|
} else {
|
|
return back()->withErrors([$response['message']]);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['Misssing some required info, homie.']);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['This is not your profile to edit.']);
|
|
}
|
|
}
|
|
|
|
public function memberEdit(Request $request)
|
|
{
|
|
$token = csrf_token();
|
|
//role check
|
|
$member = Auth::user();
|
|
if ($member->role == 0) {
|
|
$valid = $request->validate([
|
|
'handle' => ['required'],
|
|
'email' => ['required'],
|
|
'role' => ['required']
|
|
]);
|
|
|
|
if ($valid) {
|
|
$response = $this->member->edit($request);
|
|
if ($response['status'] == true) {
|
|
return back()->with('message', $response['message']);
|
|
} else {
|
|
return back()->withErrors([$response['message']]);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['Misssing some required info, homie.']);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['Nah, you can\'t do this. Wrong permissions.']);
|
|
}
|
|
}
|
|
|
|
public function memberCreate(Request $request)
|
|
{
|
|
$token = csrf_token();
|
|
$member = Auth::user();
|
|
if ($member->role == 0) {
|
|
$valid = $request->validate([
|
|
'handle' => ['required'],
|
|
'email' => ['required'],
|
|
'role' => ['required'],
|
|
'pronouns' => ['required'],
|
|
'fresh_pass' => ['required'],
|
|
'fresh_pass_confirm' => ['required'],
|
|
]);
|
|
|
|
if ($valid) {
|
|
$response = $this->member->add($request);
|
|
if ($response['status'] == true) {
|
|
return redirect('/den/member')->with('message', $response['message']);
|
|
} else {
|
|
return back()->withErrors([$response['message']]);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['Misssing some required info, homie.']);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['Nah, you can\'t do this. Wrong permissions.']);
|
|
}
|
|
}
|
|
|
|
public function adminCreate(Request $request)
|
|
{
|
|
//should only be run of no members exist
|
|
if (count($this->member->getAll()) == 0) {
|
|
$token = csrf_token();
|
|
$valid = $request->validate([
|
|
'handle' => ['required'],
|
|
'email' => ['required'],
|
|
'pronouns' => ['required'],
|
|
'fresh_pass' => ['required'],
|
|
'fresh_pass_confirm' => ['required'],
|
|
]);
|
|
|
|
if ($valid) {
|
|
$response = $this->member->add($request);
|
|
if ($response['status'] == true) {
|
|
return redirect('/den/member')->with('message', $response['message']);
|
|
} else {
|
|
return back()->withErrors([$response['message']]);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['Misssing some required info, homie.']);
|
|
}
|
|
} else {
|
|
return back()->withErrors(['Shame on you for even trying that.']);
|
|
}
|
|
}
|
|
}
|