Skip to content

Commit bd9066d

Browse files
committed
Merge branch 'develop' into feature/laravel-tests
2 parents e6f7b3b + f057338 commit bd9066d

File tree

191 files changed

+5366
-5800
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

191 files changed

+5366
-5800
lines changed

app/Console/Commands/AddSiteSettings.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ public function handle()
103103

104104
$this->addSiteSetting('group_currency', 1, 'ID of the group currency to award from gallery submissions (if enabled).');
105105

106+
$this->addSiteSetting('is_maintenance_mode', 0, '0: Site is normal, 1: Users without the Has Maintenance Access power will be redirected to the home page.');
107+
106108
$this->line("\nSite settings up to date!");
107109

108110
}

app/Helpers/Helpers.php

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -225,25 +225,34 @@ function randomString($characters)
225225
*/
226226
function checkAlias($url, $failOnError = true)
227227
{
228-
$recipient = null;
229-
$matches = [];
230-
// Check to see if url is 1. from a site used for auth
231-
foreach(Config::get('lorekeeper.sites') as $key=>$site) if(isset($site['auth']) && $site['auth']) {
232-
preg_match_all($site['regex'], $url, $matches);
233-
if($matches != []) {$urlSite = $key; break;}
234-
}
235-
if($matches[0] == [] && $failOnError) throw new \Exception('This URL is from an invalid site. Please provide a URL for a user profile from a site used for authentication.');
228+
if($url) {
229+
$recipient = null;
230+
$matches = [];
231+
// Check to see if url is 1. from a site used for auth
232+
foreach(Config::get('lorekeeper.sites') as $key=>$site) if(isset($site['auth']) && $site['auth']) {
233+
preg_match_all($site['regex'], $url, $matches, PREG_SET_ORDER, 0);
234+
if($matches != []) {$urlSite = $key; break;}
235+
}
236+
if($matches[0] == [] && $failOnError) throw new \Exception('This URL is from an invalid site. Please provide a URL for a user profile from a site used for authentication.');
236237

237-
// and 2. if it contains an alias associated with a user on-site.
238-
if($matches[1] != [] && isset($matches[1][0])) {
239-
$alias = App\Models\User\UserAlias::where('site', $urlSite)->where('alias', $matches[1][0])->first();
240-
if($alias) $recipient = $alias->user;
241-
else $recipient = $url;
242-
}
238+
// and 2. if it contains an alias associated with a user on-site.
239+
240+
if($matches[0] != [] && isset($matches[0][1])) {
241+
if($urlSite != 'discord') {
242+
$alias = App\Models\User\UserAlias::where('site', $urlSite)->where('alias', $matches[0][1])->first();
243+
}
244+
else {
245+
$alias = App\Models\User\UserAlias::where('site', $urlSite)->where('alias', $matches[0][0])->first();
246+
}
247+
if($alias) $recipient = $alias->user;
248+
else $recipient = $url;
249+
}
243250

244-
return $recipient;
251+
return $recipient;
252+
}
245253
}
246254

255+
247256
/**
248257
* Prettifies links to user profiles on various sites in a "user@site" format.
249258
*
@@ -281,3 +290,22 @@ function prettyProfileName($url)
281290
if(isset($name) && isset($site)) return $name.'@'.(Config::get('lorekeeper.sites.'.$site.'.display_name') != null ? Config::get('lorekeeper.sites.'.$site.'.display_name') : $site);
282291
else return $url;
283292
}
293+
294+
/**
295+
* Creates an admin log entry after an action is performed.
296+
*
297+
* @param string $action
298+
* @param object $user
299+
* @param string $action
300+
*/
301+
function logAdminAction($user, $action, $action_details)
302+
{
303+
$log = \App\Models\AdminLog::create([
304+
'user_id' => $user->id,
305+
'action' => $action,
306+
'action_details' => $action_details,
307+
]);
308+
309+
if($log) return true;
310+
else return false;
311+
}

