diff --git a/lib/SP/Repositories/Account/AccountFavoriteRepository.php b/lib/SP/Repositories/Account/AccountFavoriteRepository.php index 3b13cb73..a5c3c020 100644 --- a/lib/SP/Repositories/Account/AccountFavoriteRepository.php +++ b/lib/SP/Repositories/Account/AccountFavoriteRepository.php @@ -63,8 +63,7 @@ class AccountFavoriteRepository extends Repository { $queryData = new QueryData(); $queryData->setQuery('INSERT INTO AccountToFavorite SET accountId = ?, userId = ?'); - $queryData->addParam($accountId); - $queryData->addParam($userId); + $queryData->setParams([$accountId, $userId]); $queryData->setOnErrorMessage(__u('Error al añadir favorito')); return DbWrapper::getQuery($queryData, $this->db); @@ -83,8 +82,7 @@ class AccountFavoriteRepository extends Repository { $queryData = new QueryData(); $queryData->setQuery('DELETE FROM AccountToFavorite WHERE accountId = ? AND userId = ?'); - $queryData->addParam($accountId); - $queryData->addParam($userId); + $queryData->setParams([$accountId, $userId]); $queryData->setOnErrorMessage(__u('Error al eliminar favorito')); DbWrapper::getQuery($queryData, $this->db); diff --git a/lib/SP/Repositories/Account/AccountFileRepository.php b/lib/SP/Repositories/Account/AccountFileRepository.php index 78b74292..6ea36d79 100644 --- a/lib/SP/Repositories/Account/AccountFileRepository.php +++ b/lib/SP/Repositories/Account/AccountFileRepository.php @@ -24,10 +24,10 @@ namespace SP\Repositories\Account; -use SP\Core\Exceptions\SPException; use SP\DataModel\FileData; use SP\DataModel\FileExtData; use SP\DataModel\ItemSearchData; +use SP\Repositories\NoSuchItemException; use SP\Repositories\Repository; use SP\Repositories\RepositoryItemInterface; use SP\Repositories\RepositoryItemTrait; @@ -63,9 +63,9 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac extension = ?, thumb = ?'; - $Data = new QueryData(); - $Data->setQuery($query); - $Data->setParams([ + $queryData = new QueryData(); + $queryData->setQuery($query); + $queryData->setParams([ $itemData->getAccountId(), $itemData->getName(), $itemData->getType(), @@ -74,9 +74,9 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac $itemData->getExtension(), $itemData->getThumb() ]); - $Data->setOnErrorMessage(__u('No se pudo guardar el archivo')); + $queryData->setOnErrorMessage(__u('No se pudo guardar el archivo')); - DbWrapper::getQuery($Data, $this->db); + DbWrapper::getQuery($queryData, $this->db); return $this->db->getLastId(); } @@ -111,12 +111,12 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac INNER JOIN Client C ON A.clientId = C.id WHERE AF.id = ? LIMIT 1'; - $Data = new QueryData(); - $Data->setMapClassName(FileExtData::class); - $Data->setQuery($query); - $Data->addParam($id); + $queryData = new QueryData(); + $queryData->setMapClassName(FileExtData::class); + $queryData->setQuery($query); + $queryData->addParam($id); - return DbWrapper::getResults($Data, $this->db); + return DbWrapper::getResults($queryData, $this->db); } /** @@ -143,12 +143,12 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac INNER JOIN Client C ON A.clientId = C.id WHERE AF.id = ? LIMIT 1'; - $Data = new QueryData(); - $Data->setMapClassName(FileExtData::class); - $Data->setQuery($query); - $Data->addParam($id); + $queryData = new QueryData(); + $queryData->setMapClassName(FileExtData::class); + $queryData->setQuery($query); + $queryData->addParam($id); - return DbWrapper::getResults($Data, $this->db); + return DbWrapper::getResults($queryData, $this->db); } /** @@ -171,12 +171,12 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac FROM AccountFile AF WHERE accountId = ?'; - $Data = new QueryData(); - $Data->setMapClassName(FileData::class); - $Data->setQuery($query); - $Data->addParam($id); + $queryData = new QueryData(); + $queryData->setMapClassName(FileData::class); + $queryData->setQuery($query); + $queryData->addParam($id); - return DbWrapper::getResultsArray($Data, $this->db); + return DbWrapper::getResultsArray($queryData, $this->db); } /** @@ -201,11 +201,11 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac INNER JOIN Account A ON A.id = AF.accountId INNER JOIN Client C ON A.clientId = C.id'; - $Data = new QueryData(); - $Data->setMapClassName(FileExtData::class); - $Data->setQuery($query); + $queryData = new QueryData(); + $queryData->setMapClassName(FileExtData::class); + $queryData->setQuery($query); - return DbWrapper::getResultsArray($Data, $this->db); + return DbWrapper::getResultsArray($queryData, $this->db); } /** @@ -232,35 +232,38 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac INNER JOIN Client C ON A.clientId = C.id WHERE AF.id IN (' . $this->getParamsFromArray($ids) . ')'; - $Data = new QueryData(); - $Data->setMapClassName(FileExtData::class); - $Data->setQuery($query); - $Data->setParams($ids); + $queryData = new QueryData(); + $queryData->setMapClassName(FileExtData::class); + $queryData->setQuery($query); + $queryData->setParams($ids); - return DbWrapper::getResultsArray($Data, $this->db); + return DbWrapper::getResultsArray($queryData, $this->db); } /** * Deletes an item * * @param $id + * * @return AccountFileRepository - * @throws SPException + * @throws NoSuchItemException + * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\QueryException */ public function delete($id) { $query = /** @lang SQL */ 'DELETE FROM AccountFile WHERE id = ? LIMIT 1'; - $Data = new QueryData(); - $Data->setQuery($query); - $Data->addParam($id); - $Data->setOnErrorMessage(__u('Error al eliminar el archivo')); + $queryData = new QueryData(); + $queryData->setQuery($query); + $queryData->addParam($id); + $queryData->setOnErrorMessage(__u('Error al eliminar el archivo')); - DbWrapper::getQuery($Data, $this->db); + DbWrapper::getQuery($queryData, $this->db); - if ($Data->getQueryNumRows() === 0) { - throw new SPException(__u('Archivo no encontrado'), SPException::INFO); + if ($queryData->getQueryNumRows() === 0) { + throw new NoSuchItemException(__u('Archivo no encontrado')); } return $this; @@ -324,31 +327,31 @@ class AccountFileRepository extends Repository implements RepositoryItemInterfac */ public function search(ItemSearchData $itemSearchData) { - $Data = new QueryData(); - $Data->setMapClassName(FileExtData::class); - $Data->setSelect('AF.id, AF.name, CONCAT(ROUND(AF.size/1000, 2), "KB") AS size, AF.thumb, AF.type, A.name as accountName, C.name as clientName'); - $Data->setFrom('AccountFile AF INNER JOIN Account A ON A.id = AF.accountId INNER JOIN Client C ON A.clientId = C.id'); - $Data->setOrder('A.name'); + $queryData = new QueryData(); + $queryData->setMapClassName(FileExtData::class); + $queryData->setSelect('AF.id, AF.name, CONCAT(ROUND(AF.size/1000, 2), "KB") AS size, AF.thumb, AF.type, A.name as accountName, C.name as clientName'); + $queryData->setFrom('AccountFile AF INNER JOIN Account A ON A.id = AF.accountId INNER JOIN Client C ON A.clientId = C.id'); + $queryData->setOrder('A.name'); if ($itemSearchData->getSeachString() !== '') { - $Data->setWhere('AF.name LIKE ? OR AF.type LIKE ? OR A.name LIKE ? OR C.name LIKE ?'); + $queryData->setWhere('AF.name LIKE ? OR AF.type LIKE ? OR A.name LIKE ? OR C.name LIKE ?'); $search = '%' . $itemSearchData->getSeachString() . '%'; - $Data->addParam($search); - $Data->addParam($search); - $Data->addParam($search); - $Data->addParam($search); + $queryData->addParam($search); + $queryData->addParam($search); + $queryData->addParam($search); + $queryData->addParam($search); } - $Data->setLimit('?,?'); - $Data->addParam($itemSearchData->getLimitStart()); - $Data->addParam($itemSearchData->getLimitCount()); + $queryData->setLimit('?,?'); + $queryData->addParam($itemSearchData->getLimitStart()); + $queryData->addParam($itemSearchData->getLimitCount()); DbWrapper::setFullRowCount(); - $queryRes = DbWrapper::getResultsArray($Data, $this->db); + $queryRes = DbWrapper::getResultsArray($queryData, $this->db); - $queryRes['count'] = $Data->getQueryNumRows(); + $queryRes['count'] = $queryData->getQueryNumRows(); return $queryRes; } diff --git a/lib/SP/Repositories/Account/AccountHistoryRepository.php b/lib/SP/Repositories/Account/AccountHistoryRepository.php index cc8b1580..3282ad42 100644 --- a/lib/SP/Repositories/Account/AccountHistoryRepository.php +++ b/lib/SP/Repositories/Account/AccountHistoryRepository.php @@ -70,20 +70,7 @@ class AccountHistoryRepository extends Repository implements RepositoryItemInter $queryData->setQuery($query); $queryData->addParam($id); - $items = []; - - foreach (DbWrapper::getResultsArray($queryData, $this->db) as $history) { - // Comprobamos si la entrada en el historial es la primera (no tiene editor ni fecha de edición) - if (empty($history->dateEdit) || $history->dateEdit === '0000-00-00 00:00:00') { - $date = $history->dateAdd . ' - ' . $history->userAdd; - } else { - $date = $history->dateEdit . ' - ' . $history->userEdit; - } - - $items[$history->id] = $date; - } - - return $items; + return DbWrapper::getResultsArray($queryData, $this->db); } /** @@ -136,7 +123,7 @@ class AccountHistoryRepository extends Repository implements RepositoryItemInter (accountId, categoryId, clientId, - name, + `name`, login, url, pass, @@ -159,7 +146,7 @@ class AccountHistoryRepository extends Repository implements RepositoryItemInter SELECT id, categoryId, clientId, - name, + `name`, login, url, pass, @@ -304,20 +291,7 @@ class AccountHistoryRepository extends Repository implements RepositoryItemInter $queryData = new QueryData(); $queryData->setQuery($query); - $items = []; - - foreach (DbWrapper::getResultsArray($queryData, $this->db) as $history) { - // Comprobamos si la entrada en el historial es la primera (no tiene editor ni fecha de edición) - if (empty($history->dateEdit) || $history->dateEdit === '0000-00-00 00:00:00') { - $date = $history->dateAdd . ' - ' . $history->userAdd; - } else { - $date = $history->dateEdit . ' - ' . $history->userEdit; - } - - $items[$history->id] = $date; - } - - return $items; + return DbWrapper::getResultsArray($queryData, $this->db); } /** @@ -393,31 +367,31 @@ class AccountHistoryRepository extends Repository implements RepositoryItemInter */ public function search(ItemSearchData $SearchData) { - $Data = new QueryData(); - $Data->setSelect('AH.id, AH.name, C.name as clientName, C2.name as categoryName, IFNULL(AH.dateEdit,AH.dateAdd) as date, AH.isModify, AH.isDeleted'); - $Data->setFrom('AccountHistory AH + $queryData = new QueryData(); + $queryData->setSelect('AH.id, AH.name, C.name as clientName, C2.name as categoryName, IFNULL(AH.dateEdit,AH.dateAdd) as date, AH.isModify, AH.isDeleted'); + $queryData->setFrom('AccountHistory AH INNER JOIN Client C ON AH.clientId = C.id INNER JOIN Category C2 ON AH.categoryId = C2.id '); - $Data->setOrder('AH.name, C.name, AH.id DESC'); + $queryData->setOrder('AH.name, C.name, AH.id DESC'); if ($SearchData->getSeachString() !== '') { - $Data->setWhere('AH.name LIKE ? OR C.name LIKE ?'); + $queryData->setWhere('AH.name LIKE ? OR C.name LIKE ?'); $search = '%' . $SearchData->getSeachString() . '%'; - $Data->addParam($search); - $Data->addParam($search); + $queryData->addParam($search); + $queryData->addParam($search); } - $Data->setLimit('?,?'); - $Data->addParam($SearchData->getLimitStart()); - $Data->addParam($SearchData->getLimitCount()); + $queryData->setLimit('?,?'); + $queryData->addParam($SearchData->getLimitStart()); + $queryData->addParam($SearchData->getLimitCount()); DbWrapper::setFullRowCount(); - $queryRes = DbWrapper::getResultsArray($Data, $this->db); + $queryRes = DbWrapper::getResultsArray($queryData, $this->db); - $queryRes['count'] = $Data->getQueryNumRows(); + $queryRes['count'] = $queryData->getQueryNumRows(); return $queryRes; } @@ -430,7 +404,7 @@ class AccountHistoryRepository extends Repository implements RepositoryItemInter public function getAccountsPassData() { $query = /** @lang SQL */ - 'SELECT id, name, pass, `key`, mPassHash + 'SELECT id, `name`, pass, `key`, mPassHash FROM AccountHistory WHERE BIT_LENGTH(pass) > 0'; $queryData = new QueryData(); @@ -456,14 +430,16 @@ class AccountHistoryRepository extends Repository implements RepositoryItemInter mPassHash = ? WHERE id = ?'; - $Data = new QueryData(); - $Data->setQuery($query); - $Data->addParam($request->pass); - $Data->addParam($request->key); - $Data->addParam($request->hash); - $Data->addParam($request->id); - $Data->setOnErrorMessage(__u('Error al actualizar la clave')); + $queryData = new QueryData(); + $queryData->setQuery($query); + $queryData->setParams([ + $request->pass, + $request->key, + $request->hash, + $request->id + ]); + $queryData->setOnErrorMessage(__u('Error al actualizar la clave')); - return DbWrapper::getQuery($Data, $this->db); + return DbWrapper::getQuery($queryData, $this->db); } } \ No newline at end of file diff --git a/lib/SP/Repositories/Account/AccountRepository.php b/lib/SP/Repositories/Account/AccountRepository.php index 8f5f773d..60024083 100644 --- a/lib/SP/Repositories/Account/AccountRepository.php +++ b/lib/SP/Repositories/Account/AccountRepository.php @@ -40,6 +40,7 @@ use SP\DataModel\ItemSearchData; use SP\Mvc\Model\QueryAssignment; use SP\Mvc\Model\QueryCondition; use SP\Mvc\Model\QueryJoin; +use SP\Repositories\NoSuchItemException; use SP\Repositories\Repository; use SP\Repositories\RepositoryItemInterface; use SP\Repositories\RepositoryItemTrait; @@ -128,11 +129,11 @@ class AccountRepository extends Repository implements RepositoryItemInterface $query = /** @lang SQL */ 'UPDATE Account SET countDecrypt = (countDecrypt + 1) WHERE id = ? LIMIT 1'; - $Data = new QueryData(); - $Data->setQuery($query); - $Data->addParam($id); + $queryData = new QueryData(); + $queryData->setQuery($query); + $queryData->addParam($id); - return DbWrapper::getQuery($Data, $this->db); + return DbWrapper::getQuery($queryData, $this->db); } /** @@ -151,7 +152,7 @@ class AccountRepository extends Repository implements RepositoryItemInterface 'INSERT INTO Account SET clientId = ?, categoryId = ?, - name = ?, + `name` = ?, login = ?, url = ?, pass = ?, @@ -220,11 +221,13 @@ class AccountRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($accountRequest->pass); - $queryData->addParam($accountRequest->key); - $queryData->addParam($accountRequest->userEditId); - $queryData->addParam($accountRequest->passDateChange); - $queryData->addParam($accountRequest->id); + $queryData->setParams([ + $accountRequest->pass, + $accountRequest->key, + $accountRequest->userEditId, + $accountRequest->passDateChange, + $accountRequest->id + ]); $queryData->setOnErrorMessage(__u('Error al actualizar la clave')); return DbWrapper::getQuery($queryData, $this->db); @@ -249,9 +252,7 @@ class AccountRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($request->pass); - $queryData->addParam($request->key); - $queryData->addParam($request->id); + $queryData->setParams([$request->pass, $request->key, $request->id]); $queryData->setOnErrorMessage(__u('Error al actualizar la clave')); return DbWrapper::getQuery($queryData, $this->db); @@ -261,16 +262,17 @@ class AccountRepository extends Repository implements RepositoryItemInterface * Restaurar una cuenta desde el histórico. * * @param int $historyId El Id del registro en el histórico + * @param int $userId User's Id * * @return bool * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException */ - public function editRestore($historyId) + public function editRestore($historyId, $userId) { $query = /** @lang SQL */ 'UPDATE Account dst, - (SELECT * FROM AccountHistory AH WHERE AH.id = :id) src SET + (SELECT * FROM AccountHistory AH WHERE AH.id = ?) src SET dst.clientId = src.clientId, dst.categoryId = src.categoryId, dst.name = src.name, @@ -278,7 +280,7 @@ class AccountRepository extends Repository implements RepositoryItemInterface dst.url = src.url, dst.notes = src.notes, dst.userGroupId = src.userGroupId, - dst.userEditId = :userEditId, + dst.userEditId = ?, dst.dateEdit = NOW(), dst.otherUserEdit = src.otherUserEdit + 0, dst.otherUserGroupEdit = src.otherUserGroupEdit + 0, @@ -291,13 +293,12 @@ class AccountRepository extends Repository implements RepositoryItemInterface dst.isPrivateGroup = src.isPrivateGroup WHERE dst.id = src.accountId'; - $Data = new QueryData(); - $Data->setQuery($query); - $Data->addParam($historyId, 'id'); - $Data->addParam($this->context->getUserData()->getId(), 'userEditId'); - $Data->setOnErrorMessage(__u('Error al restaurar cuenta')); + $queryData = new QueryData(); + $queryData->setQuery($query); + $queryData->setParams([$historyId, $userId]); + $queryData->setOnErrorMessage(__u('Error al restaurar cuenta')); - return DbWrapper::getQuery($Data, $this->db); + return DbWrapper::getQuery($queryData, $this->db); } /** @@ -389,7 +390,8 @@ class AccountRepository extends Repository implements RepositoryItemInterface * @param int $id * * @return AccountVData - * @throws SPException + * @throws NoSuchItemException + * @throws QueryException */ public function getById($id) { @@ -402,11 +404,11 @@ class AccountRepository extends Repository implements RepositoryItemInterface $queryRes = DbWrapper::getResults($queryData, $this->db); if ($queryRes === false) { - throw new SPException(__u('No se pudieron obtener los datos de la cuenta'), SPException::CRITICAL); + throw new QueryException(__u('No se pudieron obtener los datos de la cuenta')); } if (is_array($queryRes) && count($queryRes) === 0) { - throw new SPException(__u('La cuenta no existe'), SPException::CRITICAL); + throw new NoSuchItemException(__u('La cuenta no existe')); } return $queryRes; @@ -549,7 +551,8 @@ class AccountRepository extends Repository implements RepositoryItemInterface * @param $id * * @return AccountExtData - * @throws SPException + * @throws NoSuchItemException + * @throws QueryException */ public function getDataForLink($id) { @@ -576,11 +579,11 @@ class AccountRepository extends Repository implements RepositoryItemInterface $queryRes = DbWrapper::getResults($queryData, $this->db); if ($queryRes === false) { - throw new SPException(__u('No se pudieron obtener los datos de la cuenta'), SPException::ERROR); + throw new QueryException(__u('No se pudieron obtener los datos de la cuenta')); } if (is_array($queryRes) && count($queryRes) === 0) { - throw new SPException(__u('La cuenta no existe'), SPException::ERROR); + throw new NoSuchItemException(__u('La cuenta no existe')); } return $queryRes; @@ -715,7 +718,7 @@ class AccountRepository extends Repository implements RepositoryItemInterface public function getAccountsPassData() { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, name, pass, `key` FROM Account WHERE BIT_LENGTH(pass) > 0'); + $queryData->setQuery('SELECT id, `name`, pass, `key` FROM Account WHERE BIT_LENGTH(pass) > 0'); return DbWrapper::getResultsArray($queryData, $this->db); } diff --git a/lib/SP/Repositories/Account/AccountToTagRepository.php b/lib/SP/Repositories/Account/AccountToTagRepository.php index 74f9aa38..3ae619d9 100644 --- a/lib/SP/Repositories/Account/AccountToTagRepository.php +++ b/lib/SP/Repositories/Account/AccountToTagRepository.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -44,6 +44,7 @@ class AccountToTagRepository extends Repository * Devolver las etiquetas de una cuenta * * @param int $id + * * @return ItemData[] */ public function getTagsByAccountId($id) @@ -63,10 +64,42 @@ class AccountToTagRepository extends Repository return DbWrapper::getResultsArray($queryData, $this->db); } + /** + * @param AccountRequest $accountRequest + * + * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\QueryException + */ + public function update(AccountRequest $accountRequest) + { + $this->deleteByAccountId($accountRequest->id); + $this->add($accountRequest); + } + + /** + * Eliminar las etiquetas de una cuenta + * + * @param int $id + * + * @return bool + * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\QueryException + */ + public function deleteByAccountId($id) + { + $queryData = new QueryData(); + $queryData->setQuery('DELETE FROM AccountToTag WHERE accountId = ?'); + $queryData->addParam($id); + $queryData->setOnErrorMessage(__u('Error al eliminar las etiquetas de la cuenta')); + + return DbWrapper::getQuery($queryData, $this->db); + } + /** * Actualizar las etiquetas de una cuenta * * @param AccountRequest $accountRequest + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -88,33 +121,4 @@ class AccountToTagRepository extends Repository return DbWrapper::getQuery($queryData, $this->db); } - /** - * Eliminar las etiquetas de una cuenta - * - * @param int $id - * @return bool - * @throws \SP\Core\Exceptions\ConstraintException - * @throws \SP\Core\Exceptions\QueryException - */ - public function deleteByAccountId($id) - { - $queryData = new QueryData(); - $queryData->setQuery('DELETE FROM AccountToTag WHERE accountId = ?'); - $queryData->addParam($id); - $queryData->setOnErrorMessage(__u('Error al eliminar las etiquetas de la cuenta')); - - return DbWrapper::getQuery($queryData,$this->db); - } - - /** - * @param AccountRequest $accountRequest - * @throws \SP\Core\Exceptions\ConstraintException - * @throws \SP\Core\Exceptions\QueryException - */ - public function update(AccountRequest $accountRequest) - { - $this->deleteByAccountId($accountRequest->id); - $this->add($accountRequest); - } - } \ No newline at end of file diff --git a/lib/SP/Repositories/Account/AccountToUserRepository.php b/lib/SP/Repositories/Account/AccountToUserRepository.php index e844a13e..46548341 100644 --- a/lib/SP/Repositories/Account/AccountToUserRepository.php +++ b/lib/SP/Repositories/Account/AccountToUserRepository.php @@ -44,6 +44,7 @@ class AccountToUserRepository extends Repository * Actualizar la asociación de grupos con cuentas. * * @param AccountRequest $accountRequest + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -60,6 +61,7 @@ class AccountToUserRepository extends Repository * Eliminar la asociación de grupos con cuentas. * * @param int $id con el Id de la cuenta + * * @return int * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -80,6 +82,7 @@ class AccountToUserRepository extends Repository * Crear asociación de usuarios con cuentas. * * @param AccountRequest $accountRequest + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -107,6 +110,7 @@ class AccountToUserRepository extends Repository * Actualizar la asociación de grupos con cuentas. * * @param AccountRequest $accountRequest + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -123,6 +127,7 @@ class AccountToUserRepository extends Repository * Eliminar la asociación de grupos con cuentas. * * @param int $id con el Id de la cuenta + * * @return int * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -143,6 +148,7 @@ class AccountToUserRepository extends Repository * Crear asociación de usuarios con cuentas. * * @param AccountRequest $accountRequest + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -170,6 +176,7 @@ class AccountToUserRepository extends Repository * Obtiene el listado de usuarios de una cuenta. * * @param int $id con el id de la cuenta + * * @return ItemData[] con los id de usuarios de la cuenta */ public function getUsersByAccountId($id) diff --git a/lib/SP/Repositories/AuthToken/AuthTokenRepository.php b/lib/SP/Repositories/AuthToken/AuthTokenRepository.php index d2813ae3..c059dd83 100644 --- a/lib/SP/Repositories/AuthToken/AuthTokenRepository.php +++ b/lib/SP/Repositories/AuthToken/AuthTokenRepository.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -47,6 +47,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Deletes an item * * @param $id + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -67,6 +68,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param int $id + * * @return mixed */ public function getById($id) @@ -103,6 +105,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Returns all the items for given ids * * @param array $ids + * * @return void */ public function getByIdBatch(array $ids) @@ -114,6 +117,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Deletes all the items for given ids * * @param array $ids + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -134,6 +138,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -145,6 +150,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return mixed */ public function search(ItemSearchData $SearchData) @@ -192,6 +198,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Creates an item * * @param AuthTokenData $itemData + * * @return mixed * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -215,12 +222,14 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getUserId()); - $queryData->addParam($itemData->getActionId()); - $queryData->addParam($itemData->getCreatedBy()); - $queryData->addParam($itemData->getToken()); - $queryData->addParam($itemData->getVault()); - $queryData->addParam($itemData->getHash()); + $queryData->setParams([ + $itemData->getUserId(), + $itemData->getActionId(), + $itemData->getCreatedBy(), + $itemData->getToken(), + $itemData->getVault(), + $itemData->getHash() + ]); $queryData->setOnErrorMessage(__u('Error interno')); DbWrapper::getQuery($queryData, $this->db); @@ -232,6 +241,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on adding * * @param AuthTokenData $itemData + * * @return bool */ public function checkDuplicatedOnAdd($itemData) @@ -255,6 +265,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Obtener el token de la API de un usuario * * @param $id + * * @return string */ public function getTokenByUserId($id) @@ -272,6 +283,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Updates an item * * @param AuthTokenData $itemData + * * @return mixed * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -296,13 +308,15 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getUserId()); - $queryData->addParam($itemData->getActionId()); - $queryData->addParam($itemData->getCreatedBy()); - $queryData->addParam($itemData->getToken()); - $queryData->addParam($itemData->getVault()); - $queryData->addParam($itemData->getHash()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getUserId(), + $itemData->getActionId(), + $itemData->getCreatedBy(), + $itemData->getToken(), + $itemData->getVault(), + $itemData->getHash(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error interno')); return DbWrapper::getQuery($queryData, $this->db); @@ -312,6 +326,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on updating * * @param AuthTokenData $itemData + * * @return bool */ public function checkDuplicatedOnUpdate($itemData) @@ -324,9 +339,11 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getUserId()); - $queryData->addParam($itemData->getActionId()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getUserId(), + $itemData->getActionId(), + $itemData->getId() + ]); DbWrapper::getResults($queryData, $this->db); @@ -338,6 +355,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * * @param int $id * @param string $token + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -352,8 +370,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($token); - $queryData->addParam($id); + $queryData->setParams([$token, $id]); $queryData->setOnErrorMessage(__u('Error interno')); return DbWrapper::getQuery($queryData, $this->db); @@ -365,6 +382,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * @param int $id * @param $vault * @param $hash + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -380,9 +398,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($vault); - $queryData->addParam($hash); - $queryData->addParam($id); + $queryData->setParams([$vault, $hash, $id]); $queryData->setOnErrorMessage(__u('Error interno')); return DbWrapper::getQuery($queryData, $this->db); @@ -392,6 +408,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * Obtener el usuario a partir del token * * @param $token string El token de autorización + * * @return bool|mixed */ public function getUserIdForToken($token) @@ -410,6 +427,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface * * @param $actionId int El id de la accion * @param $token string El token de seguridad + * * @return false|AuthTokenData */ public function getTokenByToken($actionId, $token) @@ -423,8 +441,7 @@ class AuthTokenRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setMapClassName(AuthTokenData::class); $queryData->setQuery($query); - $queryData->addParam($actionId); - $queryData->addParam($token); + $queryData->setParams([$actionId, $token]); $queryRes = DbWrapper::getResults($queryData, $this->db); diff --git a/lib/SP/Repositories/Category/CategoryRepository.php b/lib/SP/Repositories/Category/CategoryRepository.php index 397b3247..d6320777 100644 --- a/lib/SP/Repositories/Category/CategoryRepository.php +++ b/lib/SP/Repositories/Category/CategoryRepository.php @@ -47,6 +47,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Creates an item * * @param CategoryData $itemData + * * @return int * @throws SPException * @throws DuplicatedItemException @@ -59,9 +60,11 @@ class CategoryRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery('INSERT INTO Category SET `name` = ?, description = ?, `hash` = ?'); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getDescription()); - $queryData->addParam($this->makeItemHash($itemData->getName(), $this->db->getDbHandler())); + $queryData->setParams([ + $itemData->getName(), + $itemData->getDescription(), + $this->makeItemHash($itemData->getName(), $this->db->getDbHandler()) + ]); $queryData->setOnErrorMessage(__u('Error al crear la categoría')); DbWrapper::getQuery($queryData, $this->db); @@ -73,6 +76,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on adding * * @param CategoryData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -81,8 +85,10 @@ class CategoryRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('SELECT id FROM Category WHERE `hash` = ? OR `name` = ?'); - $queryData->addParam($this->makeItemHash($itemData->getName(), $this->db->getDbHandler())); - $queryData->addParam($itemData->getName()); + $queryData->setParams([ + $this->makeItemHash($itemData->getName(), $this->db->getDbHandler()), + $itemData->getName() + ]); DbWrapper::getQuery($queryData, $this->db); @@ -93,6 +99,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Updates an item * * @param CategoryData $itemData + * * @return mixed * @throws SPException * @throws DuplicatedItemException @@ -114,10 +121,12 @@ class CategoryRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getDescription()); - $queryData->addParam($this->makeItemHash($itemData->getName(), $this->db->getDbHandler())); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getDescription(), + $this->makeItemHash($itemData->getName(), $this->db->getDbHandler()), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar la categoría')); DbWrapper::getQuery($queryData, $this->db); @@ -129,6 +138,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on updating * * @param CategoryData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -137,9 +147,11 @@ class CategoryRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('SELECT id FROM Category WHERE (`hash` = ? OR `name` = ?) AND id <> ?'); - $queryData->addParam($this->makeItemHash($itemData->getName(), $this->db->getDbHandler())); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $this->makeItemHash($itemData->getName(), $this->db->getDbHandler()), + $itemData->getName(), + $itemData->getId() + ]); DbWrapper::getQuery($queryData, $this->db); @@ -150,14 +162,15 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param int $id + * * @return CategoryData */ public function getById($id) { $queryData = new QueryData(); + $queryData->setMapClassName(CategoryData::class); $queryData->setQuery('SELECT id, `name`, description FROM Category WHERE id = ? LIMIT 1'); $queryData->addParam($id); - $queryData->setMapClassName(CategoryData::class); return DbWrapper::getResults($queryData, $this->db); } @@ -166,15 +179,18 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param string $name + * * @return CategoryData */ public function getByName($name) { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, `name`, description FROM Category WHERE `name` = ? OR `hash` = ? LIMIT 1'); - $queryData->addParam($name); - $queryData->addParam($this->makeItemHash($name, $this->db->getDbHandler())); $queryData->setMapClassName(CategoryData::class); + $queryData->setQuery('SELECT id, `name`, description FROM Category WHERE `name` = ? OR `hash` = ? LIMIT 1'); + $queryData->setParams([ + $name, + $this->makeItemHash($name, $this->db->getDbHandler()) + ]); return DbWrapper::getResults($queryData, $this->db); } @@ -197,6 +213,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Returns all the items for given ids * * @param array $ids + * * @return array */ public function getByIdBatch(array $ids) @@ -205,9 +222,9 @@ class CategoryRepository extends Repository implements RepositoryItemInterface 'SELECT id, `name`, description FROM Category WHERE id IN (' . $this->getParamsFromArray($ids) . ')'; $queryData = new QueryData(); + $queryData->setMapClassName(CategoryData::class); $queryData->setQuery($query); $queryData->setParams($ids); - $queryData->setMapClassName(CategoryData::class); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -216,6 +233,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Deletes all the items for given ids * * @param array $ids + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -236,6 +254,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Deletes an item * * @param $id + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -259,6 +278,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -270,6 +290,7 @@ class CategoryRepository extends Repository implements RepositoryItemInterface * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return mixed */ public function search(ItemSearchData $SearchData) diff --git a/lib/SP/Repositories/Client/ClientRepository.php b/lib/SP/Repositories/Client/ClientRepository.php index 4c245e90..ba91a75c 100644 --- a/lib/SP/Repositories/Client/ClientRepository.php +++ b/lib/SP/Repositories/Client/ClientRepository.php @@ -50,6 +50,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Creates an item * * @param ClientData $itemData + * * @return int * @throws DuplicatedItemException * @throws SPException @@ -69,10 +70,12 @@ class ClientRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getDescription()); - $queryData->addParam($itemData->getIsGlobal()); - $queryData->addParam($this->makeItemHash($itemData->getName(), $this->db->getDbHandler())); + $queryData->setParams([ + $itemData->getName(), + $itemData->getDescription(), + $itemData->getIsGlobal(), + $this->makeItemHash($itemData->getName(), $this->db->getDbHandler()) + ]); $queryData->setOnErrorMessage(__u('Error al crear el cliente')); DbWrapper::getQuery($queryData, $this->db); @@ -84,6 +87,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on adding * * @param ClientData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -103,6 +107,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Updates an item * * @param ClientData $itemData + * * @return mixed * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -124,11 +129,13 @@ class ClientRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getDescription()); - $queryData->addParam($itemData->getIsGlobal()); - $queryData->addParam($this->makeItemHash($itemData->getName(), $this->db->getDbHandler())); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getDescription(), + $itemData->getIsGlobal(), + $this->makeItemHash($itemData->getName(), $this->db->getDbHandler()), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar el cliente')); DbWrapper::getQuery($queryData, $this->db); @@ -140,6 +147,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on updating * * @param ClientData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -148,9 +156,11 @@ class ClientRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('SELECT id FROM Client WHERE (`hash` = ? OR `name` = ?) AND id <> ?'); - $queryData->addParam($this->makeItemHash($itemData->getName(), $this->db->getDbHandler())); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $this->makeItemHash($itemData->getName(), $this->db->getDbHandler()), + $itemData->getName(), + $itemData->getId() + ]); DbWrapper::getQuery($queryData, $this->db); @@ -161,14 +171,15 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param int $id + * * @return ClientData */ public function getById($id) { $queryData = new QueryData(); + $queryData->setMapClassName(ClientData::class); $queryData->setQuery('SELECT id, `name`, description, isGlobal FROM Client WHERE id = ? LIMIT 1'); $queryData->addParam($id); - $queryData->setMapClassName(ClientData::class); return DbWrapper::getResults($queryData, $this->db); } @@ -177,15 +188,18 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Returns the item for given name * * @param string $name + * * @return ClientData */ public function getByName($name) { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, `name`, description, isGlobal FROM Client WHERE `name` = ? OR `hash` = ? LIMIT 1'); - $queryData->addParam($name); - $queryData->addParam($this->makeItemHash($name, $this->db->getDbHandler())); $queryData->setMapClassName(ClientData::class); + $queryData->setQuery('SELECT id, `name`, description, isGlobal FROM Client WHERE `name` = ? OR `hash` = ? LIMIT 1'); + $queryData->setParams([ + $name, + $this->makeItemHash($name, $this->db->getDbHandler()) + ]); return DbWrapper::getResults($queryData, $this->db); } @@ -208,6 +222,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Returns all the items for given ids * * @param array $ids + * * @return array */ public function getByIdBatch(array $ids) @@ -216,9 +231,9 @@ class ClientRepository extends Repository implements RepositoryItemInterface 'SELECT id, `name`, description, isGlobal FROM Client WHERE id IN (' . $this->getParamsFromArray($ids) . ')'; $queryData = new QueryData(); + $queryData->setMapClassName(ClientData::class); $queryData->setQuery($query); $queryData->setParams($ids); - $queryData->setMapClassName(ClientData::class); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -227,6 +242,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Deletes all the items for given ids * * @param array $ids + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -247,6 +263,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Deletes an item * * @param $id + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -267,6 +284,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -278,6 +296,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return ClientData[] */ public function search(ItemSearchData $SearchData) @@ -313,6 +332,7 @@ class ClientRepository extends Repository implements RepositoryItemInterface * Devolver los clientes visibles por el usuario * * @param QueryCondition $queryFilter + * * @return ItemData[] * @throws QueryException */ diff --git a/lib/SP/Repositories/Config/ConfigRepository.php b/lib/SP/Repositories/Config/ConfigRepository.php index ec4fa401..62795b29 100644 --- a/lib/SP/Repositories/Config/ConfigRepository.php +++ b/lib/SP/Repositories/Config/ConfigRepository.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -38,24 +38,9 @@ use SP\Storage\QueryData; */ class ConfigRepository extends Repository { - /** - * @param ConfigData $configData - * @return bool - * @throws \SP\Core\Exceptions\ConstraintException - * @throws \SP\Core\Exceptions\QueryException - */ - public function update(ConfigData $configData) - { - $queryData = new QueryData(); - $queryData->setQuery('UPDATE Config SET value = ? WHERE parameter = ?'); - $queryData->addParam($configData->getValue()); - $queryData->addParam($configData->getParam()); - - return DbWrapper::getQuery($queryData, $this->db); - } - /** * @param ConfigData[] $data + * * @return bool * @throws \SP\Core\Exceptions\SPException */ @@ -65,12 +50,7 @@ class ConfigRepository extends Repository try { foreach ($data as $configData) { - $queryData = new QueryData(); - $queryData->setQuery('UPDATE Config SET value = ? WHERE parameter = ?'); - $queryData->addParam($configData->getValue()); - $queryData->addParam($configData->getParam()); - - DbWrapper::getQuery($queryData, $this->db); + $this->update($configData); } } catch (QueryException $e) { debugLog($e->getMessage()); @@ -83,6 +63,23 @@ class ConfigRepository extends Repository /** * @param ConfigData $configData + * + * @return bool + * @throws \SP\Core\Exceptions\ConstraintException + * @throws \SP\Core\Exceptions\QueryException + */ + public function update(ConfigData $configData) + { + $queryData = new QueryData(); + $queryData->setQuery('UPDATE Config SET `value` = ? WHERE parameter = ?'); + $queryData->setParams([$configData->getValue(), $configData->getParam()]); + + return DbWrapper::getQuery($queryData, $this->db); + } + + /** + * @param ConfigData $configData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -91,8 +88,7 @@ class ConfigRepository extends Repository { $queryData = new QueryData(); $queryData->setQuery('INSERT INTO Config SET parameter = ?, value = ?'); - $queryData->addParam($configData->getParam()); - $queryData->addParam($configData->getValue()); + $queryData->setParams([$configData->getParam(), $configData->getValue()]); return DbWrapper::getQuery($queryData, $this->db); } @@ -112,6 +108,7 @@ class ConfigRepository extends Repository /** * @param string $param + * * @return mixed */ public function getByParam($param) @@ -125,6 +122,7 @@ class ConfigRepository extends Repository /** * @param string $param + * * @return bool * @throws ConstraintException * @throws QueryException @@ -142,6 +140,7 @@ class ConfigRepository extends Repository /** * @param $param + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException diff --git a/lib/SP/Repositories/CustomField/CustomFieldDefRepository.php b/lib/SP/Repositories/CustomField/CustomFieldDefRepository.php index a987aa37..5fae0329 100644 --- a/lib/SP/Repositories/CustomField/CustomFieldDefRepository.php +++ b/lib/SP/Repositories/CustomField/CustomFieldDefRepository.php @@ -50,6 +50,7 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter * Creates an item * * @param CustomFieldDefinitionData $itemData + * * @return mixed * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -61,13 +62,15 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getModuleId()); - $queryData->addParam($itemData->getRequired()); - $queryData->addParam($itemData->getHelp()); - $queryData->addParam($itemData->getShowInList()); - $queryData->addParam($itemData->getTypeId()); - $queryData->addParam($itemData->getisEncrypted()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getModuleId(), + $itemData->getRequired(), + $itemData->getHelp(), + $itemData->getShowInList(), + $itemData->getTypeId(), + $itemData->getisEncrypted() + ]); $queryData->setOnErrorMessage(__u('Error al crear el campo personalizado')); DbWrapper::getQuery($queryData, $this->db); @@ -79,6 +82,7 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter * Updates an item * * @param CustomFieldDefinitionData $itemData + * * @return mixed * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -92,14 +96,16 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getModuleId()); - $queryData->addParam($itemData->getRequired()); - $queryData->addParam($itemData->getHelp()); - $queryData->addParam($itemData->getShowInList()); - $queryData->addParam($itemData->getTypeId()); - $queryData->addParam($itemData->getisEncrypted()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getModuleId(), + $itemData->getRequired(), + $itemData->getHelp(), + $itemData->getShowInList(), + $itemData->getTypeId(), + $itemData->getisEncrypted(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar el campo personalizado')); return DbWrapper::getQuery($queryData, $this->db); @@ -109,6 +115,7 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter * Returns the item for given id * * @param int $id + * * @return CustomFieldDefinitionData */ public function getById($id) @@ -123,9 +130,9 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter WHERE id = ? LIMIT 1'; $queryData = new QueryData(); + $queryData->setMapClassName(CustomFieldDefinitionData::class); $queryData->setQuery($query); $queryData->addParam($id); - $queryData->setMapClassName(CustomFieldDefinitionData::class); $cfd = DbWrapper::getResults($queryData, $this->db); $this->customFieldDefCollection->set($id, $cfd); @@ -146,8 +153,8 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter ORDER BY moduleId'; $queryData = new QueryData(); - $queryData->setQuery($query); $queryData->setMapClassName(CustomFieldDefinitionData::class); + $queryData->setQuery($query); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -156,6 +163,7 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter * Returns all the items for given ids * * @param array $ids + * * @return array */ public function getByIdBatch(array $ids) @@ -166,9 +174,9 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter WHERE id IN (' . $this->getParamsFromArray($ids) . ')'; $queryData = new QueryData(); + $queryData->setMapClassName(CustomFieldDefinitionData::class); $queryData->setQuery($query); $queryData->setParams($ids); - $queryData->setMapClassName(CustomFieldDefinitionData::class); return DbWrapper::getResults($queryData, $this->db); } @@ -177,6 +185,7 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter * Deletes all the items for given ids * * @param array $ids + * * @return int * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -201,6 +210,7 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter * Deletes an item * * @param $id + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -250,6 +260,7 @@ class CustomFieldDefRepository extends Repository implements RepositoryItemInter * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return CustomFieldDefinitionData[] */ public function search(ItemSearchData $SearchData) diff --git a/lib/SP/Repositories/CustomField/CustomFieldRepository.php b/lib/SP/Repositories/CustomField/CustomFieldRepository.php index 062e05e8..c70c73cf 100644 --- a/lib/SP/Repositories/CustomField/CustomFieldRepository.php +++ b/lib/SP/Repositories/CustomField/CustomFieldRepository.php @@ -46,6 +46,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Updates an item * * @param CustomFieldData $itemData + * * @return bool * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -62,11 +63,13 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getData()); - $queryData->addParam($itemData->getKey()); - $queryData->addParam($itemData->getModuleId()); - $queryData->addParam($itemData->getId()); - $queryData->addParam($itemData->getDefinitionId()); + $queryData->setParams([ + $itemData->getData(), + $itemData->getKey(), + $itemData->getModuleId(), + $itemData->getId(), + $itemData->getDefinitionId() + ]); return DbWrapper::getQuery($queryData, $this->db); } @@ -75,6 +78,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Comprueba si el elemento tiene campos personalizados con datos * * @param CustomFieldData $itemData + * * @return bool * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -90,9 +94,11 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getModuleId()); - $queryData->addParam($itemData->getId()); - $queryData->addParam($itemData->getDefinitionId()); + $queryData->setParams([ + $itemData->getModuleId(), + $itemData->getId(), + $itemData->getDefinitionId() + ]); DbWrapper::getQuery($queryData, $this->db); @@ -103,6 +109,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Deletes an item * * @param $id + * * @return mixed */ public function delete($id) @@ -114,6 +121,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Creates an item * * @param CustomFieldData $itemData + * * @return bool * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -125,11 +133,13 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getId()); - $queryData->addParam($itemData->getModuleId()); - $queryData->addParam($itemData->getDefinitionId()); - $queryData->addParam($itemData->getData()); - $queryData->addParam($itemData->getKey()); + $queryData->setParams([ + $itemData->getId(), + $itemData->getModuleId(), + $itemData->getDefinitionId(), + $itemData->getData(), + $itemData->getKey() + ]); DbWrapper::getQuery($queryData, $this->db); @@ -141,6 +151,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * * @param int $id * @param int $moduleId + * * @return bool * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -154,8 +165,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($id); - $queryData->addParam($moduleId); + $queryData->setParams([$id, $moduleId]); DbWrapper::getQuery($queryData, $this->db); @@ -168,6 +178,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * @param int $id * @param int $moduleId * @param int $definitionId + * * @return bool * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -182,9 +193,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($id); - $queryData->addParam($moduleId); - $queryData->addParam($definitionId); + $queryData->setParams([$id, $moduleId, $definitionId]); DbWrapper::getQuery($queryData, $this->db); @@ -195,6 +204,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Eliminar los datos de los campos personalizados del módulo * * @param int $definitionId + * * @return int * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -214,6 +224,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Eliminar los datos de los elementos de una definición * * @param array $definitionIds + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -234,6 +245,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * * @param int[] $ids * @param int $moduleId + * * @return int * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -259,6 +271,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Returns the item for given id * * @param int $id + * * @return void */ public function getById($id) @@ -274,8 +287,8 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac public function getAll() { $queryData = new QueryData(); - $queryData->setQuery('SELECT * FROM CustomFieldData'); $queryData->setMapClassName(CustomFieldData::class); + $queryData->setQuery('SELECT * FROM CustomFieldData'); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -288,8 +301,8 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac public function getAllEncrypted() { $queryData = new QueryData(); - $queryData->setQuery('SELECT * FROM CustomFieldData WHERE `key` IS NOT NULL'); $queryData->setMapClassName(CustomFieldData::class); + $queryData->setQuery('SELECT * FROM CustomFieldData WHERE `key` IS NOT NULL'); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -298,6 +311,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Returns all the items for given ids * * @param array $ids + * * @return void */ public function getByIdBatch(array $ids) @@ -309,6 +323,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Deletes all the items for given ids * * @param array $ids + * * @return void */ public function deleteByIdBatch(array $ids) @@ -320,6 +335,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -331,6 +347,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return mixed */ public function search(ItemSearchData $SearchData) @@ -343,6 +360,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * * @param $moduleId * @param $itemId + * * @return array */ public function getForModuleById($moduleId, $itemId) @@ -368,8 +386,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemId); - $queryData->addParam($moduleId); + $queryData->setParams([$itemId, $moduleId]); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -378,6 +395,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Checks whether the item is duplicated on updating * * @param mixed $itemData + * * @return void */ public function checkDuplicatedOnUpdate($itemData) @@ -389,6 +407,7 @@ class CustomFieldRepository extends Repository implements RepositoryItemInterfac * Checks whether the item is duplicated on adding * * @param mixed $itemData + * * @return void */ public function checkDuplicatedOnAdd($itemData) diff --git a/lib/SP/Repositories/CustomField/CustomFieldTypeRepository.php b/lib/SP/Repositories/CustomField/CustomFieldTypeRepository.php index 80d26bb8..136df5ef 100644 --- a/lib/SP/Repositories/CustomField/CustomFieldTypeRepository.php +++ b/lib/SP/Repositories/CustomField/CustomFieldTypeRepository.php @@ -46,6 +46,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Creates an item * * @param CustomFieldTypeData $itemData + * * @return mixed * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -54,9 +55,8 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte public function create($itemData) { $queryData = new QueryData(); - $queryData->setQuery('INSERT INTO CustomFieldType SET name = ?, text = ?'); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getText()); + $queryData->setQuery('INSERT INTO CustomFieldType SET `name` = ?, `text` = ?'); + $queryData->setParams([$itemData->getName(), $itemData->getText()]); $queryData->setOnErrorMessage(__u('Error al crear el tipo de campo')); DbWrapper::getQuery($queryData, $this->db); @@ -68,6 +68,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Checks whether the item is duplicated on adding * * @param mixed $itemData + * * @return void */ public function checkDuplicatedOnAdd($itemData) @@ -79,6 +80,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Updates an item * * @param CustomFieldTypeData $itemData + * * @return mixed * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -87,10 +89,12 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte public function update($itemData) { $queryData = new QueryData(); - $queryData->setQuery('UPDATE CustomFieldType SET name = ?, text = ? WHERE id = ? LIMIT 1'); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getText()); - $queryData->addParam($itemData->getId()); + $queryData->setQuery('UPDATE CustomFieldType SET `name` = ?, `text` = ? WHERE id = ? LIMIT 1'); + $queryData->setParams([ + $itemData->getName(), + $itemData->getText(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar el tipo de campo')); DbWrapper::getQuery($queryData, $this->db); @@ -102,6 +106,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Checks whether the item is duplicated on updating * * @param mixed $itemData + * * @return void */ public function checkDuplicatedOnUpdate($itemData) @@ -113,14 +118,15 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Returns the item for given id * * @param int $id + * * @return CustomFieldTypeData */ public function getById($id) { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, name, text FROM CustomFieldType WHERE id = ? LIMIT 1'); - $queryData->addParam($id); $queryData->setMapClassName(CustomFieldTypeData::class); + $queryData->setQuery('SELECT id, `name`, `text` FROM CustomFieldType WHERE id = ? LIMIT 1'); + $queryData->addParam($id); return DbWrapper::getResults($queryData, $this->db); } @@ -133,8 +139,8 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte public function getAll() { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, `name`, `text` FROM CustomFieldType'); $queryData->setMapClassName(CustomFieldTypeData::class); + $queryData->setQuery('SELECT id, `name`, `text` FROM CustomFieldType'); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -143,6 +149,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Returns all the items for given ids * * @param array $ids + * * @return void */ public function getByIdBatch(array $ids) @@ -154,6 +161,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Deletes all the items for given ids * * @param array $ids + * * @return void * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -169,6 +177,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Deletes an item * * @param $id + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -187,6 +196,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -198,6 +208,7 @@ class CustomFieldTypeRepository extends Repository implements RepositoryItemInte * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return mixed */ public function search(ItemSearchData $SearchData) diff --git a/lib/SP/Repositories/Notification/NotificationRepository.php b/lib/SP/Repositories/Notification/NotificationRepository.php index 90f234d9..fce01fce 100644 --- a/lib/SP/Repositories/Notification/NotificationRepository.php +++ b/lib/SP/Repositories/Notification/NotificationRepository.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -45,6 +45,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Creates an item * * @param NotificationData $itemData + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -64,12 +65,14 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getType()); - $queryData->addParam($itemData->getComponent()); - $queryData->addParam($itemData->getDescription()); - $queryData->addParam($itemData->getUserId() ?: null); - $queryData->addParam($itemData->isSticky()); - $queryData->addParam($itemData->isOnlyAdmin()); + $queryData->setParams([ + $itemData->getType(), + $itemData->getComponent(), + $itemData->getDescription(), + $itemData->getUserId() ?: null, + $itemData->isSticky(), + $itemData->isOnlyAdmin() + ]); $queryData->setOnErrorMessage(__u('Error al crear la notificación')); DbWrapper::getQuery($queryData, $this->db); @@ -81,6 +84,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Updates an item * * @param NotificationData $itemData + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -101,14 +105,16 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getType()); - $queryData->addParam($itemData->getComponent()); - $queryData->addParam($itemData->getDescription()); - $queryData->addParam($itemData->isChecked()); - $queryData->addParam($itemData->getUserId() ?: null); - $queryData->addParam($itemData->isSticky()); - $queryData->addParam($itemData->isOnlyAdmin()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getType(), + $itemData->getComponent(), + $itemData->getDescription(), + $itemData->isChecked(), + $itemData->getUserId() ?: null, + $itemData->isSticky(), + $itemData->isOnlyAdmin(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al modificar la notificación')); DbWrapper::getQuery($queryData, $this->db); @@ -120,6 +126,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Deletes an item * * @param $id + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -140,6 +147,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Deletes an item * * @param $id + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -160,6 +168,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Deletes an item * * @param array $ids + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -180,6 +189,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Returns the item for given id * * @param int $id + * * @return NotificationData */ public function getById($id) @@ -198,9 +208,9 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa WHERE id = ? LIMIT 1'; $queryData = new QueryData(); + $queryData->setMapClassName(NotificationData::class); $queryData->setQuery($query); $queryData->addParam($id); - $queryData->setMapClassName(NotificationData::class); $queryData->setOnErrorMessage(__u('Error al obtener la notificación')); return DbWrapper::getResults($queryData, $this->db); @@ -226,8 +236,8 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa FROM Notification'; $queryData = new QueryData(); - $queryData->setQuery($query); $queryData->setMapClassName(NotificationData::class); + $queryData->setQuery($query); $queryData->setOnErrorMessage(__u('Error al obtener las notificaciones')); return DbWrapper::getResultsArray($queryData, $this->db); @@ -237,6 +247,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Returns all the items for given ids * * @param array $ids + * * @return NotificationData[] */ public function getByIdBatch(array $ids) @@ -255,9 +266,9 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa WHERE id IN (' . $this->getParamsFromArray($ids) . ')'; $queryData = new QueryData(); + $queryData->setMapClassName(NotificationData::class); $queryData->setQuery($query); $queryData->setParams($ids); - $queryData->setMapClassName(NotificationData::class); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -266,6 +277,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Deletes all the items for given ids * * @param array $ids + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -316,6 +328,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Searches for items by a given filter * * @param ItemSearchData $itemSearchData + * * @return mixed */ public function search(ItemSearchData $itemSearchData) @@ -353,6 +366,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * * @param ItemSearchData $itemSearchData * @param int $userId + * * @return mixed */ public function searchForUserId(ItemSearchData $itemSearchData, $userId) @@ -395,6 +409,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * Marcar una notificación como leída * * @param $id + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -419,6 +434,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa * * @param $component * @param $id + * * @return NotificationData[] */ public function getForUserIdByDate($component, $id) @@ -434,14 +450,13 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa onlyAdmin FROM Notification WHERE component = ? AND - (UNIX_TIMESTAMP() - date) <= 86400 AND + (UNIX_TIMESTAMP() - `date`) <= 86400 AND userId = ?'; $queryData = new QueryData(); - $queryData->setQuery($query); - $queryData->addParam($component); - $queryData->addParam($id); $queryData->setMapClassName(NotificationData::class); + $queryData->setQuery($query); + $queryData->setParams([$component, $id]); $queryData->setOnErrorMessage(__u('Error al obtener las notificaciones')); return DbWrapper::getResultsArray($queryData, $this->db); @@ -449,6 +464,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa /** * @param $id + * * @return NotificationData[] */ public function getAllForUserId($id) @@ -466,12 +482,12 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa FROM Notification WHERE (userId = ? OR userId IS NULL OR sticky = 1) AND onlyAdmin = 0 - ORDER BY date DESC '; + ORDER BY `date` DESC '; $queryData = new QueryData(); + $queryData->setMapClassName(NotificationData::class); $queryData->setQuery($query); $queryData->addParam($id); - $queryData->setMapClassName(NotificationData::class); $queryData->setOnErrorMessage(__u('Error al obtener las notificaciones')); return DbWrapper::getResultsArray($queryData, $this->db); @@ -479,6 +495,7 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa /** * @param $id + * * @return NotificationData[] */ public function getAllActiveForUserId($id) @@ -497,12 +514,12 @@ class NotificationRepository extends Repository implements RepositoryItemInterfa WHERE (userId = ? OR sticky = 1) AND onlyAdmin = 0 AND checked = 0 - ORDER BY date DESC '; + ORDER BY `date` DESC '; $queryData = new QueryData(); + $queryData->setMapClassName(NotificationData::class); $queryData->setQuery($query); $queryData->addParam($id); - $queryData->setMapClassName(NotificationData::class); $queryData->setOnErrorMessage(__u('Error al obtener las notificaciones')); return DbWrapper::getResultsArray($queryData, $this->db); diff --git a/lib/SP/Repositories/Plugin/PluginRepository.php b/lib/SP/Repositories/Plugin/PluginRepository.php index eae391a9..fb046554 100644 --- a/lib/SP/Repositories/Plugin/PluginRepository.php +++ b/lib/SP/Repositories/Plugin/PluginRepository.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -47,6 +47,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Creates an item * * @param PluginData $itemData + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -58,10 +59,12 @@ class PluginRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getData()); - $queryData->addParam($itemData->getEnabled()); - $queryData->addParam($itemData->getAvailable()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getData(), + $itemData->getEnabled(), + $itemData->getAvailable() + ]); $queryData->setOnErrorMessage(__u('Error al crear el plugin')); DbWrapper::getQuery($queryData, $this->db); @@ -73,6 +76,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Updates an item * * @param PluginData $itemData + * * @return mixed * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -89,11 +93,13 @@ class PluginRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getData()); - $queryData->addParam($itemData->getEnabled()); - $queryData->addParam($itemData->getAvailable()); - $queryData->addParam($itemData->getName()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getData(), + $itemData->getEnabled(), + $itemData->getAvailable(), + $itemData->getName() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar el plugin')); return DbWrapper::getQuery($queryData, $this->db); @@ -103,6 +109,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param int $id + * * @return PluginData */ public function getById($id) @@ -117,9 +124,9 @@ class PluginRepository extends Repository implements RepositoryItemInterface WHERE id = ? LIMIT 1'; $queryData = new QueryData(); + $queryData->setMapClassName(PluginData::class); $queryData->setQuery($query); $queryData->addParam($id); - $queryData->setMapClassName(PluginData::class); return DbWrapper::getResults($queryData, $this->db); } @@ -140,8 +147,8 @@ class PluginRepository extends Repository implements RepositoryItemInterface ORDER BY `name`'; $queryData = new QueryData(); - $queryData->setQuery($query); $queryData->setMapClassName(PluginData::class); + $queryData->setQuery($query); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -150,6 +157,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Returns all the items for given ids * * @param array $ids + * * @return PluginData[] */ public function getByIdBatch(array $ids) @@ -163,9 +171,9 @@ class PluginRepository extends Repository implements RepositoryItemInterface WHERE id IN (' . $this->getParamsFromArray($ids) . ')'; $queryData = new QueryData(); + $queryData->setMapClassName(PluginData::class); $queryData->setQuery($query); $queryData->setParams($ids); - $queryData->setMapClassName(PluginData::class); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -174,6 +182,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Deletes all the items for given ids * * @param array $ids + * * @return void * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -190,6 +199,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Deletes an item * * @param $id + * * @return int * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -211,6 +221,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -222,6 +233,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on updating * * @param mixed $itemData + * * @return void */ public function checkDuplicatedOnUpdate($itemData) @@ -233,6 +245,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on adding * * @param mixed $itemData + * * @return void */ public function checkDuplicatedOnAdd($itemData) @@ -244,6 +257,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Searches for items by a given filter * * @param ItemSearchData $itemSearchData + * * @return mixed */ public function search(ItemSearchData $itemSearchData) @@ -278,6 +292,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Devuelve los datos de un plugin por su nombre * * @param string $name + * * @return PluginData */ public function getByName($name) @@ -292,9 +307,9 @@ class PluginRepository extends Repository implements RepositoryItemInterface WHERE `name` = ? LIMIT 1'; $queryData = new QueryData(); + $queryData->setMapClassName(PluginData::class); $queryData->setQuery($query); $queryData->addParam($name); - $queryData->setMapClassName(PluginData::class); return DbWrapper::getResults($queryData, $this->db); } @@ -304,6 +319,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * * @param $id * @param $enabled + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -312,8 +328,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('UPDATE Plugin SET enabled = ? WHERE id = ? LIMIT 1'); - $queryData->addParam($enabled); - $queryData->addParam($id); + $queryData->setParams([$enabled, $id]); $queryData->setOnErrorMessage(__u('Error al actualizar el plugin')); return DbWrapper::getQuery($queryData, $this->db); @@ -324,6 +339,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * * @param $name * @param $enabled + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -332,8 +348,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('UPDATE Plugin SET enabled = ? WHERE name = ? LIMIT 1'); - $queryData->addParam($enabled); - $queryData->addParam($name); + $queryData->setParams([$enabled, $name]); $queryData->setOnErrorMessage(__u('Error al actualizar el plugin')); return DbWrapper::getQuery($queryData, $this->db); @@ -344,6 +359,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * * @param $id * @param $available + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -352,8 +368,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('UPDATE Plugin SET available = ? WHERE id = ? LIMIT 1'); - $queryData->addParam($id); - $queryData->addParam($available); + $queryData->setParams([$id, $available]); $queryData->setOnErrorMessage(__u('Error al actualizar el plugin')); return DbWrapper::getQuery($queryData, $this->db); @@ -364,6 +379,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * * @param $name * @param $available + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -372,8 +388,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('UPDATE Plugin SET available = ? WHERE `name` = ? LIMIT 1'); - $queryData->addParam($available); - $queryData->addParam($name); + $queryData->setParams([$available, $name]); $queryData->setOnErrorMessage(__u('Error al actualizar el plugin')); return DbWrapper::getQuery($queryData, $this->db); @@ -383,6 +398,7 @@ class PluginRepository extends Repository implements RepositoryItemInterface * Restablecer los datos de un plugin * * @param int $id Id del plugin + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -405,8 +421,8 @@ class PluginRepository extends Repository implements RepositoryItemInterface public function getEnabled() { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, name FROM Plugin WHERE enabled = 1'); $queryData->setMapClassName(ItemData::class); + $queryData->setQuery('SELECT id, name FROM Plugin WHERE enabled = 1'); return DbWrapper::getResultsArray($queryData, $this->db); } diff --git a/lib/SP/Repositories/PublicLink/PublicLinkRepository.php b/lib/SP/Repositories/PublicLink/PublicLinkRepository.php index bfd7352b..b2fd42c6 100644 --- a/lib/SP/Repositories/PublicLink/PublicLinkRepository.php +++ b/lib/SP/Repositories/PublicLink/PublicLinkRepository.php @@ -24,10 +24,13 @@ namespace SP\Repositories\PublicLink; +use SP\Core\Exceptions\QueryException; use SP\Core\Exceptions\SPException; use SP\DataModel\ItemSearchData; use SP\DataModel\PublicLinkData; use SP\DataModel\PublicLinkListData; +use SP\Repositories\DuplicatedItemException; +use SP\Repositories\NoSuchItemException; use SP\Repositories\Repository; use SP\Repositories\RepositoryItemInterface; use SP\Repositories\RepositoryItemTrait; @@ -48,6 +51,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Deletes an item * * @param $id + * * @return int * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -105,6 +109,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Returns all the items for given ids * * @param array $ids + * * @return PublicLinkData[] */ public function getByIdBatch(array $ids) @@ -144,6 +149,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Deletes all the items for given ids * * @param array $ids + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -163,6 +169,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -174,6 +181,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return mixed */ public function search(ItemSearchData $SearchData) @@ -230,15 +238,16 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Creates an item * * @param PublicLinkData $itemData + * * @return int - * @throws SPException + * @throws DuplicatedItemException + * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException - * @throws \SP\Core\Exceptions\QueryException */ public function create($itemData) { if ($this->checkDuplicatedOnAdd($itemData)) { - throw new SPException(__u('Enlace ya creado'), SPException::INFO); + throw new DuplicatedItemException(__u('Enlace ya creado')); } $query = /** @lang SQL */ @@ -255,14 +264,16 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getItemId()); - $queryData->addParam($itemData->getHash()); - $queryData->addParam($itemData->getData()); - $queryData->addParam($itemData->getUserId()); - $queryData->addParam($itemData->getTypeId()); - $queryData->addParam((int)$itemData->isNotify()); - $queryData->addParam($itemData->getDateExpire()); - $queryData->addParam($itemData->getMaxCountViews()); + $queryData->setParams([ + $itemData->getItemId(), + $itemData->getHash(), + $itemData->getData(), + $itemData->getUserId(), + $itemData->getTypeId(), + (int)$itemData->isNotify(), + $itemData->getDateExpire(), + $itemData->getMaxCountViews() + ]); $queryData->setOnErrorMessage(__u('Error al crear enlace')); DbWrapper::getQuery($queryData, $this->db); @@ -274,6 +285,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on adding * * @param PublicLinkData $itemData + * * @return bool */ public function checkDuplicatedOnAdd($itemData) @@ -291,6 +303,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on updating * * @param mixed $itemData + * * @return void */ public function checkDuplicatedOnUpdate($itemData) @@ -302,6 +315,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Incrementar el contador de visitas de un enlace * * @param PublicLinkData $publicLinkData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -317,8 +331,10 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($publicLinkData->getUseInfo()); - $queryData->addParam($publicLinkData->getHash()); + $queryData->setParams([ + $publicLinkData->getUseInfo(), + $publicLinkData->getHash() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar enlace')); return DbWrapper::getQuery($queryData, $this->db); @@ -328,6 +344,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Updates an item * * @param PublicLinkData $itemData + * * @return mixed * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -352,18 +369,20 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getItemId()); - $queryData->addParam($itemData->getHash()); - $queryData->addParam($itemData->getData()); - $queryData->addParam($itemData->getUserId()); - $queryData->addParam((int)$itemData->isNotify()); - $queryData->addParam($itemData->getDateAdd()); - $queryData->addParam($itemData->getDateExpire()); - $queryData->addParam($itemData->getCountViews()); - $queryData->addParam($itemData->getMaxCountViews()); - $queryData->addParam($itemData->getUseInfo()); - $queryData->addParam($itemData->getTypeId()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getItemId(), + $itemData->getHash(), + $itemData->getData(), + $itemData->getUserId(), + (int)$itemData->isNotify(), + $itemData->getDateAdd(), + $itemData->getDateExpire(), + $itemData->getCountViews(), + $itemData->getMaxCountViews(), + $itemData->getUseInfo(), + $itemData->getTypeId(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar enlace')); return DbWrapper::getQuery($queryData, $this->db); @@ -373,6 +392,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Refreshes a public link * * @param PublicLinkData $publicLinkData + * * @return bool * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -391,11 +411,13 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($publicLinkData->getHash()); - $queryData->addParam($publicLinkData->getData()); - $queryData->addParam($publicLinkData->getDateExpire()); - $queryData->addParam($publicLinkData->getMaxCountViews()); - $queryData->addParam($publicLinkData->getId()); + $queryData->setParams([ + $publicLinkData->getHash(), + $publicLinkData->getData(), + $publicLinkData->getDateExpire(), + $publicLinkData->getMaxCountViews(), + $publicLinkData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al renovar enlace')); return DbWrapper::getQuery($queryData, $this->db); @@ -405,8 +427,10 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param int $id + * * @return PublicLinkData - * @throws SPException + * @throws NoSuchItemException + * @throws QueryException */ public function getById($id) { @@ -440,11 +464,11 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface $queryRes = DbWrapper::getResults($queryData, $this->db); if ($queryRes === false) { - throw new SPException(__u('Error al obtener enlace'), SPException::ERROR); + throw new QueryException(__u('Error al obtener enlace')); } if ($queryData->getQueryNumRows() === 0) { - throw new SPException(__u('El enlace no existe'), SPException::ERROR); + throw new NoSuchItemException(__u('El enlace no existe')); } return $queryRes; @@ -452,8 +476,9 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface /** * @param $hash string + * * @return bool|PublicLinkData - * @throws \SP\Core\Exceptions\SPException + * @throws NoSuchItemException */ public function getByHash($hash) { @@ -490,7 +515,7 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface $queryRes = DbWrapper::getResults($queryData, $this->db); if ($queryData->getQueryNumRows() === 0) { - throw new SPException(__u('El enlace no existe'), SPException::ERROR); + throw new NoSuchItemException(__u('El enlace no existe')); } return $queryRes; @@ -500,20 +525,21 @@ class PublicLinkRepository extends Repository implements RepositoryItemInterface * Devolver el hash asociado a un elemento * * @param int $itemId + * * @return PublicLinkData - * @throws SPException + * @throws QueryException */ public function getHashForItem($itemId) { $queryData = new QueryData(); + $queryData->setMapClassName(PublicLinkData::class); $queryData->setQuery('SELECT id, `hash` FROM PublicLink WHERE itemId = ? LIMIT 1'); $queryData->addParam($itemId); - $queryData->setMapClassName(PublicLinkData::class); $queryRes = DbWrapper::getResults($queryData, $this->db); if ($queryRes === false) { - throw new SPException(__u('Error al obtener enlace'), SPException::ERROR); + throw new QueryException(__u('Error al obtener enlace')); } return $queryRes; diff --git a/lib/SP/Repositories/Track/TrackRepository.php b/lib/SP/Repositories/Track/TrackRepository.php index f4a797c2..ab908716 100644 --- a/lib/SP/Repositories/Track/TrackRepository.php +++ b/lib/SP/Repositories/Track/TrackRepository.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -31,12 +31,14 @@ use SP\Storage\QueryData; /** * Class TrackRepository + * * @package SP\Repositories\Track */ class TrackRepository extends Repository { /** * @param TrackRequest $trackRequest + * * @return mixed * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -46,17 +48,19 @@ class TrackRepository extends Repository $query = /** @lang SQL */ 'INSERT INTO Track SET userId = ?, - source = ?, - time = UNIX_TIMESTAMP(), + `source` = ?, + `time` = UNIX_TIMESTAMP(), ipv4 = ?, ipv6 = ?'; $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($trackRequest->userId); - $queryData->addParam($trackRequest->source); - $queryData->addParam($trackRequest->getIpv4()); - $queryData->addParam($trackRequest->getIpv6()); + $queryData->setParams([ + $trackRequest->userId, + $trackRequest->source, + $trackRequest->getIpv4(), + $trackRequest->getIpv6() + ]); $queryData->setOnErrorMessage(__u('Error al crear track')); DbWrapper::getQuery($queryData, $this->db); @@ -66,6 +70,7 @@ class TrackRepository extends Repository /** * @param $id int|array + * * @return mixed * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -84,6 +89,7 @@ class TrackRepository extends Repository /** * @param TrackData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -101,11 +107,13 @@ class TrackRepository extends Repository $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getUserId()); - $queryData->addParam($itemData->getSource()); - $queryData->addParam($itemData->getTrackIpv4Bin()); - $queryData->addParam($itemData->getTrackIpv6Bin()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getUserId(), + $itemData->getSource(), + $itemData->getTrackIpv4Bin(), + $itemData->getTrackIpv6Bin(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar track')); return DbWrapper::getQuery($queryData, $this->db); @@ -113,6 +121,7 @@ class TrackRepository extends Repository /** * @param $id int + * * @return TrackData */ public function getById($id) @@ -128,9 +137,9 @@ class TrackRepository extends Repository WHERE id = ? LIMIT 1'; $queryData = new QueryData(); + $queryData->setMapClassName(TrackData::class); $queryData->setQuery($query); $queryData->addParam($id); - $queryData->setMapClassName(TrackData::class); $queryData->setOnErrorMessage(__u('Error al obtener track')); return DbWrapper::getResults($queryData, $this->db); @@ -144,14 +153,14 @@ class TrackRepository extends Repository $query = /** @lang SQL */ 'SELECT id, userId, - source, - time, + `source`, + `time`, ipv4, ipv6 FROM Track'; $queryData = new QueryData(); - $queryData->setQuery($query); $queryData->setMapClassName(TrackData::class); + $queryData->setQuery($query); $queryData->setOnErrorMessage(__u('Error al obtener tracks')); return DbWrapper::getResultsArray($queryData); @@ -161,6 +170,7 @@ class TrackRepository extends Repository * Devuelve los tracks de un cliente desde un tiempo y origen determinados * * @param TrackRequest $trackRequest + * * @return array */ public function getTracksForClientFromTime(TrackRequest $trackRequest) @@ -173,12 +183,14 @@ class TrackRepository extends Repository AND `source` = ?'; $queryData = new QueryData(); - $queryData->setQuery($query); - $queryData->addParam($trackRequest->time); - $queryData->addParam($trackRequest->getIpv4()); - $queryData->addParam($trackRequest->getIpv6()); - $queryData->addParam($trackRequest->source); $queryData->setMapClassName(TrackData::class); + $queryData->setQuery($query); + $queryData->setParams([ + $trackRequest->time, + $trackRequest->getIpv4(), + $trackRequest->getIpv6(), + $trackRequest->source + ]); $queryData->setOnErrorMessage(__u('Error al obtener tracks')); return DbWrapper::getResultsArray($queryData, $this->db); diff --git a/lib/SP/Repositories/User/UserRepository.php b/lib/SP/Repositories/User/UserRepository.php index 402bf2cb..c111c248 100644 --- a/lib/SP/Repositories/User/UserRepository.php +++ b/lib/SP/Repositories/User/UserRepository.php @@ -24,6 +24,7 @@ namespace SP\Repositories\User; +use SP\Core\Exceptions\QueryException; use SP\Core\Exceptions\SPException; use SP\DataModel\ItemSearchData; use SP\DataModel\UserData; @@ -50,6 +51,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Updates an item * * @param UserData $itemData + * * @return int * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -80,19 +82,21 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getLogin()); - $queryData->addParam($itemData->getSsoLogin()); - $queryData->addParam($itemData->getEmail()); - $queryData->addParam($itemData->getNotes()); - $queryData->addParam($itemData->getUserGroupId()); - $queryData->addParam($itemData->getUserProfileId()); - $queryData->addParam($itemData->isAdminApp()); - $queryData->addParam($itemData->isAdminAcc()); - $queryData->addParam($itemData->isDisabled()); - $queryData->addParam($itemData->isChangePass()); - $queryData->addParam($itemData->isLdap()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getLogin(), + $itemData->getSsoLogin(), + $itemData->getEmail(), + $itemData->getNotes(), + $itemData->getUserGroupId(), + $itemData->getUserProfileId(), + $itemData->isAdminApp(), + $itemData->isAdminAcc(), + $itemData->isDisabled(), + $itemData->isChangePass(), + $itemData->isLdap(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar el usuario')); DbWrapper::getQuery($queryData, $this->db); @@ -104,6 +108,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on updating * * @param UserData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -119,10 +124,12 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getId()); - $queryData->addParam($itemData->getLogin()); - $queryData->addParam($itemData->getSsoLogin()); - $queryData->addParam($itemData->getEmail()); + $queryData->setParams([ + $itemData->getId(), + $itemData->getLogin(), + $itemData->getSsoLogin(), + $itemData->getEmail() + ]); DbWrapper::getQuery($queryData, $this->db); @@ -134,6 +141,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * * @param int $id * @param UpdatePassRequest $passRequest + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -152,10 +160,12 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($passRequest->getPass()); - $queryData->addParam($passRequest->getisChangePass()); - $queryData->addParam($passRequest->getisChangedPass()); - $queryData->addParam($id); + $queryData->setParams([ + $passRequest->getPass(), + $passRequest->getisChangePass(), + $passRequest->getisChangedPass(), + $id + ]); $queryData->setOnErrorMessage(__u('Error al modificar la clave')); return DbWrapper::getQuery($queryData, $this->db); @@ -165,6 +175,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Deletes an item * * @param $id + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -185,8 +196,10 @@ class UserRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param int $id + * * @return UserData - * @throws SPException + * @throws NoSuchItemException + * @throws QueryException */ public function getById($id) { @@ -228,7 +241,7 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryRes = DbWrapper::getResults($queryData, $this->db); if ($queryRes === false) { - throw new SPException(__u('Error al obtener los datos del usuario')); + throw new QueryException(__u('Error al obtener los datos del usuario')); } if (!($queryRes instanceof UserData)) { @@ -283,6 +296,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Returns all the items for given ids * * @param array $ids + * * @return UserData[] */ public function getByIdBatch(array $ids) @@ -333,6 +347,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Deletes all the items for given ids * * @param array $ids + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -353,6 +368,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Checks whether the item is in use or not * * @param $id int + * * @return void */ public function checkInUse($id) @@ -364,6 +380,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return array */ public function search(ItemSearchData $SearchData) @@ -413,6 +430,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Creates an item * * @param UserData $itemData + * * @return int * @throws SPException */ @@ -444,22 +462,25 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getLogin()); - $queryData->addParam($itemData->getSsoLogin()); - $queryData->addParam($itemData->getEmail()); - $queryData->addParam($itemData->getNotes()); - $queryData->addParam($itemData->getUserGroupId()); - $queryData->addParam($itemData->getUserProfileId()); - $queryData->addParam($itemData->getMPass()); - $queryData->addParam($itemData->getMKey()); - $queryData->addParam($itemData->getLastUpdateMPass()); - $queryData->addParam($itemData->isAdminApp()); - $queryData->addParam($itemData->isAdminAcc()); - $queryData->addParam($itemData->isDisabled()); - $queryData->addParam($itemData->isChangePass()); - $queryData->addParam($itemData->isLdap()); - $queryData->addParam($itemData->getPass()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getLogin(), + $itemData->getSsoLogin(), + $itemData->getEmail(), + $itemData->getNotes(), + $itemData->getUserGroupId(), + $itemData->getUserProfileId(), + $itemData->getMPass(), + $itemData->getMKey(), + $itemData->getLastUpdateMPass(), + $itemData->isAdminApp(), + $itemData->isAdminAcc(), + $itemData->isDisabled(), + $itemData->isChangePass(), + $itemData->isLdap(), + $itemData->getPass() + + ]); $queryData->setOnErrorMessage(__u('Error al crear el usuario')); DbWrapper::getQuery($queryData, $this->db); @@ -471,6 +492,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on adding * * @param UserData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -486,9 +508,11 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getLogin()); - $queryData->addParam($itemData->getSsoLogin()); - $queryData->addParam($itemData->getEmail()); + $queryData->setParams([ + $itemData->getLogin(), + $itemData->getSsoLogin(), + $itemData->getEmail() + ]); DbWrapper::getQuery($queryData, $this->db); @@ -497,8 +521,10 @@ class UserRepository extends Repository implements RepositoryItemInterface /** * @param $login string + * * @return UserData - * @throws SPException + * @throws NoSuchItemException + * @throws QueryException */ public function getByLogin($login) { @@ -535,13 +561,12 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setMapClassName(UserData::class); $queryData->setQuery($query); - $queryData->addParam($login); - $queryData->addParam($login); + $queryData->setParams([$login, $login]); $queryRes = DbWrapper::getResults($queryData, $this->db); if ($queryRes === false) { - throw new SPException(__u('Error al obtener los datos del usuario')); + throw new QueryException(__u('Error al obtener los datos del usuario')); } if ($queryData->getQueryNumRows() === 0) { @@ -584,6 +609,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * @param $id * @param $pass * @param $key + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -601,9 +627,7 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($pass); - $queryData->addParam($key); - $queryData->addParam($id); + $queryData->setParams([$pass, $key, $id]); return DbWrapper::getQuery($queryData, $this->db); } @@ -612,6 +636,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Actualiza el último inicio de sesión del usuario en la BBDD. * * @param $id int El id del usuario + * * @return bool * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -627,6 +652,7 @@ class UserRepository extends Repository implements RepositoryItemInterface /** * @param $login + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -635,8 +661,7 @@ class UserRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('SELECT id FROM User WHERE UPPER(login) = UPPER(?) OR UPPER(ssoLogin) = UPPER(?) LIMIT 1'); - $queryData->addParam($login); - $queryData->addParam($login); + $queryData->setParams([$login, $login]); DbWrapper::getQuery($queryData, $this->db); @@ -645,6 +670,7 @@ class UserRepository extends Repository implements RepositoryItemInterface /** * @param UserData $itemData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -654,7 +680,7 @@ class UserRepository extends Repository implements RepositoryItemInterface $query = 'UPDATE User SET pass = ?, hashSalt = \'\', - name = ?, + `name` = ?, email = ?, lastUpdate = NOW(), lastLogin = NOW(), @@ -663,12 +689,14 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getPass()); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getEmail()); - $queryData->addParam($itemData->isLdap()); - $queryData->addParam($itemData->getLogin()); - $queryData->addParam($itemData->getLogin()); + $queryData->setParams([ + $itemData->getPass(), + $itemData->getName(), + $itemData->getEmail(), + $itemData->isLdap(), + $itemData->getLogin(), + $itemData->getLogin() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar el usuario')); return DbWrapper::getQuery($queryData, $this->db); @@ -679,6 +707,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * * @param int $id * @param UserPreferencesData $userPreferencesData + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -687,8 +716,7 @@ class UserRepository extends Repository implements RepositoryItemInterface { $queryData = new QueryData(); $queryData->setQuery('UPDATE User SET preferences = ? WHERE id = ? LIMIT 1'); - $queryData->addParam(serialize($userPreferencesData)); - $queryData->addParam($id); + $queryData->setParams([serialize($userPreferencesData), $id]); $queryData->setOnErrorMessage(__u('Error al actualizar preferencias')); return DbWrapper::getQuery($queryData, $this->db); @@ -698,6 +726,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Obtener el email de los usuarios de un grupo * * @param $groupId + * * @return array */ public function getUserEmailForGroup($groupId) @@ -714,8 +743,7 @@ class UserRepository extends Repository implements RepositoryItemInterface $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($groupId); - $queryData->addParam($groupId); + $queryData->setParams([$groupId, $groupId]); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -724,6 +752,7 @@ class UserRepository extends Repository implements RepositoryItemInterface * Returns the usage of the given user's id * * @param int $id + * * @return array */ public function getUsageForUser($id) diff --git a/lib/SP/Repositories/UserGroup/UserGroupRepository.php b/lib/SP/Repositories/UserGroup/UserGroupRepository.php index b565288d..36a71f6d 100644 --- a/lib/SP/Repositories/UserGroup/UserGroupRepository.php +++ b/lib/SP/Repositories/UserGroup/UserGroupRepository.php @@ -49,6 +49,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Deletes an item * * @param $id + * * @return int * @throws SPException */ @@ -68,6 +69,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Checks whether the item is in use or not * * @param $id int + * * @return bool * @throws ConstraintException * @throws QueryException @@ -94,6 +96,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Returns the items that are using the given group id * * @param $id int + * * @return array */ public function getUsage($id) @@ -122,6 +125,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Returns the users that are using the given group id * * @param $id int + * * @return array */ public function getUsageByUsers($id) @@ -154,14 +158,15 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Returns the item for given id * * @param int $id + * * @return mixed */ public function getById($id) { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, name, description FROM UserGroup WHERE id = ? LIMIT 1'); - $queryData->addParam($id); $queryData->setMapClassName(UserGroupData::class); + $queryData->setQuery('SELECT id, `name`, description FROM UserGroup WHERE id = ? LIMIT 1'); + $queryData->addParam($id); return DbWrapper::getResults($queryData, $this->db); } @@ -170,14 +175,15 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Returns the item for given name * * @param string $name + * * @return UserGroupData */ public function getByName($name) { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, name, description FROM UserGroup WHERE name = ? LIMIT 1'); - $queryData->addParam($name); $queryData->setMapClassName(UserGroupData::class); + $queryData->setQuery('SELECT id, `name`, description FROM UserGroup WHERE name = ? LIMIT 1'); + $queryData->addParam($name); return DbWrapper::getResults($queryData, $this->db); } @@ -190,8 +196,8 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface public function getAll() { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, name, description FROM UserGroup ORDER BY name'); $queryData->setMapClassName(UserGroupData::class); + $queryData->setQuery('SELECT id, `name`, description FROM UserGroup ORDER BY name'); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -200,6 +206,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Returns all the items for given ids * * @param array $ids + * * @return UserGroupData[] */ public function getByIdBatch(array $ids) @@ -223,6 +230,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Deletes all the items for given ids * * @param array $ids + * * @return int * @throws ConstraintException * @throws QueryException @@ -242,6 +250,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return mixed */ public function search(ItemSearchData $SearchData) @@ -277,6 +286,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Creates an item * * @param UserGroupData $itemData + * * @return int * @throws SPException * @throws ConstraintException @@ -289,12 +299,11 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface } $query = /** @lang SQL */ - 'INSERT INTO UserGroup SET name = ?, description = ?'; + 'INSERT INTO UserGroup SET `name` = ?, description = ?'; $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getDescription()); + $queryData->setParams([$itemData->getName(), $itemData->getDescription()]); $queryData->setOnErrorMessage(__u('Error al crear el grupo')); DbWrapper::getQuery($queryData, $this->db); @@ -306,6 +315,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on adding * * @param UserGroupData $itemData + * * @return bool * @throws ConstraintException * @throws QueryException @@ -313,7 +323,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface public function checkDuplicatedOnAdd($itemData) { $queryData = new QueryData(); - $queryData->setQuery('SELECT name FROM UserGroup WHERE UPPER(name) = UPPER(?)'); + $queryData->setQuery('SELECT `name` FROM UserGroup WHERE UPPER(`name`) = UPPER(?)'); $queryData->addParam($itemData->getName()); DbWrapper::getQuery($queryData, $this->db); @@ -325,6 +335,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Updates an item * * @param UserGroupData $itemData + * * @return int * @throws ConstraintException * @throws QueryException @@ -337,10 +348,12 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface } $queryData = new QueryData(); - $queryData->setQuery('UPDATE UserGroup SET name = ?, description = ? WHERE id = ? LIMIT 1'); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getDescription()); - $queryData->addParam($itemData->getId()); + $queryData->setQuery('UPDATE UserGroup SET `name` = ?, description = ? WHERE id = ? LIMIT 1'); + $queryData->setParams([ + $itemData->getName(), + $itemData->getDescription(), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al actualizar el grupo')); DbWrapper::getQuery($queryData, $this->db); @@ -352,6 +365,7 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface * Checks whether the item is duplicated on updating * * @param UserGroupData $itemData + * * @return bool * @throws ConstraintException * @throws QueryException @@ -359,9 +373,8 @@ class UserGroupRepository extends Repository implements RepositoryItemInterface public function checkDuplicatedOnUpdate($itemData) { $queryData = new QueryData(); - $queryData->setQuery('SELECT name FROM UserGroup WHERE UPPER(name) = UPPER(?) AND id <> ?'); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getId()); + $queryData->setQuery('SELECT `name` FROM UserGroup WHERE UPPER(`name`) = UPPER(?) AND id <> ?'); + $queryData->setParams([$itemData->getName(), $itemData->getId()]); DbWrapper::getQuery($queryData, $this->db); diff --git a/lib/SP/Repositories/UserGroup/UserToUserGroupRepository.php b/lib/SP/Repositories/UserGroup/UserToUserGroupRepository.php index 1f11b955..cd5abd9f 100644 --- a/lib/SP/Repositories/UserGroup/UserToUserGroupRepository.php +++ b/lib/SP/Repositories/UserGroup/UserToUserGroupRepository.php @@ -50,8 +50,7 @@ class UserToUserGroupRepository extends Repository { $queryData = new QueryData(); $queryData->setQuery('SELECT userGroupId FROM UserToUserGroup WHERE userGroupId = ? AND userId = ?'); - $queryData->addParam($groupId); - $queryData->addParam($userId); + $queryData->setParams([$groupId, $userId]); DbWrapper::getResults($queryData, $this->db); @@ -146,9 +145,9 @@ class UserToUserGroupRepository extends Repository public function getById($id) { $queryData = new QueryData(); + $queryData->setMapClassName(UserToUserGroupData::class); $queryData->setQuery('SELECT userGroupId, userId FROM UserToUserGroup WHERE userGroupId = ?'); $queryData->addParam($id); - $queryData->setMapClassName(UserToUserGroupData::class); return DbWrapper::getResultsArray($queryData, $this->db); } diff --git a/lib/SP/Repositories/UserPassRecover/UserPassRecoverRepository.php b/lib/SP/Repositories/UserPassRecover/UserPassRecoverRepository.php index f4760f86..83057db1 100644 --- a/lib/SP/Repositories/UserPassRecover/UserPassRecoverRepository.php +++ b/lib/SP/Repositories/UserPassRecover/UserPassRecoverRepository.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -41,6 +41,7 @@ class UserPassRecoverRepository extends Repository * * @param int $userId * @param int $time + * * @return int * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -56,8 +57,7 @@ class UserPassRecoverRepository extends Repository $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($userId); - $queryData->addParam($time); + $queryData->setParams([$userId, $time]); DbWrapper::getQuery($queryData, $this->db); @@ -69,6 +69,7 @@ class UserPassRecoverRepository extends Repository * * @param $userId * @param $hash + * * @return bool * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException @@ -84,8 +85,7 @@ class UserPassRecoverRepository extends Repository $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($userId); - $queryData->addParam($hash); + $queryData->setParams([$userId, $hash]); $queryData->setOnErrorMessage(__u('Error al generar el hash de recuperación')); return DbWrapper::getQuery($queryData, $this->db); @@ -96,6 +96,7 @@ class UserPassRecoverRepository extends Repository * * @param string $hash * @param int $time + * * @return bool * @throws SPException */ @@ -110,8 +111,7 @@ class UserPassRecoverRepository extends Repository $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($hash); - $queryData->addParam($time); + $queryData->setParams([$hash, $time]); $queryData->setOnErrorMessage(__u('Error en comprobación de hash')); DbWrapper::getQuery($queryData, $this->db); @@ -124,6 +124,7 @@ class UserPassRecoverRepository extends Repository * * @param $hash * @param $time + * * @return mixed */ public function getUserIdForHash($hash, $time) @@ -134,12 +135,11 @@ class UserPassRecoverRepository extends Repository WHERE `hash` = ? AND used = 0 AND `date` >= ? - ORDER BY date DESC LIMIT 1'; + ORDER BY `date` DESC LIMIT 1'; $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($hash); - $queryData->addParam($time); + $queryData->setParams([$hash, $time]); return DbWrapper::getResults($queryData, $this->db); } diff --git a/lib/SP/Repositories/UserProfile/UserProfileRepository.php b/lib/SP/Repositories/UserProfile/UserProfileRepository.php index 36f77681..683590d4 100644 --- a/lib/SP/Repositories/UserProfile/UserProfileRepository.php +++ b/lib/SP/Repositories/UserProfile/UserProfileRepository.php @@ -48,6 +48,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Obtener el nombre de los usuarios que usan un perfil. * * @param $id int El id del perfil + * * @return array */ public function getUsersForProfile($id) @@ -63,6 +64,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Deletes an item * * @param $id + * * @return int * @throws ConstraintException * @throws QueryException @@ -83,6 +85,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Checks whether the item is in use or not * * @param $id int + * * @return bool * @throws ConstraintException * @throws QueryException @@ -102,14 +105,15 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Returns the item for given id * * @param int $id + * * @return UserProfileData */ public function getById($id) { $queryData = new QueryData(); + $queryData->setMapClassName(UserProfileData::class); $queryData->setQuery('SELECT id, `name`, `profile` FROM UserProfile WHERE id = ? LIMIT 1'); $queryData->addParam($id); - $queryData->setMapClassName(UserProfileData::class); return DbWrapper::getResults($queryData, $this->db); } @@ -122,8 +126,8 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac public function getAll() { $queryData = new QueryData(); - $queryData->setQuery('SELECT id, `name` FROM UserProfile ORDER BY `name`'); $queryData->setMapClassName(UserProfileData::class); + $queryData->setQuery('SELECT id, `name` FROM UserProfile ORDER BY `name`'); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -132,6 +136,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Returns all the items for given ids * * @param array $ids + * * @return UserProfileData[] */ public function getByIdBatch(array $ids) @@ -144,9 +149,9 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac 'SELECT id, `name` FROM UserProfile WHERE id IN (' . $this->getParamsFromArray($ids) . ')'; $queryData = new QueryData(); + $queryData->setMapClassName(UserProfileData::class); $queryData->setQuery($query); $queryData->setParams($ids); - $queryData->setMapClassName(UserProfileData::class); return DbWrapper::getResultsArray($queryData, $this->db); } @@ -155,6 +160,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Deletes all the items for given ids * * @param array $ids + * * @return int * @throws ConstraintException * @throws QueryException @@ -175,6 +181,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Searches for items by a given filter * * @param ItemSearchData $SearchData + * * @return mixed */ public function search(ItemSearchData $SearchData) @@ -208,6 +215,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Creates an item * * @param UserProfileData $itemData + * * @return int * @throws ConstraintException * @throws QueryException @@ -221,8 +229,10 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery('INSERT INTO UserProfile SET `name` = ?, `profile` = ?'); - $queryData->addParam($itemData->getName()); - $queryData->addParam(serialize($itemData->getProfile())); + $queryData->setParams([ + $itemData->getName(), + serialize($itemData->getProfile()) + ]); $queryData->setOnErrorMessage(__u('Error al crear perfil')); DbWrapper::getQuery($queryData, $this->db); @@ -234,6 +244,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Checks whether the item is duplicated on adding * * @param UserProfileData $itemData + * * @return bool * @throws ConstraintException * @throws QueryException @@ -253,6 +264,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Updates an item * * @param UserProfileData $itemData + * * @return bool * @throws ConstraintException * @throws QueryException @@ -269,9 +281,11 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac $queryData = new QueryData(); $queryData->setQuery($query); - $queryData->addParam($itemData->getName()); - $queryData->addParam(serialize($itemData->getProfile())); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getName(), + serialize($itemData->getProfile()), + $itemData->getId() + ]); $queryData->setOnErrorMessage(__u('Error al modificar perfil')); DbWrapper::getQuery($queryData, $this->db); @@ -283,6 +297,7 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac * Checks whether the item is duplicated on updating * * @param UserProfileData $itemData + * * @return bool * @throws ConstraintException * @throws QueryException @@ -296,8 +311,10 @@ class UserProfileRepository extends Repository implements RepositoryItemInterfac AND id <> ?'; $queryData = new QueryData(); - $queryData->addParam($itemData->getName()); - $queryData->addParam($itemData->getId()); + $queryData->setParams([ + $itemData->getName(), + $itemData->getId() + ]); $queryData->setQuery($query); DbWrapper::getQuery($queryData, $this->db); diff --git a/lib/SP/Services/Account/AccountHistoryService.php b/lib/SP/Services/Account/AccountHistoryService.php index 3163d693..380c9771 100644 --- a/lib/SP/Services/Account/AccountHistoryService.php +++ b/lib/SP/Services/Account/AccountHistoryService.php @@ -2,8 +2,8 @@ /** * sysPass * - * @author nuxsmin - * @link https://syspass.org + * @author nuxsmin + * @link https://syspass.org * @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org * * This file is part of sysPass. @@ -69,6 +69,7 @@ class AccountHistoryService extends Service * Returns the item for given id * * @param int $id + * * @return AccountHistoryData * @throws SPException * @throws \SP\Core\Exceptions\SPException @@ -82,15 +83,42 @@ class AccountHistoryService extends Service * Obtiene el listado del histórico de una cuenta. * * @param $id - * @return array|false Con los registros con id como clave y fecha - usuario como valor + * + * @return array Con los registros con id como clave y fecha - usuario como valor */ public function getHistoryForAccount($id) { - return $this->accountHistoryRepository->getHistoryForAccount($id); + return self::mapHistoryForDateSelect($this->accountHistoryRepository->getHistoryForAccount($id)); + } + + /** + * Masps history items to fill in a date select + * + * @param array $history + * + * @return array + */ + private static function mapHistoryForDateSelect(array $history) + { + $items = []; + + foreach ($history as $item) { + // Comprobamos si la entrada en el historial es la primera (no tiene editor ni fecha de edición) + if (empty($item->dateEdit) || $item->dateEdit === '0000-00-00 00:00:00') { + $date = $item->dateAdd . ' - ' . $item->userAdd; + } else { + $date = $item->dateEdit . ' - ' . $item->userEdit; + } + + $items[$item->id] = $date; + }; + + return $items; } /** * @param $id + * * @return ItemData[] */ public function getUsersByAccountId($id) @@ -100,6 +128,7 @@ class AccountHistoryService extends Service /** * @param $id + * * @return ItemData[] */ public function getUserGroupsByAccountId($id) @@ -109,6 +138,7 @@ class AccountHistoryService extends Service /** * @param ItemSearchData $itemSearchData + * * @return mixed */ public function search(ItemSearchData $itemSearchData) @@ -120,6 +150,7 @@ class AccountHistoryService extends Service * Crea una nueva cuenta en la BBDD * * @param array $itemData ['id' => , 'isModify' => ,'isDelete' => , 'masterPassHash' => ] + * * @return bool * @throws QueryException * @throws \SP\Core\Exceptions\ConstraintException @@ -142,6 +173,7 @@ class AccountHistoryService extends Service * Elimina los datos de una cuenta en la BBDD. * * @param array|int $id + * * @return bool Los ids de las cuentas eliminadas * @throws SPException */ @@ -166,6 +198,7 @@ class AccountHistoryService extends Service /** * @param AccountPasswordRequest $accountRequest + * * @return bool * @throws SPException * @throws \SP\Core\Exceptions\ConstraintException @@ -175,4 +208,13 @@ class AccountHistoryService extends Service return $this->accountHistoryRepository->updatePassword($accountRequest); } + /** + * Returns all the items + * + * @return array + */ + public function getAll() + { + return self::mapHistoryForDateSelect($this->accountHistoryRepository->getAll()); + } } \ No newline at end of file diff --git a/lib/SP/Services/Account/AccountService.php b/lib/SP/Services/Account/AccountService.php index fe0440c8..45166954 100644 --- a/lib/SP/Services/Account/AccountService.php +++ b/lib/SP/Services/Account/AccountService.php @@ -86,8 +86,10 @@ class AccountService extends Service implements AccountServiceInterface /** * @param int $id + * * @return AccountDetailsResponse - * @throws \SP\Core\Exceptions\SPException + * @throws QueryException + * @throws \SP\Repositories\NoSuchItemException */ public function getById($id) { @@ -393,7 +395,7 @@ class AccountService extends Service implements AccountServiceInterface { $this->addHistory($accountId); - $this->accountRepository->editRestore($historyId); + $this->accountRepository->editRestore($historyId, $this->context->getUserData()->getId()); } /** @@ -496,8 +498,10 @@ class AccountService extends Service implements AccountServiceInterface * Obtener los datos de una cuenta. * * @param $id + * * @return \SP\DataModel\AccountExtData - * @throws SPException + * @throws QueryException + * @throws \SP\Repositories\NoSuchItemException */ public function getDataForLink($id) {