/**
  * 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();
 }
Example #7
0
 /**
  * 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;
 }