Skip to content

Commit 479547f

Browse files
committed
fix: managed tickets
get extra questions
1 parent e0abad2 commit 479547f

File tree

4 files changed

+178
-193
lines changed

4 files changed

+178
-193
lines changed

app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitOrderExtraQuestionTypeApiController.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,10 +483,10 @@ public function getOwnAttendeeAllowedExtraQuestions($summit_id)
483483
public function getAttendeeExtraQuestions($summit_id, $attendee_id)
484484
{
485485
$summit = SummitFinderStrategyFactory::build($this->getSummitRepository(), $this->getResourceServerContext())->find($summit_id);
486-
if (is_null($summit)) return $this->error404("Summit not found");
486+
if (is_null($summit)) return $this->error404("Summit not found.");
487487

488488
$attendee = $summit->getAttendeeById(intval($attendee_id));
489-
if (is_null($attendee)) return $this->error404("Attendee not found");
489+
if (is_null($attendee)) return $this->error404("Attendee not found.");
490490

491491
// authz
492492
// check that we have a current member ( not service account )
@@ -499,7 +499,12 @@ public function getAttendeeExtraQuestions($summit_id, $attendee_id)
499499

500500
if(!$auth){
501501
// check if current member is the attendee
502-
$auth = $attendee->getEmail() == $current_member->getEmail() || $attendee->getMemberId() == $current_member->getId();
502+
$auth = (
503+
$attendee->getEmail() == $current_member->getEmail()
504+
|| $attendee->getMemberId() == $current_member->getId()
505+
|| $attendee->isManagedBy($current_member)
506+
);
507+
503508
if(!$auth){
504509
// check if the attendee is under some order of the current member
505510
foreach($current_member->getPadRegistrationOrdersForSummit($summit) as $order){
@@ -513,7 +518,7 @@ public function getAttendeeExtraQuestions($summit_id, $attendee_id)
513518
}
514519

515520
if(!$auth)
516-
return $this->error401();
521+
return $this->error403("You are not Authorized.");
517522

518523
return $this->_getAll(
519524
function () {

app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitOrdersApiController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ public function getMyTicketById($order_id, $ticket_id)
468468
$current_user = $this->getResourceServerContext()->getCurrentUser();
469469

470470
if (is_null($current_user))
471-
return $this->error403();
471+
return $this->error401();
472472

473473
if (!$order instanceof SummitOrder)
474474
throw new EntityNotFoundException("Order not found.");

app/ModelSerializers/Summit/Registration/BaseSummitAttendeeTicketSerializer.php

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
* limitations under the License.
1313
**/
1414

15-
use App\ModelSerializers\Traits\RequestScopedCache;
1615
use Libs\ModelSerializers\Many2OneExpandSerializer;
1716
use Libs\ModelSerializers\One2ManyExpandSerializer;
1817
use models\summit\SummitAttendeeTicket;
@@ -100,8 +99,6 @@ class BaseSummitAttendeeTicketSerializer extends SilverStripeSerializer
10099
],
101100
];
102101

103-
use RequestScopedCache;
104-
105102
/**
106103
* @param null $expand
107104
* @param array $fields
@@ -111,37 +108,28 @@ class BaseSummitAttendeeTicketSerializer extends SilverStripeSerializer
111108
*/
112109
public function serialize($expand = null, array $fields = [], array $relations = [], array $params = [])
113110
{
114-
return $this->cache(
115-
$this->getRequestKey
116-
(
117-
"BaseSummitAttendeeTicketSerializer",
118-
$this->object->getIdentifier(),
119-
$expand,
120-
$fields,
121-
$relations
122-
), function () use ($expand, $fields, $relations, $params) {
123111

124-
$ticket = $this->object;
125-
if (!$ticket instanceof SummitAttendeeTicket) return [];
126-
$values = parent::serialize($expand, $fields, $relations, $params);
112+
$ticket = $this->object;
113+
if (!$ticket instanceof SummitAttendeeTicket) return [];
114+
$values = parent::serialize($expand, $fields, $relations, $params);
127115

128-
if (in_array('applied_taxes', $relations) && !isset($values['applied_taxes'])) {
129-
$applied_taxes = [];
130-
foreach ($ticket->getAppliedTaxes() as $tax) {
131-
$applied_taxes[] = $tax->getId();
132-
}
133-
$values['applied_taxes'] = $applied_taxes;
116+
if (in_array('applied_taxes', $relations) && !isset($values['applied_taxes'])) {
117+
$applied_taxes = [];
118+
foreach ($ticket->getAppliedTaxes() as $tax) {
119+
$applied_taxes[] = $tax->getId();
134120
}
121+
$values['applied_taxes'] = $applied_taxes;
122+
}
135123

136-
if (in_array('refund_requests', $relations) && !isset($values['refund_requests'])) {
137-
$refund_requests = [];
138-
foreach ($ticket->getRefundedRequests() as $request) {
139-
$refund_requests[] = $request->getId();
140-
}
141-
$values['refund_requests'] = $refund_requests;
124+
if (in_array('refund_requests', $relations) && !isset($values['refund_requests'])) {
125+
$refund_requests = [];
126+
foreach ($ticket->getRefundedRequests() as $request) {
127+
$refund_requests[] = $request->getId();
142128
}
129+
$values['refund_requests'] = $refund_requests;
130+
}
131+
132+
return $values;
143133

144-
return $values;
145-
});
146134
}
147135
}

0 commit comments

Comments
 (0)