diff --git a/Controller/ActAsPeopleController.php b/Controller/ActAsPeopleController.php index 71e5b07..aafa563 100644 --- a/Controller/ActAsPeopleController.php +++ b/Controller/ActAsPeopleController.php @@ -89,6 +89,19 @@ public function add(): void $fullName = $data['fullname']; unset($data['fullname']); + $args = []; + $args['conditions']['ActAsPerson.co_person_id'] = $data['co_person_id']; + $args['conditions']['ActAsPerson.act_as_co_person_id'] = $data['act_as_co_person_id']; + $args['contain'] = false; + if(!empty($this->ActAsPerson->find('first', $args))) { + $this->Api->restResultHeader(HttpStatusCodesEnum::HTTP_CONFLICT, 'Already Exists'); + $error = ErrorsEnum::Conflict; + $this->set(compact('error')); + $this->set('_serialize', 'error'); + return; + } + + try { $ret = $this->ActAsPerson->saveAll($data); } diff --git a/Lib/enum.php b/Lib/enum.php index c496330..dd8185b 100644 --- a/Lib/enum.php +++ b/Lib/enum.php @@ -1,11 +1,12 @@ 'ERROR', 'message' => 'ERROR']; - const Exception = ['status' => 'ERROR', 'message' => 'EXCEPTION']; - const NoAccess = ['status' => 'ERROR', 'message' => 'NO ACCESS']; - const NotAdded = ['status' => 'ERROR', 'message' => 'NOT ADDED']; - const NotDeleted = ['status' => 'ERROR', 'message' => 'NOT DELETED']; + const Error = ['status' => 'ERROR', 'message' => 'Error']; + const Exception = ['status' => 'ERROR', 'message' => 'Exception']; + const NoAccess = ['status' => 'ERROR', 'message' => 'No Access']; + const NotAdded = ['status' => 'ERROR', 'message' => 'Not Added']; + const Conflict = ['status' => 'ERROR', 'message' => 'Already Exists']; + const NotDeleted = ['status' => 'ERROR', 'message' => 'Not Deleted']; } class GrouperSpecialGroups { diff --git a/View/Elements/ActAsPeopleAutocomplete.ctp b/View/Elements/ActAsPeopleAutocomplete.ctp index d147ae9..4e650f9 100644 --- a/View/Elements/ActAsPeopleAutocomplete.ctp +++ b/View/Elements/ActAsPeopleAutocomplete.ctp @@ -167,6 +167,7 @@ $suffix = Configure::read('debug') > 0 ? '?time=' . time() : '';