use Friendica\Network\HTTPException\NotFoundException;
use Friendica\Security\PermissionSet\Exception\PermissionSetNotFoundException;
use Friendica\Security\PermissionSet\Exception\PermissionSetPersistenceException;
-use Friendica\Security\PermissionSet\Factory;
-use Friendica\Security\PermissionSet\Collection;
-use Friendica\Security\PermissionSet\Entity;
+use Friendica\Security\PermissionSet\Factory\PermissionSet as PermissionSetFactory;
+use Friendica\Security\PermissionSet\Collection\PermissionSets as PermissionSetsCollection;
+use Friendica\Security\PermissionSet\Entity\PermissionSet as PermissionSetEntity;
use Friendica\Util\ACLFormatter;
use Psr\Log\LoggerInterface;
/** @var int Virtual permission set id for public permission */
const PUBLIC = 0;
- /** @var Factory\PermissionSet */
+ /** @var PermissionSetFactory */
protected $factory;
protected static $table_name = 'permissionset';
/** @var ACLFormatter */
private $aclFormatter;
- public function __construct(Database $database, LoggerInterface $logger, Factory\PermissionSet $factory, ACLFormatter $aclFormatter)
+ public function __construct(Database $database, LoggerInterface $logger, PermissionSetFactory $factory, ACLFormatter $aclFormatter)
{
parent::__construct($database, $logger, $factory);
}
/**
- * @param array $condition
- * @param array $params
- *
- * @return Entity\PermissionSet
* @throws NotFoundException
* @throws Exception
*/
- private function selectOne(array $condition, array $params = []): Entity\PermissionSet
+ private function selectOne(array $condition, array $params = []): PermissionSetEntity
{
- return parent::_selectOne($condition, $params);
+ $fields = parent::_selectFirstRowAsArray($condition, $params);
+
+ return $this->factory->createFromTableRow($fields);
}
/**
* @throws Exception
*/
- private function select(array $condition, array $params = []): Collection\PermissionSets
+ private function select(array $condition, array $params = []): PermissionSetsCollection
{
- return new Collection\PermissionSets(parent::_select($condition, $params)->getArrayCopy());
+ return new PermissionSetsCollection(parent::_select($condition, $params)->getArrayCopy());
}
/**
* Converts a given PermissionSet into a DB compatible row array
- *
- * @param Entity\PermissionSet $permissionSet
- *
- * @return array
*/
- protected function convertToTableRow(Entity\PermissionSet $permissionSet): array
+ protected function convertToTableRow(PermissionSetEntity $permissionSet): array
{
return [
'uid' => $permissionSet->uid,
/**
* @param int $id A PermissionSet table row id or self::PUBLIC
* @param int $uid The owner of the PermissionSet
- * @return Entity\PermissionSet
*
* @throws PermissionSetNotFoundException
* @throws PermissionSetPersistenceException
*/
- public function selectOneById(int $id, int $uid): Entity\PermissionSet
+ public function selectOneById(int $id, int $uid): PermissionSetEntity
{
if ($id === self::PUBLIC) {
return $this->factory->createFromString($uid);
* @param int $cid Contact id of the visitor
* @param int $uid User id whom the items belong, used for ownership check.
*
- * @return Collection\PermissionSets
- *
* @throws PermissionSetPersistenceException
*/
- public function selectByContactId(int $cid, int $uid): Collection\PermissionSets
+ public function selectByContactId(int $cid, int $uid): PermissionSetsCollection
{
try {
$cdata = Contact::getPublicAndUserContactID($cid, $uid);
*
* @param int $uid
*
- * @return Entity\PermissionSet
- *
* @throws PermissionSetPersistenceException
*/
- public function selectDefaultForUser(int $uid): Entity\PermissionSet
+ public function selectDefaultForUser(int $uid): PermissionSetEntity
{
try {
$self_contact = Contact::selectFirst(['id'], ['uid' => $uid, 'self' => true]);
} catch (Exception $exception) {
- throw new PermissionSetPersistenceException(sprintf('Cannot select Contact for user %d', $uid));
+ throw new PermissionSetPersistenceException(sprintf('Cannot select Contact for user %d', $uid), $exception);
}
if (!$this->db->isResult($self_contact)) {
* Fetch the public PermissionSet
*
* @param int $uid
- *
- * @return Entity\PermissionSet
*/
- public function selectPublicForUser(int $uid): Entity\PermissionSet
+ public function selectPublicForUser(int $uid): PermissionSetEntity
{
return $this->factory->createFromString($uid, '', '', '', '', self::PUBLIC);
}
/**
* Selects or creates a PermissionSet based on its fields
*
- * @param Entity\PermissionSet $permissionSet
- *
- * @return Entity\PermissionSet
- *
* @throws PermissionSetPersistenceException
*/
- public function selectOrCreate(Entity\PermissionSet $permissionSet): Entity\PermissionSet
+ public function selectOrCreate(PermissionSetEntity $permissionSet): PermissionSetEntity
{
if ($permissionSet->id) {
return $permissionSet;
}
/**
- * @param Entity\PermissionSet $permissionSet
- *
- * @return Entity\PermissionSet
- *
* @throws PermissionSetPersistenceException
*/
- public function save(Entity\PermissionSet $permissionSet): Entity\PermissionSet
+ public function save(PermissionSetEntity $permissionSet): PermissionSetEntity
{
// Don't save/update the common public PermissionSet
if ($permissionSet->isPublic()) {