diff --git a/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php b/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php index b5df369a7495..1a3341edfe4b 100644 --- a/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php +++ b/app/Http/Requests/BankTransactionRule/StoreBankTransactionRuleRequest.php @@ -11,9 +11,10 @@ namespace App\Http\Requests\BankTransactionRule; +use App\Models\Account; use App\Http\Requests\Request; -use App\Models\BankTransactionRule; use App\Utils\Traits\MakesHash; +use App\Models\BankTransactionRule; class StoreBankTransactionRuleRequest extends Request { @@ -26,7 +27,7 @@ class StoreBankTransactionRuleRequest extends Request */ public function authorize() : bool { - return auth()->user()->can('create', BankTransactionRule::class); + return auth()->user()->can('create', BankTransactionRule::class) && auth()->user()->account->hasFeature(Account::FEATURE_API);; } public function rules() diff --git a/app/Http/Requests/Design/StoreDesignRequest.php b/app/Http/Requests/Design/StoreDesignRequest.php index 1c55e19ce565..73e494e09844 100644 --- a/app/Http/Requests/Design/StoreDesignRequest.php +++ b/app/Http/Requests/Design/StoreDesignRequest.php @@ -11,6 +11,7 @@ namespace App\Http\Requests\Design; +use App\Models\Account; use App\Http\Requests\Request; class StoreDesignRequest extends Request @@ -22,7 +23,7 @@ class StoreDesignRequest extends Request */ public function authorize() : bool { - return auth()->user()->isAdmin(); + return auth()->user()->isAdmin() && auth()->user()->account->hasFeature(Account::FEATURE_API);; } public function rules() diff --git a/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php b/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php index 9762b7371113..a8f092d38d12 100644 --- a/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php +++ b/app/Http/Requests/GroupSetting/StoreGroupSettingRequest.php @@ -11,10 +11,11 @@ namespace App\Http\Requests\GroupSetting; -use App\DataMapper\ClientSettings; -use App\Http\Requests\Request; -use App\Http\ValidationRules\ValidClientGroupSettingsRule; +use App\Models\Account; use App\Models\GroupSetting; +use App\Http\Requests\Request; +use App\DataMapper\ClientSettings; +use App\Http\ValidationRules\ValidClientGroupSettingsRule; class StoreGroupSettingRequest extends Request { @@ -25,7 +26,7 @@ class StoreGroupSettingRequest extends Request */ public function authorize() : bool { - return auth()->user()->can('create', GroupSetting::class); + return auth()->user()->can('create', GroupSetting::class) && && auth()->user()->account->hasFeature(Account::FEATURE_API);; } public function rules() diff --git a/app/Http/Requests/Subscription/StoreSubscriptionRequest.php b/app/Http/Requests/Subscription/StoreSubscriptionRequest.php index c4e6daae4ff6..aa781f351da1 100644 --- a/app/Http/Requests/Subscription/StoreSubscriptionRequest.php +++ b/app/Http/Requests/Subscription/StoreSubscriptionRequest.php @@ -11,8 +11,9 @@ namespace App\Http\Requests\Subscription; -use App\Http\Requests\Request; +use App\Models\Account; use App\Models\Subscription; +use App\Http\Requests\Request; use Illuminate\Validation\Rule; class StoreSubscriptionRequest extends Request @@ -24,7 +25,7 @@ class StoreSubscriptionRequest extends Request */ public function authorize() { - return auth()->user()->can('create', Subscription::class); + return auth()->user()->can('create', Subscription::class) && auth()->user()->account->hasFeature(Account::FEATURE_API); } /** diff --git a/app/Http/Requests/Webhook/StoreWebhookRequest.php b/app/Http/Requests/Webhook/StoreWebhookRequest.php index 9b36c4331117..9ae591d36cb2 100644 --- a/app/Http/Requests/Webhook/StoreWebhookRequest.php +++ b/app/Http/Requests/Webhook/StoreWebhookRequest.php @@ -11,6 +11,7 @@ namespace App\Http\Requests\Webhook; +use App\Models\Account; use App\Http\Requests\Request; class StoreWebhookRequest extends Request @@ -22,7 +23,7 @@ class StoreWebhookRequest extends Request */ public function authorize() : bool { - return auth()->user()->isAdmin(); + return auth()->user()->isAdmin() && auth()->user()->account->hasFeature(Account::FEATURE_API) } public function rules() diff --git a/app/Models/Account.php b/app/Models/Account.php index 2dbd6373dfa2..a4ec1d5d568b 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -110,6 +110,7 @@ class Account extends BaseModel const FEATURE_USERS = 'users'; // Grandfathered for old Pro users const FEATURE_DOCUMENTS = 'documents'; const FEATURE_USER_PERMISSIONS = 'permissions'; + const FEATURE_SUBSCRIPTIONS = 'subscriptions'; const RESULT_FAILURE = 'failure'; const RESULT_SUCCESS = 'success'; diff --git a/lang/en/texts.php b/lang/en/texts.php index 1766559164fc..8eace4e16873 100644 --- a/lang/en/texts.php +++ b/lang/en/texts.php @@ -4952,6 +4952,7 @@ $LANG = array( 'update_payment' => 'Update Payment', 'markup' => 'Markup', 'unlock_pro' => 'Unlock Pro', + 'preferences' => 'Preferences' );