mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-30 21:21:09 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			421 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			421 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use Crater\Models\Customer;
 | |
| use Crater\Models\CustomField;
 | |
| use Crater\Models\Estimate;
 | |
| use Crater\Models\ExchangeRateProvider;
 | |
| use Crater\Models\Expense;
 | |
| use Crater\Models\Invoice;
 | |
| use Crater\Models\Item;
 | |
| use Crater\Models\Note;
 | |
| use Crater\Models\Payment;
 | |
| use Crater\Models\RecurringInvoice;
 | |
| use Crater\Models\TaxType;
 | |
| 
 | |
| return [
 | |
|     'abilities' => [
 | |
| 
 | |
|         // Customer
 | |
|         [
 | |
|             "name" => "view customer",
 | |
|             "ability" => "view-customer",
 | |
|             "model" => Customer::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create customer",
 | |
|             "ability" => "create-customer",
 | |
|             "model" => Customer::class,
 | |
|             "depends_on" => [
 | |
|                 'view-customer',
 | |
|                 'view-custom-field',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit customer",
 | |
|             "ability" => "edit-customer",
 | |
|             "model" => Customer::class,
 | |
|             "depends_on" => [
 | |
|                 'view-customer',
 | |
|                 'view-custom-field',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete customer",
 | |
|             "ability" => "delete-customer",
 | |
|             "model" => Customer::class,
 | |
|             "depends_on" => [
 | |
|                 'view-customer',
 | |
|             ]
 | |
|         ],
 | |
| 
 | |
|         // Item
 | |
|         [
 | |
|             "name" => "view item",
 | |
|             "ability" => "view-item",
 | |
|             "model" => Item::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create item",
 | |
|             "ability" => "create-item",
 | |
|             "model" => Item::class,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|                 'view-tax-type'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit item",
 | |
|             "ability" => "edit-item",
 | |
|             "model" => Item::class,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete item",
 | |
|             "ability" => "delete-item",
 | |
|             "model" => Item::class,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|             ]
 | |
|         ],
 | |
| 
 | |
|         // Tax Type
 | |
|         [
 | |
|             "name" => "view tax type",
 | |
|             "ability" => "view-tax-type",
 | |
|             "model" => TaxType::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create tax type",
 | |
|             "ability" => "create-tax-type",
 | |
|             "model" => TaxType::class,
 | |
|             "depends_on" => [
 | |
|                 'view-tax-type',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit tax type",
 | |
|             "ability" => "edit-tax-type",
 | |
|             "model" => TaxType::class,
 | |
|             "depends_on" => [
 | |
|                 'view-tax-type',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete tax type",
 | |
|             "ability" => "delete-tax-type",
 | |
|             "model" => TaxType::class,
 | |
|             "depends_on" => [
 | |
|                 'view-tax-type',
 | |
|             ]
 | |
|         ],
 | |
| 
 | |
|         // Estimate
 | |
|         [
 | |
|             "name" => "view estimate",
 | |
|             "ability" => "view-estimate",
 | |
|             "model" => Estimate::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create estimate",
 | |
|             "ability" => "create-estimate",
 | |
|             "model" => Estimate::class,
 | |
|             "depends_on" => [
 | |
|                 'view-estimate',
 | |
|                 'view-item',
 | |
|                 'view-tax-type',
 | |
|                 'view-customer',
 | |
|                 'view-custom-field',
 | |
|                 'view-all-notes'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit estimate",
 | |
|             "ability" => "edit-estimate",
 | |
|             "model" => Estimate::class,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|                 'view-estimate',
 | |
|                 'view-tax-type',
 | |
|                 'view-customer',
 | |
|                 'view-custom-field',
 | |
|                 'view-all-notes'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete estimate",
 | |
|             "ability" => "delete-estimate",
 | |
|             "model" => Estimate::class,
 | |
|             "depends_on" => [
 | |
|                 'view-estimate',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "send estimate",
 | |
|             "ability" => "send-estimate",
 | |
|             "model" => Estimate::class,
 | |
|         ],
 | |
| 
 | |
|         // Invoice
 | |
|         [
 | |
|             "name" => "view invoice",
 | |
|             "ability" => "view-invoice",
 | |
|             "model" => Invoice::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create invoice",
 | |
|             "ability" => "create-invoice",
 | |
|             "model" => Invoice::class,
 | |
|             'owner_only' => false,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|                 'view-invoice',
 | |
|                 'view-tax-type',
 | |
|                 'view-customer',
 | |
|                 'view-custom-field',
 | |
|                 'view-all-notes'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit invoice",
 | |
|             "ability" => "edit-invoice",
 | |
|             "model" => Invoice::class,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|                 'view-invoice',
 | |
|                 'view-tax-type',
 | |
|                 'view-customer',
 | |
|                 'view-custom-field',
 | |
|                 'view-all-notes'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete invoice",
 | |
|             "ability" => "delete-invoice",
 | |
|             "model" => Invoice::class,
 | |
|             "depends_on" => [
 | |
|                 'view-invoice'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "send invoice",
 | |
|             "ability" => "send-invoice",
 | |
|             "model" => Invoice::class,
 | |
|         ],
 | |
| 
 | |
|         // Recurring Invoice
 | |
|         [
 | |
|             "name" => "view recurring invoice",
 | |
|             "ability" => "view-recurring-invoice",
 | |
|             "model" => RecurringInvoice::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create recurring invoice",
 | |
|             "ability" => "create-recurring-invoice",
 | |
|             "model" => RecurringInvoice::class,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|                 'view-recurring-invoice',
 | |
|                 'view-tax-type',
 | |
|                 'view-customer',
 | |
|                 'view-all-notes',
 | |
|                 'send-invoice'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit recurring invoice",
 | |
|             "ability" => "edit-recurring-invoice",
 | |
|             "model" => RecurringInvoice::class,
 | |
|             "depends_on" => [
 | |
|                 'view-item',
 | |
|                 'view-recurring-invoice',
 | |
|                 'view-tax-type',
 | |
|                 'view-customer',
 | |
|                 'view-all-notes',
 | |
|                 'send-invoice'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete recurring invoice",
 | |
|             "ability" => "delete-recurring-invoice",
 | |
|             "model" => RecurringInvoice::class,
 | |
|             "depends_on" => [
 | |
|                 'view-recurring-invoice',
 | |
|             ]
 | |
|         ],
 | |
| 
 | |
|         // Payment
 | |
|         [
 | |
|             "name" => "view payment",
 | |
|             "ability" => "view-payment",
 | |
|             "model" => Payment::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create payment",
 | |
|             "ability" => "create-payment",
 | |
|             "model" => Payment::class,
 | |
|             "depends_on" => [
 | |
|                 'view-customer',
 | |
|                 'view-payment',
 | |
|                 'view-invoice',
 | |
|                 'view-custom-field',
 | |
|                 'view-all-notes'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit payment",
 | |
|             "ability" => "edit-payment",
 | |
|             "model" => Payment::class,
 | |
|             "depends_on" => [
 | |
|                 'view-customer',
 | |
|                 'view-payment',
 | |
|                 'view-invoice',
 | |
|                 'view-custom-field',
 | |
|                 'view-all-notes'
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete payment",
 | |
|             "ability" => "delete-payment",
 | |
|             "model" => Payment::class,
 | |
|             "depends_on" => [
 | |
|                 'view-payment',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "send payment",
 | |
|             "ability" => "send-payment",
 | |
|             "model" => Payment::class,
 | |
|         ],
 | |
| 
 | |
|         // Expense
 | |
|         [
 | |
|             "name" => "view expense",
 | |
|             "ability" => "view-expense",
 | |
|             "model" => Expense::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create expense",
 | |
|             "ability" => "create-expense",
 | |
|             "model" => Expense::class,
 | |
|             "depends_on" => [
 | |
|                 'view-customer',
 | |
|                 'view-expense',
 | |
|                 'view-custom-field',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit expense",
 | |
|             "ability" => "edit-expense",
 | |
|             "model" => Expense::class,
 | |
|             "depends_on" => [
 | |
|                 'view-customer',
 | |
|                 'view-expense',
 | |
|                 'view-custom-field',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete expense",
 | |
|             "ability" => "delete-expense",
 | |
|             "model" => Expense::class,
 | |
|             "depends_on" => [
 | |
|                 'view-expense',
 | |
|             ]
 | |
|         ],
 | |
| 
 | |
|         // Custom Field
 | |
|         [
 | |
|             "name" => "view custom field",
 | |
|             "ability" => "view-custom-field",
 | |
|             "model" => CustomField::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create custom field",
 | |
|             "ability" => "create-custom-field",
 | |
|             "model" => CustomField::class,
 | |
|             "depends_on" => [
 | |
|                 'view-custom-field',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit custom field",
 | |
|             "ability" => "edit-custom-field",
 | |
|             "model" => CustomField::class,
 | |
|             "depends_on" => [
 | |
|                 'view-custom-field',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete custom field",
 | |
|             "ability" => "delete-custom-field",
 | |
|             "model" => CustomField::class,
 | |
|             "depends_on" => [
 | |
|                 'view-custom-field',
 | |
|             ]
 | |
|         ],
 | |
| 
 | |
|         // Financial Reports
 | |
|         [
 | |
|             "name" => "view financial reports",
 | |
|             "ability" => "view-financial-reports",
 | |
|             "model" => null,
 | |
|         ],
 | |
| 
 | |
|         // Exchange Rate Provider
 | |
|         [
 | |
|             "name" => "view exchange rate provider",
 | |
|             "ability" => "view-exchange-rate-provider",
 | |
|             "model" => ExchangeRateProvider::class,
 | |
|             'owner_only' => false,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "create exchange rate provider",
 | |
|             "ability" => "create-exchange-rate-provider",
 | |
|             "model" => ExchangeRateProvider::class,
 | |
|             'owner_only' => false,
 | |
|             "depends_on" => [
 | |
|                 'view-exchange-rate-provider',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "edit exchange rate provider",
 | |
|             "ability" => "edit-exchange-rate-provider",
 | |
|             "model" => ExchangeRateProvider::class,
 | |
|             'owner_only' => false,
 | |
|             "depends_on" => [
 | |
|                 'view-exchange-rate-provider',
 | |
|             ]
 | |
|         ],
 | |
|         [
 | |
|             "name" => "delete exchange rate provider",
 | |
|             "ability" => "delete-exchange-rate-provider",
 | |
|             "model" => ExchangeRateProvider::class,
 | |
|             'owner_only' => false,
 | |
|             "depends_on" => [
 | |
|                 'view-exchange-rate-provider',
 | |
|             ]
 | |
|         ],
 | |
| 
 | |
|         // Settings
 | |
|         [
 | |
|             "name" => "view company dashboard",
 | |
|             "ability" => "dashboard",
 | |
|             "model" => null,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "view all notes",
 | |
|             "ability" => "view-all-notes",
 | |
|             "model" => Note::class,
 | |
|         ],
 | |
|         [
 | |
|             "name" => "manage notes",
 | |
|             "ability" => "manage-all-notes",
 | |
|             "model" => Note::class,
 | |
|             "depends_on" => [
 | |
|                 'view-all-notes'
 | |
|             ]
 | |
|         ]
 | |
|     ]
 | |
| ];
 |