mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-29 03:10:51 +00:00
share records api update
This commit is contained in:
@@ -62,7 +62,7 @@
|
|||||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
|
||||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
|
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
|
||||||
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
|
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
|
||||||
"/chunks/platform.js": "/chunks/platform.js?id=6c6ff48803c933ab",
|
"/chunks/platform.js": "/chunks/platform.js?id=e0dcb4aa27710e07",
|
||||||
"/chunks/files.js": "/chunks/files.js?id=a74bc8acc7ea876a",
|
"/chunks/files.js": "/chunks/files.js?id=a74bc8acc7ea876a",
|
||||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=c6ed26eaace65f01",
|
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=c6ed26eaace65f01",
|
||||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6adbb309c700eaf7",
|
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=6adbb309c700eaf7",
|
||||||
|
|||||||
@@ -28,6 +28,6 @@ class GetShareLinkViaQrCodeController extends Controller
|
|||||||
$qrCode = trim(substr($svg, strpos($svg, "\n") + 1));
|
$qrCode = trim(substr($svg, strpos($svg, "\n") + 1));
|
||||||
|
|
||||||
// Return qr code
|
// Return qr code
|
||||||
return response($qrCode, 201);
|
return response($qrCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Sharing\Controllers;
|
namespace Domain\Sharing\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Response;
|
use Domain\Folders\Models\Folder;
|
||||||
|
use Domain\Sharing\Requests\RevokeSharesRequest;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Domain\Sharing\Models\Share;
|
use Domain\Sharing\Models\Share;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@@ -25,34 +27,47 @@ class ShareController extends Controller
|
|||||||
public function update(
|
public function update(
|
||||||
UpdateShareRequest $request,
|
UpdateShareRequest $request,
|
||||||
Share $share,
|
Share $share,
|
||||||
): ShareResource {
|
): JsonResponse {
|
||||||
// Update sharing record
|
$item = get_item($share->type, $share->item_id);
|
||||||
|
|
||||||
|
// If sharing folder, check permission attribute
|
||||||
|
if ($item instanceof Folder && $request->missing('permission')) {
|
||||||
|
return response()->json([
|
||||||
|
'type' => 'error',
|
||||||
|
'message' => 'The permission field for folder is required.',
|
||||||
|
], 422);
|
||||||
|
}
|
||||||
|
|
||||||
$share->update([
|
$share->update([
|
||||||
'permission' => $request->input('permission'),
|
|
||||||
'is_protected' => $request->input('protected'),
|
|
||||||
'expire_in' => $request->input('expiration') ?? null,
|
'expire_in' => $request->input('expiration') ?? null,
|
||||||
'password' => $request->input('password')
|
'permission' => $request->input('permission'),
|
||||||
|
'is_protected' => $request->boolean('protected'),
|
||||||
|
'password' => $request->has('password')
|
||||||
? bcrypt($request->input('password'))
|
? bcrypt($request->input('password'))
|
||||||
: $share->password,
|
: $share->password,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Return shared record
|
// Return shared record
|
||||||
return new ShareResource($share);
|
return response()->json(new ShareResource($share));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete sharing item
|
* Delete sharing item
|
||||||
*/
|
*/
|
||||||
public function destroy(): Response
|
public function destroy(RevokeSharesRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
foreach (request()->input('tokens') as $token) {
|
foreach ($request->input('tokens') as $token) {
|
||||||
// Delete share record
|
// Delete share record
|
||||||
Share::where('token', $token)
|
$record = Share::where('token', $token)
|
||||||
->where('user_id', Auth::id())
|
->where('user_id', Auth::id())
|
||||||
->firstOrFail()
|
->first();
|
||||||
->delete();
|
|
||||||
|
$record?->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
return response('Done.', 204);
|
return response()->json([
|
||||||
|
'type' => 'success',
|
||||||
|
'message' => 'The share links was revoked successfully.',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
namespace Domain\Sharing\Controllers;
|
namespace Domain\Sharing\Controllers;
|
||||||
|
|
||||||
use Auth;
|
use Auth;
|
||||||
use Illuminate\Http\Request;
|
use Domain\Sharing\Requests\ShareByEmailRequest;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\JsonResponse;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Domain\Sharing\Actions\SendViaEmailAction;
|
use Domain\Sharing\Actions\SendViaEmailAction;
|
||||||
|
|
||||||
@@ -15,15 +15,18 @@ class ShareViaEmailController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
Request $request,
|
ShareByEmailRequest $request,
|
||||||
string $token,
|
string $token,
|
||||||
): Response {
|
): JsonResponse {
|
||||||
($this->sendLinkToEmailAction)->onQueue()->execute(
|
($this->sendLinkToEmailAction)->onQueue()->execute(
|
||||||
emails: $request->input('emails'),
|
emails: $request->input('emails'),
|
||||||
token: $token,
|
token: $token,
|
||||||
user: Auth::user(),
|
user: Auth::user(),
|
||||||
);
|
);
|
||||||
|
|
||||||
return response('Done.', 204);
|
return response()->json([
|
||||||
|
'type' => 'success',
|
||||||
|
'message' => 'The share link was shared via email successfully.',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
namespace Domain\Sharing\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
class RevokeSharesRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'tokens' => 'required|array',
|
||||||
|
'tokens.*' => 'string',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
namespace Domain\Sharing\Requests;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
class ShareByEmailRequest extends FormRequest
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Determine if the user is authorized to make this request.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function authorize()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the validation rules that apply to the request.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function rules()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'emails' => 'required|array',
|
||||||
|
'emails.*' => 'email',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Domain\Sharing\Requests;
|
namespace Domain\Sharing\Requests;
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
class UpdateShareRequest extends FormRequest
|
class UpdateShareRequest extends FormRequest
|
||||||
@@ -13,7 +12,7 @@ class UpdateShareRequest extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function authorize()
|
public function authorize()
|
||||||
{
|
{
|
||||||
return Auth::check();
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -25,9 +24,9 @@ class UpdateShareRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'protected' => 'required|boolean',
|
'protected' => 'required|boolean',
|
||||||
'permission' => 'nullable|string',
|
'password' => 'required_if:protected,true|string',
|
||||||
'expiration' => 'integer|nullable',
|
'permission' => 'sometimes|string',
|
||||||
'password' => 'string',
|
'expiration' => 'sometimes|integer',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user