chg: [decaying:model] First batch of fix from the PR review - WiP (not tested)

pull/5032/head
mokaddem 2019-09-12 10:42:53 +02:00
parent 60edb198a7
commit a990727db2
No known key found for this signature in database
GPG Key ID: 164C473F627A06FA
2 changed files with 36 additions and 22 deletions

View File

@ -86,7 +86,7 @@ class DecayingModelController extends AppController
if (!empty($result)) {
$this->Flash->success(__('The model has been imported.'));
} else {
$this->Flash->error(__('The model has been but mapping. However importing mapping failed.'));
$this->Flash->error(__('The model has been imported. However importing mapping failed.'));
}
} else {
$this->Flash->error(__('Error while importing model.'));
@ -180,14 +180,25 @@ class DecayingModelController extends AppController
if ($this->request->data === false) {
return false;
}
$attribute_types = array();
if (!empty($this->request->data['attribute_types'])) {
$attribute_types = $this->request->data['attribute_types'];
unset($this->request->data['attribute_types']);
}
if ($this->DecayingModel->save($this->request->data)) {
$success_message = __('The model has been saved.');
if (!empty($saved_model['attribute_types'])) {
if (!$this->DecayingModel->DecayingModelMapping->resetMappingForModel($saved_model, $this->Auth->user())) {
$success_message = __('The model has been saved. However importing mapping failed.');
}
}
if ($this->request->is('ajax') || $this->_isRest()) {
$saved = $this->DecayingModel->fetchModel($this->Auth->user(), $this->DecayingModel->id);
$saved = $this->DecayingModel->attachIsEditableByCurrentUser($this->Auth->user(), $saved);
$response = array('data' => $saved, 'action' => 'add');
return $this->RestResponse->viewData($response, $this->response->type());
} else {
$this->Flash->success(__('The model has been saved.'));
$this->Flash->success($sucess_messaqge);
$this->redirect(array('action' => 'index'));
}
} else {

View File

@ -16,7 +16,7 @@ class DecayingModel extends AppModel
)
);
private $__registered_model_classes = array(); // Proxy for already instanciated classes
private $__registered_model_classes = array(); // Proxy for already instantiated classes
public $allowed_overrides = array('threshold' => 1, 'lifetime' => 1, 'decay_speed' => 1);
public function afterFind($results, $primary = false) {
@ -66,30 +66,28 @@ class DecayingModel extends AppModel
$this->data['DecayingModel']['parameters']['settings'] = '{}';
}
if (!empty($this->data['DecayingModel']['attribute_types']) && !is_array($this->data['DecayingModel']['attribute_types'])) {
$encoded = json_decode($this->data['DecayingModel']['attribute_types'], true);
if ($encoded === null) {
return false;
}
}
if (
isset($this->data['DecayingModel']['parameters']) &&
!empty($this->data['DecayingModel']['parameters']) &&
!is_array($this->data['DecayingModel']['parameters'])
) {
$encoded = json_decode($this->data['DecayingModel']['parameters'], true);
if ($encoded !== null) {
$validation = $this->__adjustParameters($encoded);
if ($validation !== false) {
$this->data['DecayingModel']['parameters'] = json_encode($encoded);
return true;
}
if ($encoded === null) {
return false;
}
return false;
$encoded = $this->__adjustParameters($encoded);
$this->data['DecayingModel']['parameters'] = json_encode($encoded);
return true;
} else {
$validation = $this->__adjustParameters($this->data['DecayingModel']['parameters']);
return $validation;
}
if (!empty($this->data['DecayingModel']['attribute_types']) && !is_array($this->data['DecayingModel']['attribute_types'])) {
$encoded = json_decode($this->data['DecayingModel']['attribute_types'], true);
if ($encoded !== null) {
return true;
}
return false;
$this->data['DecayingModel']['parameters'] = $this->__adjustParameters($this->data['DecayingModel']['parameters']);
return $this->data['DecayingModel']['parameters'];
}
}
@ -120,7 +118,7 @@ class DecayingModel extends AppModel
* May be improved at some point.
* For now, limit the number of digits for the parameters
*/
private function __adjustParameters(&$parameters)
private function __adjustParameters($parameters)
{
foreach ($parameters as $name => $value) {
if (is_array($value)) {
@ -133,7 +131,7 @@ class DecayingModel extends AppModel
$parameters[$name] = 0;
}
}
return true;
return $parameters;
}
private function __load_models($force = false)
@ -181,7 +179,12 @@ class DecayingModel extends AppModel
{
return (
$user['Role']['perm_site_admin'] ||
($user['Role']['perm_decaying'] && !$decaying_model['DecayingModel']['default'] && $decaying_model['DecayingModel']['org_id'] == $user['org_id']));
(
$user['Role']['perm_decaying'] &&
!$decaying_model['DecayingModel']['default'] &&
$decaying_model['DecayingModel']['org_id'] == $user['org_id']
)
);
}
public function attachIsEditableByCurrentUser($user, $decaying_model)