mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 12:33:26 +00:00
#PHRAS-888 time 5m
rollback (double record instantiation was ok)
This commit is contained in:
@@ -1316,7 +1316,7 @@ class V1Controller extends Controller
|
|||||||
*/
|
*/
|
||||||
public function getRecordMetadataAction(Request $request, $databox_id, $record_id)
|
public function getRecordMetadataAction(Request $request, $databox_id, $record_id)
|
||||||
{
|
{
|
||||||
$record = \record_adapter::getRecordLoaded($this->app, $databox_id, $record_id);
|
$record = $this->findDataboxById($databox_id)->get_record($record_id);
|
||||||
$ret = ["record_metadatas" => $this->listRecordCaption($record->get_caption())];
|
$ret = ["record_metadatas" => $this->listRecordCaption($record->get_caption())];
|
||||||
|
|
||||||
return Result::create($request, $ret)->createResponse();
|
return Result::create($request, $ret)->createResponse();
|
||||||
@@ -2417,7 +2417,8 @@ class V1Controller extends Controller
|
|||||||
public function ensureCanAccessToRecord(Request $request)
|
public function ensureCanAccessToRecord(Request $request)
|
||||||
{
|
{
|
||||||
$user = $this->getApiAuthenticatedUser();
|
$user = $this->getApiAuthenticatedUser();
|
||||||
$record = \record_adapter::getRecordLoaded($this->app, $request->attributes->get('databox_id'), $request->attributes->get('record_id'));
|
$record = $this->findDataboxById($request->attributes->get('databox_id'))
|
||||||
|
->get_record($request->attributes->get('record_id'));
|
||||||
if (!$this->getAclForUser($user)->has_access_to_record($record)) {
|
if (!$this->getAclForUser($user)->has_access_to_record($record)) {
|
||||||
return Result::createError($request, 401, 'You are not authorized')->createResponse();
|
return Result::createError($request, 401, 'You are not authorized')->createResponse();
|
||||||
}
|
}
|
||||||
|
@@ -250,7 +250,7 @@ class databox extends base implements ThumbnailedElement
|
|||||||
*/
|
*/
|
||||||
public function get_record($record_id, $number = null)
|
public function get_record($record_id, $number = null)
|
||||||
{
|
{
|
||||||
return record_adapter::getRecordLoaded($this->app, $this->id, $record_id, $number);
|
return new record_adapter($this->app, $this->id, $record_id, $number);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_label($code, $substitute = true)
|
public function get_label($code, $substitute = true)
|
||||||
|
@@ -107,28 +107,6 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
|||||||
$this->mirror($record);
|
$this->mirror($record);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* returns a loaded record, same thing as calling new record_adapter(..., load=true)
|
|
||||||
* but does instantiate only one record, no need to mirror().
|
|
||||||
*
|
|
||||||
* @param Application $app
|
|
||||||
* @param $sbas_id
|
|
||||||
* @param $record_id
|
|
||||||
* @param null $number
|
|
||||||
*
|
|
||||||
* @return null|record_adapter
|
|
||||||
*/
|
|
||||||
public static function getRecordLoaded(Application $app, $sbas_id, $record_id, $number = null)
|
|
||||||
{
|
|
||||||
if (null === ($record = $app->findDataboxById((int) $sbas_id)->getRecordRepository()->find($record_id))) {
|
|
||||||
throw new Exception_Record_AdapterNotFound('Record ' . $record_id . ' on database ' . $sbas_id . ' not found ');
|
|
||||||
}
|
|
||||||
$record->app = $app;
|
|
||||||
$record->number = $number;
|
|
||||||
|
|
||||||
return $record;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param record_adapter $record
|
* @param record_adapter $record
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user