Initial commit

This commit is contained in:
gustavooth
2026-07-23 22:56:30 -03:00
commit 22a1006598
1816 changed files with 410742 additions and 0 deletions
@@ -0,0 +1,38 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
class AiPolicy extends BasePolicy
{
public function getSettings(Request $request)
{
return $this->currentUserCan('fcrm_manage_settings');
}
public function saveSettings(Request $request)
{
return $this->currentUserCan('fcrm_manage_settings');
}
public function testConnection(Request $request)
{
return $this->currentUserCan('fcrm_manage_settings');
}
public function generate(Request $request)
{
return $this->currentUserCan('fcrm_manage_emails');
}
public function generateEmailBody(Request $request)
{
return $this->currentUserCan('fcrm_manage_emails');
}
public function contactSummary(Request $request)
{
return $this->currentUserCan('fcrm_read_contacts');
}
}
@@ -0,0 +1,33 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\App\Services\PermissionManager;
use FluentCrm\Framework\Foundation\Policy;
use FluentCrm\Framework\Http\Request\Request;
/**
* BasePolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class BasePolicy extends Policy
{
/**
* Check user permission for any method
* @param Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('manage_options');
}
public function currentUserCan($permission)
{
return PermissionManager::currentUserCan($permission);
}
}
@@ -0,0 +1,44 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* CampaignPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class CampaignPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
if ($request->method() == 'GET') {
return $this->currentUserCan('fcrm_read_emails');
}
return $this->currentUserCan('fcrm_manage_emails');
}
public function delete(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
public function deleteCampaignEmails(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
public function handleBulkAction(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
}
@@ -0,0 +1,66 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\App\Http\Policies\BasePolicy;
use FluentCrm\App\Services\Helper;
use FluentCrm\Framework\Http\Request\Request;
class CompanyPolicy extends BasePolicy
{
private function isEnabled()
{
return Helper::isCompanyEnabled();
}
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->isEnabled() && $this->currentUserCan('fcrm_manage_contact_cats');
}
public function delete(Request $request)
{
return $this->isEnabled() && $this->currentUserCan('fcrm_manage_contact_cats_delete');
}
/**
* Check user permission for bulk company actions.
*
* The delete bulk action permanently removes companies, so it must require
* the stronger delete permission while other bulk updates keep the manage
* permission used by the company module.
*
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function handleBulkActions(Request $request)
{
$actionName = sanitize_text_field($request->get('action_name', ''));
if ($actionName == 'delete_companies') {
return $this->delete($request);
}
return $this->verifyRequest($request);
}
public function detachSubscribers(Request $request)
{
return $this->verifyRequest($request);
}
public function bulkDeleteNotes(Request $request)
{
return $this->verifyRequest($request);
}
public function deleteSubscribes(Request $request)
{
return $this->detachSubscribers($request);
}
}
@@ -0,0 +1,32 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* CustomFieldsPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class CustomFieldsPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_manage_settings');
}
//TODO: masiur vai
public function getLabels(Request $request)
{
return true;
}
}
@@ -0,0 +1,27 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
class EmailPatternPolicy extends BasePolicy
{
public function verifyRequest(Request $request)
{
if ($request->method() == 'GET') {
return $this->currentUserCan('fcrm_read_emails');
}
return $this->currentUserCan('fcrm_manage_emails');
}
public function delete(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
public function handleBulkAction(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
}
@@ -0,0 +1,27 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* FormsPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class FormsPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_manage_forms');
}
}
@@ -0,0 +1,53 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* FunnelPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class FunnelPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
if ($request->method() == 'GET') {
return $this->currentUserCan('fcrm_read_funnels');
}
return $this->currentUserCan('fcrm_write_funnels');
}
public function delete(Request $request)
{
return $this->currentUserCan('fcrm_delete_funnels');
}
public function handleBulkAction(Request $request)
{
if ($request->get('action_name') == 'delete_funnels') {
return $this->currentUserCan('fcrm_delete_funnels');
}
return $this->currentUserCan('fcrm_write_funnels');
}
public function removeBulkSubscribers(Request $request)
{
return $this->currentUserCan('fcrm_delete_funnels');
}
public function deleteSubscribers(Request $request)
{
return $this->currentUserCan('fcrm_delete_funnels');
}
}
@@ -0,0 +1,24 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* ImportUserPolicy - Import Contact Policy
*
* @package FluentCrm\App\Http
*/
class ImportUserPolicy extends BasePolicy {
/**
* Check user permission for any method
*
* @param \FluentCrm\Framework\Http\Request\Request $request
*
* @return Boolean
*/
public function verifyRequest( Request $request )
{
return $this->currentUserCan('fcrm_manage_contacts');
}
}
@@ -0,0 +1,42 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* ListPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class ListPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_manage_contact_cats');
}
/**
* Check user permission for delete lists
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function remove(Request $request)
{
return $this->currentUserCan('fcrm_manage_contact_cats_delete');
}
public function handleBulkAction(Request $request)
{
return $this->currentUserCan('fcrm_manage_contact_cats_delete');
}
}
@@ -0,0 +1,26 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* PublicPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class PublicPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return true;
}
}
@@ -0,0 +1,36 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* ReportPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class ReportPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_view_dashboard');
}
public function getEmails(Request $request)
{
return $this->currentUserCan('fcrm_read_emails');
}
public function deleteEmails(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
}
@@ -0,0 +1,12 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
class SettingsPolicy extends BasePolicy
{
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_manage_settings');
}
}
@@ -0,0 +1,76 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* SubscriberPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class SubscriberPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
if ($request->method() == 'GET') {
return $this->currentUserCan('fcrm_read_contacts');
}
return $this->currentUserCan('fcrm_manage_contacts');
}
public function deleteSubscriber(Request $request)
{
return $this->currentUserCan('fcrm_manage_contacts_delete');
}
public function deleteSubscribers(Request $request)
{
return $this->currentUserCan('fcrm_manage_contacts_delete');
}
public function deleteNote(Request $request)
{
return $this->currentUserCan('fcrm_manage_contacts_delete');
}
public function bulkDeleteNotes(Request $request)
{
return $this->currentUserCan('fcrm_manage_contacts_delete');
}
public function deleteEmails(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
public function handleBulkActions(Request $request)
{
$actionName = $request->get('action_name');
if (!$actionName) {
return $this->currentUserCan('fcrm_manage_contacts');
}
$actionMaps = [
'add_to_email_sequence' => 'fcrm_manage_emails',
'add_to_automation' => 'fcrm_write_funnels',
'delete_contacts' => 'fcrm_manage_contacts_delete'
];
if (isset($actionMaps[$actionName])) {
return $this->currentUserCan($actionMaps[$actionName]);
}
return $this->currentUserCan('fcrm_manage_contacts');
}
}
@@ -0,0 +1,42 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* TagPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class TagPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_manage_contact_cats');
}
/**
* Check user permission for delete tags
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function remove(Request $request)
{
return $this->currentUserCan('fcrm_manage_contact_cats_delete');
}
public function handleBulkAction(Request $request)
{
return $this->currentUserCan('fcrm_manage_contact_cats_delete');
}
}
@@ -0,0 +1,41 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* TemplatePolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class TemplatePolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_templates');
}
public function getBuiltInTemplate(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_templates');
}
public function delete(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
public function handleBulkAction(Request $request)
{
return $this->currentUserCan('fcrm_manage_email_delete');
}
}
@@ -0,0 +1,26 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* UsersPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class UsersPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return current_user_can('list_users');
}
}
@@ -0,0 +1,26 @@
<?php
namespace FluentCrm\App\Http\Policies;
use FluentCrm\Framework\Http\Request\Request;
/**
* WebhookPolicy - REST API Permission Policy
*
* @package FluentCrm\App\Http
*
* @version 1.0.0
*/
class WebhookPolicy extends BasePolicy
{
/**
* Check user permission for any method
* @param \FluentCrm\Framework\Http\Request\Request $request
* @return Boolean
*/
public function verifyRequest(Request $request)
{
return $this->currentUserCan('fcrm_manage_settings');
}
}