ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilObjMailGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2017 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
9 class ilObjMailGUI extends ilObjectGUI
10 {
13 
14  const PASSWORD_PLACE_HOLDER = '***********************';
15 
19  protected $tabs;
20 
24  protected $rbacsystem;
25 
29  protected $settings;
30 
37  public function __construct($a_data, $a_id, $a_call_by_reference)
38  {
39  global $DIC;
40 
41  $this->type = 'mail';
42  parent::__construct($a_data, $a_id, $a_call_by_reference, false);
43 
44  $this->tabs = $DIC->tabs();
45  $this->rbacsystem = $DIC->rbac()->system();
46  $this->settings = $DIC['ilSetting'];
47 
48  $this->lng->loadLanguageModule('mail');
49  }
50 
54  public function executeCommand()
55  {
56  $next_class = $this->ctrl->getNextClass($this);
57  $cmd = $this->ctrl->getCmd();
58  $this->prepareOutput();
59 
60  switch ($next_class) {
61  case 'ilpermissiongui':
62  $perm_gui = new ilPermissionGUI($this);
63  $this->ctrl->forwardCommand($perm_gui);
64  break;
65 
66  case 'ilmailtemplategui':
67  if (!$this->isViewAllowed()) {
68  $this->ilias->raiseError($this->lng->txt('msg_no_perm_write'), $this->ilias->error_obj->WARNING);
69  }
70 
71  $this->ctrl->forwardCommand(new ilMailTemplateGUI($this->object));
72  break;
73 
74  default:
75  if (!$cmd) {
76  $cmd = 'view';
77  }
78  $cmd .= 'Object';
79  $this->$cmd();
80  break;
81  }
82 
83  return true;
84  }
85 
89  private function isEditingAllowed()
90  {
91  return $this->rbacsystem->checkAccess('write', $this->object->getRefId());
92  }
93 
97  private function isViewAllowed()
98  {
99  return $this->rbacsystem->checkAccess('read', $this->object->getRefId());
100  }
101 
105  private function isPermissionChangeAllowed()
106  {
107  return $this->rbacsystem->checkAccess('edit_permission', $this->object->getRefId());
108  }
109 
113  public function getAdminTabs()
114  {
115  $this->getTabs();
116  }
117 
121  protected function getTabs()
122  {
123  if ($this->isViewAllowed()) {
124  $this->tabs->addTarget(
125  'settings',
126  $this->ctrl->getLinkTarget($this, 'view'),
127  array(
128  'view',
129  'save',
130  '',
131  'showExternalSettingsForm',
132  'saveExternalSettingsForm',
133  'sendTestUserMail',
134  'sendTestSystemMail'
135  ),
136  '',
137  ''
138  );
139  }
140 
141  if ($this->isViewAllowed()) {
142  $this->tabs->addTarget(
143  'mail_templates',
144  $this->ctrl->getLinkTargetByClass('ilmailtemplategui', 'showTemplates'),
145  '',
146  'ilmailtemplategui'
147  );
148  }
149 
150  if ($this->isPermissionChangeAllowed()) {
151  $this->tabs->addTarget(
152  'perm_settings',
153  $this->ctrl->getLinkTargetByClass(array(get_class($this), 'ilpermissiongui'), 'perm'),
154  array('perm', 'info', 'owner'),
155  'ilpermissiongui'
156  );
157  }
158  }
159 
163  protected function buildSettingsSubTabs($activeSubTab)
164  {
165  if ($this->isViewAllowed()) {
166  $this->tabs->addSubTab(
167  self::SETTINGS_SUB_TAB_ID_GENERAL,
168  $this->lng->txt('mail_settings_general_tab'),
169  $this->ctrl->getLinkTarget($this, 'view')
170  );
171 
172  if ($this->settings->get('mail_allow_external')) {
173  $this->tabs->addSubTab(
174  self::SETTINGS_SUB_TAB_ID_EXTERNAL,
175  $this->lng->txt('mail_settings_external_tab'),
176  $this->ctrl->getLinkTarget($this, 'showExternalSettingsForm')
177  );
178  }
179 
180  $this->tabs->activateSubTab($activeSubTab);
181  }
182  }
183 
187  public function viewObject()
188  {
189  $this->showGeneralSettingsForm();
190  }
191 
196  {
197  if (!$this->isViewAllowed()) {
198  $this->ilias->raiseError($this->lng->txt('msg_no_perm_write'), $this->ilias->error_obj->WARNING);
199  }
200 
201  $this->buildSettingsSubTabs(self::SETTINGS_SUB_TAB_ID_GENERAL);
202 
203  if ($form === null) {
204  $form = $this->getGeneralSettingsForm();
206  }
207 
208  $this->tpl->setContent($form->getHTML());
209  }
210 
214  protected function getGeneralSettingsForm()
215  {
216  $form = new ilPropertyFormGUI();
217 
218  $form->setFormAction($this->ctrl->getFormAction($this, 'save'));
219  $form->setTitle($this->lng->txt('general_settings'));
220 
221  $cb = new ilCheckboxInputGUI($this->lng->txt('mail_allow_external'), 'mail_allow_external');
222  $cb->setInfo($this->lng->txt('mail_allow_external_info'));
223  $cb->setValue(1);
224  $cb->setDisabled(!$this->isEditingAllowed());
225  $form->addItem($cb);
226 
227  include_once 'Services/Mail/classes/Form/class.ilIncomingMailInputGUI.php';
228  $incoming_mail_gui = new ilIncomingMailInputGUI($this->lng->txt('mail_incoming'), 'incoming_type');
229  $incoming_mail_gui->setDisabled(!$this->isEditingAllowed());
230  $this->ctrl->setParameterByClass('ilobjuserfoldergui', 'ref_id', USER_FOLDER_ID);
231  $incoming_mail_gui->setInfo(sprintf(
232  $this->lng->txt('mail_settings_incoming_type_see_also'),
233  $this->ctrl->getLinkTargetByClass('ilobjuserfoldergui', 'settings')
234  ));
235  $this->ctrl->clearParametersByClass('ilobjuserfoldergui');
236  $form->addItem($incoming_mail_gui);
237 
238  $show_mail_settings_gui = new ilCheckboxInputGUI($this->lng->txt('show_mail_settings'), 'show_mail_settings');
239  $show_mail_settings_gui->setInfo($this->lng->txt('show_mail_settings_info'));
240  $show_mail_settings_gui->setValue(1);
241  $form->addItem($show_mail_settings_gui);
242 
243  $ti = new ilNumberInputGUI($this->lng->txt('mail_maxsize_attach'), 'mail_maxsize_attach');
244  $ti->setSuffix($this->lng->txt('kb'));
245  $ti->setInfo($this->lng->txt('mail_max_size_attachments_total'));
246  $ti->setMaxLength(10);
247  $ti->setSize(10);
248  $ti->setDisabled(!$this->isEditingAllowed());
249  $form->addItem($ti);
250 
251  $mn = new ilFormSectionHeaderGUI();
252  $mn->setTitle($this->lng->txt('mail_member_notification'));
253  $form->addItem($mn);
254 
255  $cron_mail = new ilSelectInputGUI($this->lng->txt('cron_mail_notification'), 'mail_notification');
256  $cron_options = array(
257  0 => $this->lng->txt('cron_mail_notification_never'),
258  1 => $this->lng->txt('cron_mail_notification_cron')
259  );
260  $cron_mail->setOptions($cron_options);
261  $cron_mail->setInfo(sprintf(
262  $this->lng->txt('cron_mail_notification_desc'),
263  $this->lng->txt('mail_allow_external')
264  ));
265  $cron_mail->setDisabled(!$this->isEditingAllowed());
266  $form->addItem($cron_mail);
267 
270  $form,
271  $this
272  );
273 
274  if ($this->isEditingAllowed()) {
275  $form->addCommandButton('save', $this->lng->txt('save'));
276  }
277 
278  return $form;
279  }
280 
285  {
286  $form->setValuesByArray(array(
287  'mail_allow_external' => $this->settings->get('mail_allow_external'),
288  'incoming_type' => (int) $this->settings->get('mail_incoming_mail'),
289  'mail_address_option' => strlen($this->settings->get('mail_address_option')) ? $this->settings->get('mail_address_option') : ilMailOptions::FIRST_EMAIL,
290  'mail_address_option_both' => strlen($this->settings->get('mail_address_option')) ? $this->settings->get('mail_address_option') : ilMailOptions::FIRST_EMAIL,
291  'show_mail_settings' => $this->settings->get('show_mail_settings', 1),
292  'mail_maxsize_attach' => $this->settings->get('mail_maxsize_attach'),
293  'mail_notification' => $this->settings->get('mail_notification')
294  ));
295  }
296 
300  public function saveObject()
301  {
302  if (!$this->isEditingAllowed()) {
303  $this->ilias->raiseError($this->lng->txt('msg_no_perm_write'), $this->ilias->error_obj->WARNING);
304  }
305 
306  $form = $this->getGeneralSettingsForm();
307  if ($form->checkInput()) {
308  $incoming_type = (int) $form->getInput('incoming_type');
309 
310  $mail_address_option = ilMailOptions::FIRST_EMAIL;
311  if ($incoming_type == ilMailOptions::INCOMING_EMAIL) {
312  $mail_address_option = (int) $form->getInput('mail_address_option');
313  } else {
314  if ($incoming_type == ilMailOptions::INCOMING_BOTH) {
315  $mail_address_option = (int) $form->getInput('mail_address_option_both');
316  }
317  }
318 
319  $this->settings->set('mail_allow_external', (int) $form->getInput('mail_allow_external'));
320  $this->settings->set('mail_incoming_mail', $incoming_type);
321  $this->settings->set('show_mail_settings', (int) $form->getInput('show_mail_settings'));
322 
323  $this->settings->set('mail_address_option', $mail_address_option);
324  $this->settings->set('mail_maxsize_attach', $form->getInput('mail_maxsize_attach'));
325  $this->settings->set('mail_notification', (int) $form->getInput('mail_notification'));
326 
327  ilUtil::sendSuccess($this->lng->txt('saved_successfully'), true);
328  $this->ctrl->redirect($this);
329  }
330 
331  $form->setValuesByPost();
333  }
334 
339  {
340  if (!$this->isViewAllowed()) {
341  $this->ilias->raiseError($this->lng->txt('msg_no_perm_write'), $this->ilias->error_obj->WARNING);
342  }
343 
344  $this->buildSettingsSubTabs(self::SETTINGS_SUB_TAB_ID_EXTERNAL);
345 
346  if ($form === null) {
347  $form = $this->getExternalSettingsForm();
349  }
350 
351  if (strlen($GLOBALS['DIC']->user()->getEmail()) > 0) {
352  $btn = ilLinkButton::getInstance();
353  $btn->setUrl($this->ctrl->getLinkTarget($this, 'sendTestUserMail'));
354  $btn->setCaption('mail_external_send_test_usr');
355  $GLOBALS['DIC']->toolbar()->addButtonInstance($btn);
356 
357  $btn = ilLinkButton::getInstance();
358  $btn->setUrl($this->ctrl->getLinkTarget($this, 'sendTestSystemMail'));
359  $btn->setCaption('mail_external_send_test_sys');
360  $GLOBALS['DIC']->toolbar()->addButtonInstance($btn);
361  }
362 
363  $this->tpl->setContent($form->getHTML());
364  }
365 
366  protected function sendTestUserMailObject()
367  {
368  $this->sendTestMail(true);
369  }
370 
371  protected function sendTestSystemMailObject()
372  {
373  $this->sendTestMail();
374  }
375 
379  protected function sendTestMail($is_manual_mail = false)
380  {
381  if (!$this->isViewAllowed()) {
382  $this->ilias->raiseError($this->lng->txt('msg_no_perm_write'), $this->ilias->error_obj->WARNING);
383  }
384 
385  if (strlen($GLOBALS['DIC']->user()->getEmail()) == 0) {
386  return $this->showExternalSettingsFormObject();
387  }
388 
389  if ($is_manual_mail) {
390  $mail = new ilMail($GLOBALS['DIC']->user()->getId());
391  $type = array('normal');
392  } else {
393  $mail = new ilMail(ANONYMOUS_USER_ID);
394  $type = array('system');
395  }
396 
397  $mail->setSaveInSentbox(false);
398  $mail->appendInstallationSignature(true);
399  $mail->sendMail($GLOBALS['DIC']->user()->getEmail(), '', '', 'Test Subject', 'Test Body', array(), $type);
400 
401  ilUtil::sendSuccess($this->lng->txt('mail_external_test_sent'));
403  }
404 
408  protected function getExternalSettingsForm()
409  {
410  $form = new ilPropertyFormGUI();
411 
412  $form->setFormAction($this->ctrl->getFormAction($this, 'saveExternalSettingsForm'));
413  $form->setTitle($this->lng->txt('mail_settings_external_frm_head'));
414 
415  $smtp = new ilCheckboxInputGUI($this->lng->txt('mail_smtp_status'), 'mail_smtp_status');
416  $smtp->setInfo($this->lng->txt('mail_smtp_status_info'));
417  $smtp->setValue(1);
418  $smtp->setDisabled(!$this->isEditingAllowed());
419  $form->addItem($smtp);
420 
421  $host = new ilTextInputGUI($this->lng->txt('mail_smtp_host'), 'mail_smtp_host');
422  $host->setInfo($this->lng->txt('mail_smtp_host_info'));
423  $host->setRequired(true);
424  $host->setDisabled(!$this->isEditingAllowed());
425  $smtp->addSubItem($host);
426 
427  $port = new ilNumberInputGUI($this->lng->txt('mail_smtp_port'), 'mail_smtp_port');
428  $port->setInfo($this->lng->txt('mail_smtp_port_info'));
429  $port->allowDecimals(false);
430  $port->setMinValue(0);
431  $port->setMinValue(0);
432  $port->setRequired(true);
433  $port->setDisabled(!$this->isEditingAllowed());
434  $smtp->addSubItem($port);
435 
436  $encryption = new ilSelectInputGUI($this->lng->txt('mail_smtp_encryption'), 'mail_smtp_encryption');
437  $encryptionOptions = array(
438  '' => $this->lng->txt('please_choose'),
439  'tls' => $this->lng->txt('mail_smtp_encryption_tls'),
440  'ssl' => $this->lng->txt('mail_smtp_encryption_ssl')
441  );
442 
443  $encryption->setOptions($encryptionOptions);
444  $encryption->setDisabled(!$this->isEditingAllowed());
445  $smtp->addSubItem($encryption);
446 
447  $user = new ilTextInputGUI($this->lng->txt('mail_smtp_user'), 'mail_smtp_user');
448  $user->setDisabled(!$this->isEditingAllowed());
449  $smtp->addSubItem($user);
450 
451  $password = new ilPasswordInputGUI($this->lng->txt('mail_smtp_password'), 'mail_smtp_password');
452  $password->setRetype(false);
453  $password->setSkipSyntaxCheck(true);
454  $password->setDisabled(!$this->isEditingAllowed());
455  $smtp->addSubItem($password);
456 
457  $pre = new ilTextInputGUI($this->lng->txt('mail_subject_prefix'), 'mail_subject_prefix');
458  $pre->setSize(12);
459  $pre->setMaxLength(32);
460  $pre->setInfo($this->lng->txt('mail_subject_prefix_info'));
461  $pre->setDisabled(!$this->isEditingAllowed());
462  $form->addItem($pre);
463 
464  $send_html = new ilCheckboxInputGUI($this->lng->txt('mail_send_html'), 'mail_send_html');
465  $send_html->setInfo($this->lng->txt('mail_send_html_info'));
466  $send_html->setValue(1);
467  $send_html->setDisabled(!$this->isEditingAllowed());
468  $form->addItem($send_html);
469 
470  $sh = new ilFormSectionHeaderGUI();
471  $sh->setTitle($this->lng->txt('mail_settings_user_frm_head'));
472  $form->addItem($sh);
473 
474  $user_from_address = new ilEMailInputGUI(
475  $this->lng->txt('mail_system_usr_from_addr'),
476  'mail_system_usr_from_addr'
477  );
478  $user_from_address->setInfo($this->lng->txt('mail_system_usr_from_addr_info'));
479  $user_from_address->setRequired(true);
480  $user_from_address->setDisabled(!$this->isEditingAllowed());
481  $form->addItem($user_from_address);
482 
483  $user_from_name = new ilTextInputGUI($this->lng->txt('mail_system_usr_from_name'), 'mail_system_usr_from_name');
484  $user_from_name->setInfo($this->lng->txt('mail_system_usr_from_name_info'));
485  $user_from_name->setRequired(true);
486  $user_from_name->setDisabled(!$this->isEditingAllowed());
487  $form->addItem($user_from_name);
488 
489  $user_envelope_from_addr = new ilEMailInputGUI(
490  $this->lng->txt('mail_system_usr_env_from_addr'),
491  'mail_system_usr_env_from_addr'
492  );
493  $user_envelope_from_addr->setInfo($this->lng->txt('mail_system_usr_env_from_addr_info'));
494  $user_envelope_from_addr->setDisabled(!$this->isEditingAllowed());
495  $form->addItem($user_envelope_from_addr);
496 
497  $sh = new ilFormSectionHeaderGUI();
498  $sh->setTitle($this->lng->txt('mail_settings_system_frm_head'));
499  $form->addItem($sh);
500 
501  $system_from_addr = new ilEMailInputGUI(
502  $this->lng->txt('mail_system_sys_from_addr'),
503  'mail_system_sys_from_addr'
504  );
505  $system_from_addr->setInfo($this->lng->txt('mail_system_sys_from_addr_info'));
506  $system_from_addr->setRequired(true);
507  $system_from_addr->setDisabled(!$this->isEditingAllowed());
508  $form->addItem($system_from_addr);
509 
510  $system_from_name = new ilTextInputGUI(
511  $this->lng->txt('mail_system_sys_from_name'),
512  'mail_system_sys_from_name'
513  );
514  $system_from_name->setRequired(true);
515  $system_from_name->setDisabled(!$this->isEditingAllowed());
516  $form->addItem($system_from_name);
517 
518  $system_reply_to_addr = new ilEMailInputGUI(
519  $this->lng->txt('mail_system_sys_reply_to_addr'),
520  'mail_system_sys_reply_to_addr'
521  );
522  $system_reply_to_addr->setRequired(true);
523  $system_reply_to_addr->setDisabled(!$this->isEditingAllowed());
524  $form->addItem($system_reply_to_addr);
525 
526  $system_return_path = new ilEMailInputGUI(
527  $this->lng->txt('mail_system_sys_env_from_addr'),
528  'mail_system_sys_env_from_addr'
529  );
530  $system_return_path->setInfo($this->lng->txt('mail_system_sys_env_from_addr_info'));
531  $system_return_path->setDisabled(!$this->isEditingAllowed());
532  $form->addItem($system_return_path);
533 
534  $signature = new ilTextAreaInputGUI($this->lng->txt('mail_system_sys_signature'), 'mail_system_sys_signature');
535  $signature->setRows(8);
536  $signature->setDisabled(!$this->isEditingAllowed());
537  $form->addItem($signature);
538 
539  $placeholders = new ilManualPlaceholderInputGUI('mail_system_sys_signature');
540  foreach (array(
541  array('placeholder' => 'CLIENT_NAME', 'label' => $this->lng->txt('mail_nacc_client_name')),
542  array('placeholder' => 'CLIENT_DESC', 'label' => $this->lng->txt('mail_nacc_client_desc')),
543  array('placeholder' => 'CLIENT_URL', 'label' => $this->lng->txt('mail_nacc_ilias_url'))
544  ) as $key => $value) {
545  $placeholders->addPlaceholder($value['placeholder'], $value['label']);
546  }
547  $placeholders->setDisabled(!$this->isEditingAllowed());
548  $form->addItem($placeholders);
549 
550  if ($this->isEditingAllowed()) {
551  $form->addCommandButton('saveExternalSettingsForm', $this->lng->txt('save'));
552  }
553 
554  return $form;
555  }
556 
561  {
562  $subjectPrefix = $this->settings->get('mail_subject_prefix');
563  if (false === $subjectPrefix) {
564  $subjectPrefix = ilMail::MAIL_SUBJECT_PREFIX;
565  }
566 
567  $form->setValuesByArray(array(
568  'mail_smtp_status' => (bool) $this->settings->get('mail_smtp_status'),
569  'mail_smtp_host' => $this->settings->get('mail_smtp_host'),
570  'mail_smtp_port' => (int) $this->settings->get('mail_smtp_port'),
571  'mail_smtp_user' => $this->settings->get('mail_smtp_user'),
572  'mail_smtp_password' => strlen($this->settings->get('mail_smtp_password')) > 0 ? self::PASSWORD_PLACE_HOLDER : '',
573  'mail_smtp_encryption' => $this->settings->get('mail_smtp_encryption'),
574  'mail_subject_prefix' => $subjectPrefix,
575  'mail_send_html' => (int) $this->settings->get('mail_send_html'),
576  'mail_system_usr_from_addr' => $this->settings->get('mail_system_usr_from_addr'),
577  'mail_system_usr_from_name' => $this->settings->get('mail_system_usr_from_name'),
578  'mail_system_usr_env_from_addr' => $this->settings->get('mail_system_usr_env_from_addr'),
579  'mail_system_sys_from_addr' => $this->settings->get('mail_system_sys_from_addr'),
580  'mail_system_sys_from_name' => $this->settings->get('mail_system_sys_from_name'),
581  'mail_system_sys_reply_to_addr' => $this->settings->get('mail_system_sys_reply_to_addr'),
582  'mail_system_sys_env_from_addr' => $this->settings->get('mail_system_sys_env_from_addr'),
583  'mail_system_sys_signature' => $this->settings->get('mail_system_sys_signature')
584  ));
585  }
586 
590  protected function saveExternalSettingsFormObject()
591  {
592  if (!$this->isEditingAllowed()) {
593  $this->ilias->raiseError($this->lng->txt('msg_no_perm_write'), $this->ilias->error_obj->WARNING);
594  }
595 
596  $form = $this->getExternalSettingsForm();
597  $isFormValid = $form->checkInput();
598 
599  if (!$isFormValid) {
600  $form->setValuesByPost();
602  return;
603  }
604 
605  $isSmtpEnabled = (bool) $form->getInput('mail_smtp_status');
606  if ($isSmtpEnabled && $form->getInput('mail_smtp_user') && !$form->getInput('mail_smtp_password')) {
607  $form->getItemByPostVar('mail_smtp_password')->setRequired(true);
608  $form->getItemByPostVar('mail_smtp_password')->setAlert($this->lng->txt('mail_smtp_password_req'));
609  $form->setValuesByPost();
611  return;
612  }
613 
614  $this->settings->set('mail_smtp_status', (int) $form->getInput('mail_smtp_status'));
615  $this->settings->set('mail_smtp_host', $form->getInput('mail_smtp_host'));
616  $this->settings->set('mail_smtp_port', (int) $form->getInput('mail_smtp_port'));
617  $this->settings->set('mail_smtp_user', $form->getInput('mail_smtp_user'));
618  if ($form->getInput('mail_smtp_password') != self::PASSWORD_PLACE_HOLDER) {
619  $this->settings->set('mail_smtp_password', $form->getInput('mail_smtp_password'));
620  }
621  $this->settings->set('mail_smtp_encryption', $form->getInput('mail_smtp_encryption'));
622 
623  $this->settings->set('mail_send_html', $form->getInput('mail_send_html'));
624  $this->settings->set('mail_subject_prefix', $form->getInput('mail_subject_prefix'));
625  $this->settings->set('mail_system_usr_from_addr', $form->getInput('mail_system_usr_from_addr'));
626  $this->settings->set('mail_system_usr_from_name', $form->getInput('mail_system_usr_from_name'));
627  $this->settings->set('mail_system_usr_env_from_addr', $form->getInput('mail_system_usr_env_from_addr'));
628  $this->settings->set('mail_system_sys_from_addr', $form->getInput('mail_system_sys_from_addr'));
629  $this->settings->set('mail_system_sys_from_name', $form->getInput('mail_system_sys_from_name'));
630  $this->settings->set('mail_system_sys_reply_to_addr', $form->getInput('mail_system_sys_reply_to_addr'));
631  $this->settings->set('mail_system_sys_env_from_addr', $form->getInput('mail_system_sys_env_from_addr'));
632  $this->settings->set('mail_system_sys_signature', $form->getInput('mail_system_sys_signature'));
633 
634  ilUtil::sendSuccess($this->lng->txt('saved_successfully'), true);
635  $this->ctrl->redirect($this, 'showExternalSettingsForm');
636  }
637 
641  public static function _goto($a_target)
642  {
643  global $DIC;
644 
645  $mail = new ilMail($DIC->user()->getId());
646 
647  if ($DIC->rbac()->system()->checkAccess('internal_mail', $mail->getMailObjectReferenceId())) {
648  ilUtil::redirect('ilias.php?baseClass=ilMailGUI');
649  } else {
650  if ($DIC->access()->checkAccess('read', '', ROOT_FOLDER_ID)) {
651  $_GET['cmd'] = 'frameset';
652  $_GET['target'] = '';
653  $_GET['ref_id'] = ROOT_FOLDER_ID;
654  $_GET['baseClass'] = 'ilRepositoryGUI';
656  sprintf(
657  $DIC->language()->txt('msg_no_perm_read_item'),
659  ),
660  true
661  );
662 
663  include 'ilias.php';
664  exit();
665  }
666  }
667 
668  $DIC['ilErr']->raiseError($DIC->language()->txt('msg_no_perm_read'), $DIC['ilErr']->FATAL);
669  }
670 }
settings()
Definition: settings.php:2
This class represents a selection list property in a property form.
This class represents a property form user interface.
$type
global $DIC
Definition: saml.php:7
Class ilMailTemplateGUI.
$_GET["client_id"]
populateGeneralSettingsForm(ilPropertyFormGUI $form)
This class represents a section header in a property form.
This class represents a checkbox property in a property form.
static _lookupTitle($a_id)
lookup object title
__construct($a_data, $a_id, $a_call_by_reference)
ilObjMailGUI constructor.
This class represents a email property in a property form.
user()
Definition: user.php:4
static addFieldsToForm($a_form_id, ilPropertyFormGUI $a_form, ilObjectGUI $a_parent_gui)
Class ilManualPlaceholderInputGUI.
setInfo($a_info)
Set Information Text.
const MAIL_SUBJECT_PREFIX
const SETTINGS_SUB_TAB_ID_EXTERNAL
prepareOutput($a_show_subobjects=true)
prepare output
sendTestMail($is_manual_mail=false)
buildSettingsSubTabs($activeSubTab)
showExternalSettingsFormObject(ilPropertyFormGUI $form=null)
setSuffix($a_value)
Set suffix.
if(isset($_POST['submit'])) $form
This class represents a number property in a property form.
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
setSize($a_size)
Set Size.
This class represents a text property in a property form.
This class represents a password property in a property form.
redirection script todo: (a better solution should control the processing via a xml file) ...
setOptions($a_options)
Set Options.
showGeneralSettingsForm(ilPropertyFormGUI $form=null)
static _goto($a_target)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const SETTINGS_SUB_TAB_ID_GENERAL
exit
Definition: backend.php:16
$password
Definition: cron.php:14
This class represents a text area property in a property form.
const USER_FOLDER_ID
Class ilObjUserFolder.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static redirect($a_script)
$key
Definition: croninfo.php:18
setDisabled($a_disabled)
Set Disabled.
setValuesByArray($a_values, $a_restrict_to_value_keys=false)
Set form values from an array.
setRequired($a_required)
Set Required.
Class ilIncomingMailInputGUI.
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
populateExternalSettingsForm(ilPropertyFormGUI $form)