. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Controllers; use Espo\Core\Api\Response; use Espo\Core\Exceptions\BadRequest; use Espo\Core\Exceptions\Forbidden; use Espo\Core\Api\Request; use Espo\Core\Controllers\Record; use Espo\Core\Select\SearchParams; use Espo\Core\Select\Where\Item as WhereItem; use stdClass; class User extends Record { public function postActionCreate(Request $request, Response $response): stdClass { if ($request->getHeader('Content-Type') !== 'application/json') { throw new BadRequest("Not supported content type."); } return parent::postActionCreate($request, $response); } public function postActionCreateLink(Request $request): bool { if (!$this->user->isAdmin()) { throw new Forbidden(); } return parent::postActionCreateLink($request); } public function deleteActionRemoveLink(Request $request): bool { if (!$this->user->isAdmin()) { throw new Forbidden(); } return parent::deleteActionRemoveLink($request); } protected function fetchSearchParamsFromRequest(Request $request): SearchParams { $searchParams = parent::fetchSearchParamsFromRequest($request); $userType = $request->getQueryParam('userType'); if (!$userType) { return $searchParams; } return $searchParams->withWhereAdded( WhereItem::fromRaw([ 'type' => 'isOfType', 'attribute' => 'id', 'value' => $userType, ]) ); } }