. */ namespace SP\Domain\Account; use SP\Core\Exceptions\ConstraintException; use SP\Core\Exceptions\QueryException; use SP\DataModel\Dto\AccountAclDto; use SP\DataModel\ProfileData; use SP\Domain\Account\Services\AccountAcl; use SP\Domain\User\Services\UserLoginResponse; use SP\Infrastructure\File\FileCacheInterface; /** * Class AccountAclService * * @package SP\Domain\Account\Services */ interface AccountAclServiceInterface { /** * Sets grants which don't need the account's data * * @param UserLoginResponse $userData * @param ProfileData $profileData * * @return bool */ public static function getShowPermission(UserLoginResponse $userData, ProfileData $profileData): bool; /** * Obtener la ACL de una cuenta * * @param int $actionId * @param AccountAclDto|null $accountAclDto * @param bool $isHistory * * @return AccountAcl * @throws ConstraintException * @throws QueryException */ public function getAcl(int $actionId, ?AccountAclDto $accountAclDto = null, bool $isHistory = false): AccountAcl; /** * Resturns an stored ACL * * @param int $accountId * @param int $actionId * * @return AccountAcl */ public function getAclFromCache(int $accountId, int $actionId): ?AccountAcl; /** * @param int $accountId * @param int $actionId * * @return string */ public function getCacheFileForAcl(int $accountId, int $actionId): string; /** * Saves the ACL * * @param AccountAcl $accountAcl * * @return null|FileCacheInterface */ public function saveAclInCache(AccountAcl $accountAcl): ?FileCacheInterface; }