as we work in ehealt.. this is a major "to have" for us... but as espoCrm is really perfect, it's simply the code below.
easy to do in back-end and perfect for us.
PHP Code:
namespace Espo\Custom\Classes\Select\Box\AccessControlFilters;
use Espo\Core\Select\AccessControl\Filter;
use Espo\Core\Select\Helpers\RelationQueryHelper;
use Espo\Entities\User;
use Espo\ORM\Name\Attribute;
use Espo\ORM\Query\SelectBuilder as QueryBuilder;
class Mandatory implements Filter
{
public function __construct(
private User $user,
private string $entityType,
private RelationQueryHelper $relationQueryHelper,
) {}
public function apply(QueryBuilder $queryBuilder): void
{
$collaboratorsWhere = $this->relationQueryHelper->prepareCollaboratorsWhere(
$this->entityType,
$this->user->getId()
);
$queryBuilder->where($collaboratorsWhere);
}
}
Leave a comment: