sber permissions

This commit is contained in:
2024-11-07 10:23:24 +05:00
parent 75de39b5ba
commit 0744b372d4
6 changed files with 135 additions and 1 deletions

View File

@@ -0,0 +1,87 @@
<?php
namespace App\Modules\SberPaymentOrder\Nova\Resources\Concerns;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
trait NovaSberPaymentOrderAuth
{
public function authorizeToView(Request $request)
{
$user = auth()->user();
if ($user->isSystemUser()) {
return;
}
if ($this->resource->user_id == auth()->id()) {
return;
}
throw new AuthorizationException();
}
/**
* Edit button
*/
public function authorizedToUpdate(Request $request): bool
{
$user = auth()->user();
if ($user->isSystemUser()) {
return true;
}
return false;
}
/**
* Edit proceess
*/
public function authorizeToUpdate(Request $request): void
{
$user = auth()->user();
if ($user->isSystemUser()) {
return;
}
if ($this->resource->user_id == auth()->id()) {
return;
}
throw new AuthorizationException();
}
/**
* Delete button
*/
public function authorizedToDelete(Request $request)
{
$user = auth()->user();
if ($user->isSystemUser()) {
return true;
}
return false;
}
public function authorizeToDelete(Request $request)
{
$user = auth()->user();
if ($user->isSystemUser()) {
return;
}
throw new AuthorizationException();
}
public function authorizedToForceDelete(Request $request)
{
throw_unless(auth()->user()->isMe(), AuthorizationException::class);
}
}

View File

@@ -3,6 +3,7 @@
namespace App\Modules\SberPaymentOrder\Nova\Resources;
use App\Models\Branch\Branch;
use App\Modules\SberPaymentOrder\Nova\Resources\Concerns\NovaSberPaymentOrderAuth;
use App\Modules\SberPaymentOrder\Nova\Resources\Concerns\SberPaymentOrderFieldsForDetail;
use App\Modules\SberPaymentOrder\Nova\Resources\Concerns\SberPaymentOrderFieldsForIndex;
use App\Nova\Actions\MakeSberPaymentAction;
@@ -31,6 +32,8 @@ use Outl1ne\NovaSimpleRepeatable\SimpleRepeatable;
*/
class NovaSberPaymentOrder extends Resource
{
use NovaSberPaymentOrderAuth;
/**
* The model the resource corresponds to.
*

View File

@@ -5,6 +5,7 @@ namespace App\Nova\Resources;
use App\Models\CurrencyRate as ModelsCurrencyRate;
use App\Nova\Resource;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Select;
use Laravel\Nova\Fields\Text;
@@ -35,6 +36,36 @@ class CurrencyRate extends Resource
'id',
];
/**
* Determine if the given resource is authorizable.
*
* @return bool
*/
public static function authorizable()
{
if (auth()->user()->isSystemUser()) {
return false;
}
// disables
return true;
}
/**
* Determine if the resource should be available for the given request.
*
* @param \Illuminate\Http\Request $request
* @return bool
*/
public static function authorizedToViewAny(Request $request)
{
if (auth()->user()->isSystemUser()) {
return true;
}
return false;
}
/**
* Get the fields displayed by the resource.
*

View File

@@ -2,6 +2,7 @@
namespace App\Nova;
use App\Nova\Forms\NovaForm;
use App\Nova\Resources\Branch\Branch;
use App\Nova\Resources\Order\Card\CardOrder;
use App\Nova\Resources\Order\Loan\LoanOrder;
@@ -13,6 +14,7 @@ use Illuminate\Validation\Rules;
use Laravel\Nova\Fields\BelongsToMany;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\HasMany;
use Laravel\Nova\Fields\Hidden;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\MorphToMany;
use Laravel\Nova\Fields\Password;
@@ -108,6 +110,16 @@ class User extends Resource
->creationRules('required', Rules\Password::defaults())
->updateRules('nullable', Rules\Password::defaults()),
Boolean::make(__('Phone verified'), 'phone_verified_at')
->default(false)
->fillUsing(function ($request, $model, $attribute, $requestAttribute) {
if ($request->boolean('phone_verified_at')) {
$model->phone_verified_at = now();
}
})
->onlyOnForms()
->canSeeWhen('isAdmin', $this),
Boolean::make(__('Active'), 'active')
->default(true)
->canSeeWhen('isAdmin', $this),

View File

@@ -97,7 +97,7 @@ class NovaMenuRepo
MenuItem::resource(LocaleManagerResource::class),
])->collapsedByDefault(),
])->icon('cog')->collapsedByDefault(),
])->icon('cog')->collapsedByDefault()->canSee(NovaPermissionRepo::isSuperAdmin()),
MenuSection::resource(OnlinePaymentHistoryResource::class)
->icon('credit-card')

View File

@@ -207,6 +207,7 @@
"Users": "Ulanyjylar",
"Variant Also Negotiates": "Wariant hem gepleşik geçirýär",
"Verify Phone Number": "Telefon beligiňizi tassyklaň",
"Phone verified": "Telefon tassyklanan",
"Verify Email Address": "E-poçta salgysyny barlaň",
"Verify Your Email Address": "E-poçta salgyňyzy barlaň",
"Web Server is Down": "Web Serwer ýapyk",