Test Failed
Branch develop (82f08a)
by Andreas
15:40
created
server/includes/modules/class.itemmodule.php 1 patch
Switch Indentation   +178 added lines, -178 removed lines patch added patch discarded remove patch
@@ -52,241 +52,241 @@
 block discarded – undo
52 52
 					$entryid = $this->getActionEntryID($action);
53 53
 
54 54
 					switch ($actionType) {
55
-					case "open":
56
-						$this->open($store, $entryid, $action);
57
-						break;
55
+						case "open":
56
+							$this->open($store, $entryid, $action);
57
+							break;
58 58
 
59
-					case "save":
60
-						if (!$store || !$parententryid) {
61
-							/*
59
+						case "save":
60
+							if (!$store || !$parententryid) {
61
+								/*
62 62
 							 * if parententryid or storeentryid is not passed then we can take a guess that
63 63
 							 * it would be  a save operation but instead of depending on server to get default
64 64
 							 * parent and store client should always send parententryid and storeentryid
65 65
 							 *
66 66
 							 * we can also assume that user has permission to right in his own store
67 67
 							 */
68
-							$this->save($store, $parententryid, $entryid, $action);
69
-							break;
70
-						}
71
-						/*
68
+								$this->save($store, $parententryid, $entryid, $action);
69
+								break;
70
+							}
71
+							/*
72 72
 						 * The "message_action" object has been set, check the action_type field for
73 73
 						 * the exact action which must be taken.
74 74
 						 * Supported actions:
75 75
 						 *   - acceptmeetingrequest: attendee has accepted mr
76 76
 						 *   - declineMeetingRequest: attendee has declined mr
77 77
 						 */
78
-						if (!isset($action["message_action"], $action["message_action"]["action_type"])) {
79
-							$this->save($store, $parententryid, $entryid, $action);
80
-							break;
81
-						}
82
-
83
-						switch ($action["message_action"]["action_type"]) {
84
-						case "declineMeetingRequest":
85
-						case "acceptMeetingRequest":
86
-							$message = $GLOBALS["operations"]->openMessage($store, $entryid);
87
-							$basedate = (isset($action['basedate']) ? $action['basedate'] : false);
88
-							$delete = false;
89
-
90
-							if ($basedate) {
91
-								$recurrence = new Recurrence($store, $message);
92
-								$exceptionatt = $recurrence->getExceptionAttachment($basedate);
93
-								if ($exceptionatt) {
94
-									// get properties of existing exception.
95
-									$exceptionattProps = mapi_getprops($exceptionatt, [PR_ATTACH_NUM]);
96
-									$attach_num = $exceptionattProps[PR_ATTACH_NUM];
97
-								}
78
+							if (!isset($action["message_action"], $action["message_action"]["action_type"])) {
79
+								$this->save($store, $parententryid, $entryid, $action);
80
+								break;
98 81
 							}
99 82
 
100
-							/**
83
+							switch ($action["message_action"]["action_type"]) {
84
+								case "declineMeetingRequest":
85
+								case "acceptMeetingRequest":
86
+									$message = $GLOBALS["operations"]->openMessage($store, $entryid);
87
+									$basedate = (isset($action['basedate']) ? $action['basedate'] : false);
88
+									$delete = false;
89
+
90
+									if ($basedate) {
91
+										$recurrence = new Recurrence($store, $message);
92
+										$exceptionatt = $recurrence->getExceptionAttachment($basedate);
93
+										if ($exceptionatt) {
94
+											// get properties of existing exception.
95
+											$exceptionattProps = mapi_getprops($exceptionatt, [PR_ATTACH_NUM]);
96
+											$attach_num = $exceptionattProps[PR_ATTACH_NUM];
97
+										}
98
+									}
99
+
100
+									/**
101 101
 							 * Get message class from original message. This can be changed to
102 102
 							 * IPM.Appointment if the item is a Meeting Request in the maillist.
103 103
 							 * After Accepting/Declining the message is moved and changed.
104 104
 							 */
105
-							$originalMessageProps = mapi_getprops($message, [PR_MESSAGE_CLASS]);
106
-							$req = new Meetingrequest($store, $message, $GLOBALS["mapisession"]->getSession(), $this->directBookingMeetingRequest);
105
+									$originalMessageProps = mapi_getprops($message, [PR_MESSAGE_CLASS]);
106
+									$req = new Meetingrequest($store, $message, $GLOBALS["mapisession"]->getSession(), $this->directBookingMeetingRequest);
107 107
 
108
-							// Update extra body information
109
-							if (isset($action["message_action"]['meetingTimeInfo']) && !empty($action["message_action"]['meetingTimeInfo'])) {
110
-								$req->setMeetingTimeInfo($action["message_action"]['meetingTimeInfo']);
111
-								unset($action["message_action"]['meetingTimeInfo']);
112
-							}
108
+									// Update extra body information
109
+									if (isset($action["message_action"]['meetingTimeInfo']) && !empty($action["message_action"]['meetingTimeInfo'])) {
110
+										$req->setMeetingTimeInfo($action["message_action"]['meetingTimeInfo']);
111
+										unset($action["message_action"]['meetingTimeInfo']);
112
+									}
113 113
 
114
-							// sendResponse flag if it is set then send the mail response to the organzer.
115
-							$sendResponse = true;
116
-							if (isset($action["message_action"]["sendResponse"]) && $action["message_action"]["sendResponse"] == false) {
117
-								$sendResponse = false;
118
-							}
114
+									// sendResponse flag if it is set then send the mail response to the organzer.
115
+									$sendResponse = true;
116
+									if (isset($action["message_action"]["sendResponse"]) && $action["message_action"]["sendResponse"] == false) {
117
+										$sendResponse = false;
118
+									}
119 119
 
120
-							// @FIXME: fix body
121
-							$body = false;
122
-							if (isset($action["props"]["isHTML"]) && $action["props"]["isHTML"] === true) {
123
-								$body = isset($action["props"]["html_body"]) ? $action["props"]["html_body"] : false;
124
-							}
125
-							else {
126
-								$body = isset($action["props"]["body"]) ? $action["props"]["body"] : false;
127
-							}
120
+									// @FIXME: fix body
121
+									$body = false;
122
+									if (isset($action["props"]["isHTML"]) && $action["props"]["isHTML"] === true) {
123
+										$body = isset($action["props"]["html_body"]) ? $action["props"]["html_body"] : false;
124
+									}
125
+									else {
126
+										$body = isset($action["props"]["body"]) ? $action["props"]["body"] : false;
127
+									}
128 128
 
129
-							if ($action["message_action"]["action_type"] == "acceptMeetingRequest") {
130
-								$tentative = $action["message_action"]["responseType"] === olResponseTentative;
131
-								$newProposedStartTime = isset($action["message_action"]["proposed_starttime"]) ? $action["message_action"]["proposed_starttime"] : false;
132
-								$newProposedEndTime = isset($action["message_action"]["proposed_endtime"]) ? $action["message_action"]["proposed_endtime"] : false;
129
+									if ($action["message_action"]["action_type"] == "acceptMeetingRequest") {
130
+										$tentative = $action["message_action"]["responseType"] === olResponseTentative;
131
+										$newProposedStartTime = isset($action["message_action"]["proposed_starttime"]) ? $action["message_action"]["proposed_starttime"] : false;
132
+										$newProposedEndTime = isset($action["message_action"]["proposed_endtime"]) ? $action["message_action"]["proposed_endtime"] : false;
133 133
 
134
-								// We are accepting MR from preview-read-mail so set delete the actual mail flag.
135
-								$delete = $req->isMeetingRequest($originalMessageProps[PR_MESSAGE_CLASS]);
134
+										// We are accepting MR from preview-read-mail so set delete the actual mail flag.
135
+										$delete = $req->isMeetingRequest($originalMessageProps[PR_MESSAGE_CLASS]);
136 136
 
137
-								$req->doAccept($tentative, $sendResponse, $delete, $newProposedStartTime, $newProposedEndTime, $body, true, $store, $basedate);
138
-							}
139
-							else {
140
-								$delete = $req->doDecline($sendResponse, $basedate, $body);
141
-							}
137
+										$req->doAccept($tentative, $sendResponse, $delete, $newProposedStartTime, $newProposedEndTime, $body, true, $store, $basedate);
138
+									}
139
+									else {
140
+										$delete = $req->doDecline($sendResponse, $basedate, $body);
141
+									}
142 142
 
143
-							/**
143
+									/**
144 144
 							 * Now if the item is the Meeting Request that was sent to the attendee
145 145
 							 * it is removed when the user has clicked on Accept/Decline. If the
146 146
 							 * item is the appointment in the calendar it will not be moved. To only
147 147
 							 * notify the bus when the item is a Meeting Request we are going to
148 148
 							 * check the PR_MESSAGE_CLASS and see if it is "IPM.Meeting*".
149 149
 							 */
150
-							$messageProps = mapi_getprops($message, [PR_ENTRYID, PR_STORE_ENTRYID, PR_PARENT_ENTRYID]);
150
+									$messageProps = mapi_getprops($message, [PR_ENTRYID, PR_STORE_ENTRYID, PR_PARENT_ENTRYID]);
151 151
 
152
-							// if opened appointment is exception then it will add
153
-							// the attach_num and basedate in messageProps.
154
-							if (isset($attach_num)) {
155
-								$messageProps[PR_ATTACH_NUM] = [$attach_num];
156
-									$messageProps[$this->properties["basedate"]] = $basedate;
157
-							}
152
+									// if opened appointment is exception then it will add
153
+									// the attach_num and basedate in messageProps.
154
+									if (isset($attach_num)) {
155
+										$messageProps[PR_ATTACH_NUM] = [$attach_num];
156
+											$messageProps[$this->properties["basedate"]] = $basedate;
157
+									}
158 158
 
159
-							if ($delete) {
160
-								// send TABLE_DELETE event because the message has moved
161
-								$this->sendFeedback(true);
162
-								$GLOBALS["bus"]->notify(bin2hex($messageProps[PR_PARENT_ENTRYID]), TABLE_DELETE, $messageProps);
163
-							}
164
-							else {
165
-								$this->addActionData("update", ["item" => Conversion::mapMAPI2XML($this->properties, $messageProps)]);
166
-								$GLOBALS["bus"]->addData($this->getResponseData());
159
+									if ($delete) {
160
+										// send TABLE_DELETE event because the message has moved
161
+										$this->sendFeedback(true);
162
+										$GLOBALS["bus"]->notify(bin2hex($messageProps[PR_PARENT_ENTRYID]), TABLE_DELETE, $messageProps);
163
+									}
164
+									else {
165
+										$this->addActionData("update", ["item" => Conversion::mapMAPI2XML($this->properties, $messageProps)]);
166
+										$GLOBALS["bus"]->addData($this->getResponseData());
167 167
 
168
-								// send TABLE_SAVE event because an occurrence is deleted
169
-								$GLOBALS["bus"]->notify(bin2hex($messageProps[PR_PARENT_ENTRYID]), TABLE_SAVE, $messageProps);
170
-							}
168
+										// send TABLE_SAVE event because an occurrence is deleted
169
+										$GLOBALS["bus"]->notify(bin2hex($messageProps[PR_PARENT_ENTRYID]), TABLE_SAVE, $messageProps);
170
+									}
171 171
 
172
-							break;
172
+									break;
173 173
 
174
-						case "acceptTaskRequest":
175
-						case "declineTaskRequest":
176
-							$message = $GLOBALS["operations"]->openMessage($store, $entryid);
174
+								case "acceptTaskRequest":
175
+								case "declineTaskRequest":
176
+									$message = $GLOBALS["operations"]->openMessage($store, $entryid);
177 177
 
178
-							if (isset($action["props"]) && !empty($action["props"])) {
179
-								$properties = $GLOBALS["properties"]->getTaskProperties();
180
-								mapi_setprops($message, Conversion::mapXML2MAPI($properties, $action["props"]));
181
-								mapi_savechanges($message);
182
-							}
183
-							// The task may be a delegated task, do an update if needed (will fail for non-delegated tasks)
184
-							$tr = new TaskRequest($store, $message, $GLOBALS["mapisession"]->getSession());
185
-							$isAccept = $action["message_action"]["action_type"] == "acceptTaskRequest";
186
-							if (isset($action["message_action"]["task_comments_info"]) && !empty($action["message_action"]["task_comments_info"])) {
187
-								$tr->setTaskCommentsInfo($action["message_action"]["task_comments_info"]);
188
-							}
189
-							if ($isAccept) {
190
-								$result = $tr->doAccept();
191
-							}
192
-							else {
193
-								$result = $tr->doDecline();
194
-							}
178
+									if (isset($action["props"]) && !empty($action["props"])) {
179
+										$properties = $GLOBALS["properties"]->getTaskProperties();
180
+										mapi_setprops($message, Conversion::mapXML2MAPI($properties, $action["props"]));
181
+										mapi_savechanges($message);
182
+									}
183
+									// The task may be a delegated task, do an update if needed (will fail for non-delegated tasks)
184
+									$tr = new TaskRequest($store, $message, $GLOBALS["mapisession"]->getSession());
185
+									$isAccept = $action["message_action"]["action_type"] == "acceptTaskRequest";
186
+									if (isset($action["message_action"]["task_comments_info"]) && !empty($action["message_action"]["task_comments_info"])) {
187
+										$tr->setTaskCommentsInfo($action["message_action"]["task_comments_info"]);
188
+									}
189
+									if ($isAccept) {
190
+										$result = $tr->doAccept();
191
+									}
192
+									else {
193
+										$result = $tr->doDecline();
194
+									}
195 195
 
196
-							$this->sendFeedback(true);
197
-							if ($result !== false) {
198
-								$GLOBALS["bus"]->notify(bin2hex($result[PR_PARENT_ENTRYID]), TABLE_DELETE, $result);
199
-							}
196
+									$this->sendFeedback(true);
197
+									if ($result !== false) {
198
+										$GLOBALS["bus"]->notify(bin2hex($result[PR_PARENT_ENTRYID]), TABLE_DELETE, $result);
199
+									}
200 200
 
201
-							$props = mapi_getprops($message, [PR_ENTRYID, PR_STORE_ENTRYID, PR_PARENT_ENTRYID]);
202
-							if (!$tr->isTaskRequest()) {
203
-								unset($props[PR_MESSAGE_CLASS]);
204
-								$GLOBALS["bus"]->notify(bin2hex($props[PR_PARENT_ENTRYID]), $isAccept ? TABLE_SAVE : TABLE_DELETE, $props);
201
+									$props = mapi_getprops($message, [PR_ENTRYID, PR_STORE_ENTRYID, PR_PARENT_ENTRYID]);
202
+									if (!$tr->isTaskRequest()) {
203
+										unset($props[PR_MESSAGE_CLASS]);
204
+										$GLOBALS["bus"]->notify(bin2hex($props[PR_PARENT_ENTRYID]), $isAccept ? TABLE_SAVE : TABLE_DELETE, $props);
205
+									}
206
+									break;
207
+
208
+								case "copy":
209
+								case "move":
210
+									$this->copy($store, $parententryid, $entryid, $action);
211
+									break;
212
+
213
+								case "reply":
214
+								case "replyall":
215
+								case "forward":
216
+								default:
217
+									$this->save($store, $parententryid, $entryid, $action);
205 218
 							}
206
-							break;
207
-
208
-						case "copy":
209
-						case "move":
210
-							$this->copy($store, $parententryid, $entryid, $action);
211
-							break;
212
-
213
-						case "reply":
214
-						case "replyall":
215
-						case "forward":
216
-						default:
217
-							$this->save($store, $parententryid, $entryid, $action);
218
-						}
219 219
 						break;
220 220
 
221
-					case "delete":
222
-						$subActionType = false;
223
-						if (isset($action["message_action"], $action["message_action"]["action_type"])) {
224
-							$subActionType = $action["message_action"]["action_type"];
225
-						}
221
+						case "delete":
222
+							$subActionType = false;
223
+							if (isset($action["message_action"], $action["message_action"]["action_type"])) {
224
+								$subActionType = $action["message_action"]["action_type"];
225
+							}
226 226
 
227
-						/*
227
+							/*
228 228
 						 * The "message_action" object has been set, check the action_type field for
229 229
 						 * the exact action which must be taken.
230 230
 						 * Supported actions:
231 231
 						 *   - cancelInvitation: organizer cancels already scheduled meeting
232 232
 						 *   - removeFromCalendar: attendee receives meeting cancellation and wants to remove item from calendar
233 233
 						 */
234
-						switch ($subActionType) {
235
-						case "removeFromCalendar":
236
-							$basedate = (isset($action['basedate']) && !empty($action['basedate'])) ? $action['basedate'] : false;
237
-
238
-							$this->removeFromCalendar($store, $entryid, $basedate, $this->directBookingMeetingRequest);
239
-							$this->sendFeedback(true);
240
-							break;
241
-
242
-						case "cancelInvitation":
243
-							$this->cancelInvitation($store, $entryid, $action, $this->directBookingMeetingRequest);
244
-							$this->sendFeedback(true);
245
-							break;
246
-
247
-						case "declineMeeting":
248
-							// @FIXME can we somehow merge declineMeeting and declineMeetingRequest sub actions?
249
-							$message = $GLOBALS["operations"]->openMessage($store, $entryid);
250
-							$basedate = (isset($action['basedate']) && !empty($action['basedate'])) ? $action['basedate'] : false;
251
-
252
-							$req = new Meetingrequest($store, $message, $GLOBALS["mapisession"]->getSession(), $this->directBookingMeetingRequest);
253
-
254
-							// @FIXME: may be we can remove this body check any get it while declining meeting 'body'
255
-							$body = false;
256
-							if (isset($action["props"]["isHTML"]) && $action["props"]["isHTML"] === true) {
257
-								$body = isset($action["props"]["html_body"]) ? $action["props"]["html_body"] : false;
258
-							}
259
-							else {
260
-								$body = isset($action["props"]["body"]) ? $action["props"]["body"] : false;
261
-							}
262
-							$req->doDecline(true, $basedate, $body);
234
+							switch ($subActionType) {
235
+								case "removeFromCalendar":
236
+									$basedate = (isset($action['basedate']) && !empty($action['basedate'])) ? $action['basedate'] : false;
237
+
238
+									$this->removeFromCalendar($store, $entryid, $basedate, $this->directBookingMeetingRequest);
239
+									$this->sendFeedback(true);
240
+									break;
241
+
242
+								case "cancelInvitation":
243
+									$this->cancelInvitation($store, $entryid, $action, $this->directBookingMeetingRequest);
244
+									$this->sendFeedback(true);
245
+									break;
246
+
247
+								case "declineMeeting":
248
+									// @FIXME can we somehow merge declineMeeting and declineMeetingRequest sub actions?
249
+									$message = $GLOBALS["operations"]->openMessage($store, $entryid);
250
+									$basedate = (isset($action['basedate']) && !empty($action['basedate'])) ? $action['basedate'] : false;
251
+
252
+									$req = new Meetingrequest($store, $message, $GLOBALS["mapisession"]->getSession(), $this->directBookingMeetingRequest);
253
+
254
+									// @FIXME: may be we can remove this body check any get it while declining meeting 'body'
255
+									$body = false;
256
+									if (isset($action["props"]["isHTML"]) && $action["props"]["isHTML"] === true) {
257
+										$body = isset($action["props"]["html_body"]) ? $action["props"]["html_body"] : false;
258
+									}
259
+									else {
260
+										$body = isset($action["props"]["body"]) ? $action["props"]["body"] : false;
261
+									}
262
+									$req->doDecline(true, $basedate, $body);
263 263
 
264
-							$messageProps = mapi_getprops($message, [PR_ENTRYID, PR_STORE_ENTRYID, PR_PARENT_ENTRYID]);
265
-							$GLOBALS["bus"]->notify(bin2hex($messageProps[PR_PARENT_ENTRYID]), $basedate ? TABLE_SAVE : TABLE_DELETE, $messageProps);
264
+									$messageProps = mapi_getprops($message, [PR_ENTRYID, PR_STORE_ENTRYID, PR_PARENT_ENTRYID]);
265
+									$GLOBALS["bus"]->notify(bin2hex($messageProps[PR_PARENT_ENTRYID]), $basedate ? TABLE_SAVE : TABLE_DELETE, $messageProps);
266 266
 
267
-							break;
267
+									break;
268 268
 
269
-						case "snooze":
270
-						case "dismiss":
271
-							$this->delete($store, $parententryid, $entryid, $action);
272
-							break;
269
+								case "snooze":
270
+								case "dismiss":
271
+									$this->delete($store, $parententryid, $entryid, $action);
272
+									break;
273 273
 
274
-						default:
275
-							// Deleting an occurrence means that we have to save the message to
276
-							// generate an exception. So when the basedate is provided, we actually
277
-							// perform a save rather then delete.
278
-							if (isset($action['basedate']) && !empty($action['basedate'])) {
279
-								$this->save($store, $parententryid, $entryid, $action, "delete");
280
-							}
281
-							else {
282
-								$this->delete($store, $parententryid, $entryid, $action);
274
+								default:
275
+									// Deleting an occurrence means that we have to save the message to
276
+									// generate an exception. So when the basedate is provided, we actually
277
+									// perform a save rather then delete.
278
+									if (isset($action['basedate']) && !empty($action['basedate'])) {
279
+										$this->save($store, $parententryid, $entryid, $action, "delete");
280
+									}
281
+									else {
282
+										$this->delete($store, $parententryid, $entryid, $action);
283
+									}
284
+									break;
283 285
 							}
284
-							break;
285
-						}
286 286
 						break;
287 287
 
288
-					default:
289
-						$this->handleUnknownActionType($actionType);
288
+						default:
289
+							$this->handleUnknownActionType($actionType);
290 290
 					}
291 291
 				}
292 292
 				catch (MAPIException $e) {
Please login to merge, or discard this patch.