app/Http/Controllers/Admin/Data/CurrencyController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public function getDeleteCurrency($id)
116116
*/
117117
public function postDeleteCurrency(Request $request, CurrencyService $service, $id)
118118
{
119-
if($id && $service->deleteCurrency(Currency::find($id))) {
119+
if($id && $service->deleteCurrency(Currency::find($id), Auth::user())) {
120120
flash('Currency deleted successfully.')->success();
121121
}
122122
else {

app/Http/Controllers/Admin/Data/FeatureController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public function getDeleteFeatureCategory($id)
124124
*/
125125
public function postDeleteFeatureCategory(Request $request, FeatureService $service, $id)
126126
{
127-
if($id && $service->deleteFeatureCategory(FeatureCategory::find($id))) {
127+
if($id && $service->deleteFeatureCategory(FeatureCategory::find($id), Auth::user())) {
128128
flash('Category deleted successfully.')->success();
129129
}
130130
else {
@@ -273,7 +273,7 @@ public function getDeleteFeature($id)
273273
*/
274274
public function postDeleteFeature(Request $request, FeatureService $service, $id)
275275
{
276-
if($id && $service->deleteFeature(Feature::find($id))) {
276+
if($id && $service->deleteFeature(Feature::find($id), Auth::user())) {
277277
flash('Trait deleted successfully.')->success();
278278
}
279279
else {

app/Http/Controllers/Admin/Data/GalleryController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public function getDeleteGallery($id)
114114
*/
115115
public function postDeleteGallery(Request $request, GalleryService $service, $id)
116116
{
117-
if($id && $service->deleteGallery(Gallery::find($id))) {
117+
if($id && $service->deleteGallery(Gallery::find($id), Auth::user())) {
118118
flash('Gallery deleted successfully.')->success();
119119
}
120120
else {

app/Http/Controllers/Admin/Data/ItemController.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public function getDeleteItemCategory($id)
126126
*/
127127
public function postDeleteItemCategory(Request $request, ItemService $service, $id)
128128
{
129-
if($id && $service->deleteItemCategory(ItemCategory::find($id))) {
129+
if($id && $service->deleteItemCategory(ItemCategory::find($id), Auth::user())) {
130130
flash('Category deleted successfully.')->success();
131131
}
132132
else {
@@ -268,7 +268,7 @@ public function getDeleteItem($id)
268268
*/
269269
public function postDeleteItem(Request $request, ItemService $service, $id)
270270
{
271-
if($id && $service->deleteItem(Item::find($id))) {
271+
if($id && $service->deleteItem(Item::find($id), Auth::user())) {
272272
flash('Item deleted successfully.')->success();
273273
}
274274
else {
@@ -311,7 +311,7 @@ public function postAddItemTag(Request $request, ItemService $service, $id)
311311
{
312312
$item = Item::find($id);
313313
$tag = $request->get('tag');
314-
if($tag = $service->addItemTag($item, $tag)) {
314+
if($tag = $service->addItemTag($item, $tag, Auth::user())) {
315315
flash('Tag added successfully.')->success();
316316
return redirect()->to($tag->adminUrl);
317317
}
@@ -350,7 +350,7 @@ public function getEditItemTag(ItemService $service, $id, $tag)
350350
public function postEditItemTag(Request $request, ItemService $service, $id, $tag)
351351
{
352352
$item = Item::find($id);
353-
if($service->editItemTag($item, $tag, $request->all())) {
353+
if($service->editItemTag($item, $tag, $request->all(), Auth::user())) {
354354
flash('Tag edited successfully.')->success();
355355
}
356356
else {
@@ -388,7 +388,7 @@ public function getDeleteItemTag($id, $tag)
388388
public function postDeleteItemTag(Request $request, ItemService $service, $id, $tag)
389389
{
390390
$item = Item::find($id);
391-
if($service->deleteItemTag($item, $tag)) {
391+
if($service->deleteItemTag($item, $tag, Auth::user())) {
392392
flash('Tag deleted successfully.')->success();
393393
}
394394
else {

app/Http/Controllers/Admin/Data/PromptController.php

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,6 @@ public function getCreatePrompt()
182182
return view('admin.prompts.create_edit_prompt', [
183183
'prompt' => new Prompt,
184184
'categories' => ['none' => 'No category'] + PromptCategory::orderBy('sort', 'DESC')->pluck('name', 'id')->toArray(),
185-
'items' => Item::orderBy('name')->pluck('name', 'id'),
186-
'currencies' => Currency::where('is_user_owned', 1)->orderBy('name')->pluck('name', 'id'),
187-
'tables' => LootTable::orderBy('name')->pluck('name', 'id'),
188-
'raffles' => Raffle::where('rolled_at', null)->where('is_active', 1)->orderBy('name')->pluck('name', 'id'),
189185
]);
190186
}
191187

@@ -202,10 +198,6 @@ public function getEditPrompt($id)
202198
return view('admin.prompts.create_edit_prompt', [
203199
'prompt' => $prompt,
204200
'categories' => ['none' => 'No category'] + PromptCategory::orderBy('sort', 'DESC')->pluck('name', 'id')->toArray(),
205-
'items' => Item::orderBy('name')->pluck('name', 'id'),
206-
'currencies' => Currency::where('is_user_owned', 1)->orderBy('name')->pluck('name', 'id'),
207-
'tables' => LootTable::orderBy('name')->pluck('name', 'id'),
208-
'raffles' => Raffle::where('rolled_at', null)->where('is_active', 1)->orderBy('name')->pluck('name', 'id'),
209201
]);
210202
}
211203

app/Http/Controllers/Admin/DesignController.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use App\Models\Character\CharacterDesignUpdate;
1010
use App\Models\Character\CharacterCategory;
1111

12-
use App\Services\CharacterManager;
12+
use App\Services\DesignUpdateManager;
1313

1414
use App\Http\Controllers\Controller;
1515

@@ -28,7 +28,7 @@ public function getDesignIndex(Request $request, $type, $status)
2828
$requests = CharacterDesignUpdate::where('status', ucfirst($status));
2929
if($type == 'myo-approvals') $requests = $requests->myos();
3030
else $requests = $requests->characters();
31-
31+
3232
return view('admin.designs.index', [
3333
'requests' => $requests->paginate(30)->appends($request->query()),
3434
'isMyo' => ($type == 'myo-approvals')
@@ -51,7 +51,7 @@ public function getDesignConfirmation($id, $action)
5151
] : []));
5252
}
5353

54-
public function postDesign($id, $action, Request $request, CharacterManager $service)
54+
public function postDesign($id, $action, Request $request, DesignUpdateManager $service)
5555
{
5656
$r = CharacterDesignUpdate::where('id', $id)->where('status', 'Pending')->first();
5757

@@ -60,7 +60,7 @@ public function postDesign($id, $action, Request $request, CharacterManager $ser
6060
}
6161
elseif($action == 'approve' && $service->approveRequest($request->only([
6262
'character_category_id', 'number', 'slug', 'description',
63-
'is_giftable', 'is_tradeable', 'is_sellable', 'sale_value',
63+
'is_giftable', 'is_tradeable', 'is_sellable', 'sale_value',
6464
'transferrable_at', 'set_active', 'invalidate_old',
6565
]), $r, Auth::user())) {
6666
flash('Request approved successfully.')->success();
@@ -79,7 +79,7 @@ public function postDesign($id, $action, Request $request, CharacterManager $ser
7979
*
8080
* @return \Illuminate\Contracts\Support\Renderable
8181
*/
82-
public function postVote($id, $action, Request $request, CharacterManager $service)
82+
public function postVote($id, $action, Request $request, DesignUpdateManager $service)
8383
{
8484
$r = CharacterDesignUpdate::where('id', $id)->where('status', 'Pending')->first();
8585
if(!$r) throw new \Exception ("Invalid design update.");

app/Http/Controllers/Admin/FileController.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,16 @@ public function postDeleteFile(Request $request, FileManager $service)
146146
*/
147147
public function postUploadFile(Request $request, FileManager $service)
148148
{
149-
$request->validate(['file' => 'required|file']);
149+
$request->validate(['files.*' => 'file|required']);
150150
$dir = $request->get('folder');
151-
$file = $request->file('file');
152-
153-
if($service->uploadFile($file, $dir, $file->getClientOriginalName())) {
154-
flash('File uploaded successfully.')->success();
155-
}
156-
else {
157-
foreach($service->errors()->getMessages()['error'] as $error) flash($error)->error();
151+
$files = $request->file('files');
152+
foreach($files as $file) {
153+
if($service->uploadFile($file, $dir, $file->getClientOriginalName())) {
154+
flash('File uploaded successfully.')->success();
155+
}
156+
else {
157+
foreach($service->errors()->getMessages()['error'] as $error) flash($error)->error();
158+
}
158159
}
159160
return redirect()->back();
160161
}

app/Http/Controllers/Admin/HomeController.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use App\Models\Character\CharacterDesignUpdate;
1313
use App\Models\Character\CharacterTransfer;
1414
use App\Models\Trade;
15+
use App\Models\AdminLog;
1516
use App\Models\Report\Report;
1617

1718
use App\Http\Controllers\Controller;
@@ -44,4 +45,16 @@ public function getIndex()
4445
'galleryAwardCount' => GallerySubmission::requiresAward()->where('is_valued', 0)->count()
4546
]);
4647
}
48+
49+
/**
50+
* Show admin logs.
51+
*
52+
* @return \Illuminate\Contracts\Support\Renderable
53+
*/
54+
public function getLogs()
55+
{
56+
return view('admin.logs', [
57+
'logs' => Adminlog::orderBy('created_at', 'DESC')->get()->paginate(20)
58+
]);
59+
}
4760
}

0 commit comments

Comments
 (0)