/** * Init acceptance * @return */ protected function initSettings() { if (self::$accepted_ids !== NULL) { return true; } self::$export_allowed = ilPrivacySettings::_getInstance()->checkExportAccess($this->getParentObject()->object->getRefId()); self::$confirmation_required = ilPrivacySettings::_getInstance()->groupConfirmationRequired(); include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; self::$accepted_ids = ilMemberAgreement::lookupAcceptedAgreements($this->getParentObject()->object->getId()); include_once 'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php'; self::$has_odf_definitions = ilCourseDefinedFieldDefinition::_hasFields($this->getParentObject()->object->getId()); }
/** * Checks whether the agreement is accepted * This function return always true if no acceptance is required by global setting * * @access public * @return bool */ public function agreementRequired() { if (!$this->privacy->confirmationRequired($this->type) and !ilCourseDefinedFieldDefinition::_hasFields($this->obj_id)) { return false; } return $this->accepted ? false : true; }
/** * Check Agreement * * @access private * */ private function checkAgreement() { global $ilUser; if ($_POST['agreed']) { return true; } if (!$this->privacy->confirmationRequired($this->type) and !ilCourseDefinedFieldDefinition::_hasFields($this->obj_id)) { return true; } return false; }
/** * Constructor * * @access public * @param * @return */ public function __construct($a_parent_obj, $show_content = true, $show_subject = true) { global $lng, $ilCtrl; $this->lng = $lng; $this->lng->loadLanguageModule('grp'); $this->lng->loadLanguageModule('crs'); $this->ctrl = $ilCtrl; $this->setShowSubject($show_subject); $this->setId('crs_sub_' . $a_parent_obj->object->getId()); parent::__construct($a_parent_obj, 'members'); $this->setFormName('subscribers'); $this->setFormAction($this->ctrl->getFormAction($a_parent_obj, 'members')); $this->addColumn('', 'f', "1"); $this->addColumn($this->lng->txt('name'), 'lastname', '20%'); $all_cols = $this->getSelectableColumns(); foreach ($this->getSelectedColumns() as $col) { $this->addColumn($all_cols[$col]['txt'], $col); } $this->addColumn($this->lng->txt('application_date'), 'sub_time', "10%"); if ($this->getShowSubject()) { $this->addColumn($this->lng->txt('subject'), 'subject', '15%'); } $this->addColumn('', 'mail', '10%'); $this->addMultiCommand('assignSubscribers', $this->lng->txt('assign')); $this->addMultiCommand('refuseSubscribers', $this->lng->txt('refuse')); $this->addMultiCommand('sendMailToSelectedUsers', $this->lng->txt('crs_mem_send_mail')); $this->setPrefix('subscribers'); $this->setSelectAllCheckbox('subscribers'); $this->setRowTemplate("tpl.show_subscribers_row.html", "Services/Membership"); if ($show_content) { $this->enable('sort'); $this->enable('header'); $this->enable('numinfo'); $this->enable('select_all'); } else { $this->disable('content'); $this->disable('header'); $this->disable('footer'); $this->disable('numinfo'); $this->disable('select_all'); } $this->setExternalSegmentation(true); include_once 'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php'; self::$has_odf_definitions = ilCourseDefinedFieldDefinition::_hasFields($this->getParentObject()->object->getId()); }
/** * Set Agreement accepted * * @access private * @param bool */ protected function setAccepted($a_status) { global $ilUser; include_once 'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php'; if (!$this->privacy->confirmationRequired($this->type) and !ilCourseDefinedFieldDefinition::_hasFields($this->container->getId())) { return true; } include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; $this->agreement = new ilMemberAgreement($ilUser->getId(), $this->container->getId()); $this->agreement->setAccepted($a_status); $this->agreement->setAcceptanceTime(time()); $this->agreement->save(); }
/** * Get ordered enabled fields * * @access public * @param * */ protected function getOrderedExportableFields() { include_once 'Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; include_once 'Services/PrivacySecurity/classes/class.ilExportFieldsInfo.php'; include_once 'Modules/Course/classes/Export/class.ilCourseDefinedFieldDefinition.php'; include_once 'Services/User/classes/class.ilUserDefinedFields.php'; $field_info = ilExportFieldsInfo::_getInstanceByType(ilObject::_lookupType($this->obj_id)); $fields[] = 'role'; // Append agreement info $privacy = ilPrivacySettings::_getInstance(); if ($privacy->courseConfirmationRequired() or ilCourseDefinedFieldDefinition::_hasFields($this->obj_id)) { $fields[] = 'agreement'; } foreach ($field_info->getExportableFields() as $field) { if ($this->settings->enabled($field)) { $fields[] = $field; } } $udf = ilUserDefinedFields::_getInstance(); foreach ($udf->getCourseExportableFields() as $field_id => $udf_data) { $fields[] = 'udf_' . $field_id; } // Add course specific fields foreach (ilCourseDefinedFieldDefinition::_getFields($this->obj_id) as $field_obj) { if ($this->settings->enabled('cdf_' . $field_obj->getId())) { $fields[] = 'cdf_' . $field_obj->getId(); } } return $fields ? $fields : array(); }
/** * Check agreement and redirect if it is not accepted * * @access private * */ private function checkAgreement() { global $ilUser, $ilAccess; if ($ilAccess->checkAccess('write', '', $this->object->getRefId())) { return true; } // Disable aggrement if is not member of course if (!$this->object->getMemberObject()->isAssigned()) { return true; } include_once './Services/Container/classes/class.ilMemberViewSettings.php'; if (ilMemberViewSettings::getInstance()->isActive()) { return true; } include_once 'Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; include_once 'Services/Membership/classes/class.ilMemberAgreement.php'; $privacy = ilPrivacySettings::_getInstance(); // Check agreement if (($privacy->courseConfirmationRequired() or ilCourseDefinedFieldDefinition::_hasFields($this->object->getId())) and !ilMemberAgreement::_hasAccepted($ilUser->getId(), $this->object->getId())) { $GLOBALS['ilLog']->write(__METHOD__ . ': Missing course confirmation.'); return false; } // Check required fields include_once 'Modules/Course/classes/Export/class.ilCourseUserData.php'; if (!ilCourseUserData::_checkRequired($ilUser->getId(), $this->object->getId())) { $GLOBALS['ilLog']->write(__METHOD__ . ': Missing required fields'); return false; } return true; }