function remove() { global $ilAccess, $ilObjDataCache, $lng; if (!$ilAccess->checkAccess("write", "", $_POST["grp_id"])) { ilUtil::sendFailure($lng->txt("permission_denied"), true); $this->show(); return; } include_once './Modules/Group/classes/class.ilGroupParticipants.php'; $members_obj = ilGroupParticipants::_getInstanceByObjId($ilObjDataCache->lookupObjId($_POST["grp_id"])); $members_obj->delete($_POST["usr_id"]); // Send notification include_once './Modules/Group/classes/class.ilGroupMembershipMailNotification.php'; $members_obj->sendNotification(ilGroupMembershipMailNotification::TYPE_DISMISS_MEMBER, $_POST["usr_id"]); include_once './Modules/Forum/classes/class.ilForumNotification.php'; ilForumNotification::checkForumsExistsDelete($this->ref_id, $_POST["usr_id"]); ilUtil::sendSuccess($lng->txt("grp_msg_membership_annulled")); $this->show(); }
public function confirmedUnsubscribe() { global $ilCtrl, $ilAccess, $ilUser; if (!sizeof($_POST["ref_id"])) { $ilCtrl->redirect($this, "manage"); } foreach ($_POST["ref_id"] as $ref_id) { if ($ilAccess->checkAccess("leave", "", $ref_id)) { switch (ilObject::_lookupType($ref_id, true)) { case "crs": // see ilObjCourseGUI:performUnsubscribeObject() include_once "Modules/Course/classes/class.ilCourseParticipants.php"; $members = new ilCourseParticipants(ilObject::_lookupObjId($ref_id)); $members->delete($ilUser->getId()); $members->sendUnsubscribeNotificationToAdmins($ilUser->getId()); $members->sendNotification($members->NOTIFY_UNSUBSCRIBE, $ilUser->getId()); break; case "grp": // see ilObjGroupGUI:performUnsubscribeObject() include_once "Modules/Group/classes/class.ilGroupParticipants.php"; $members = new ilGroupParticipants(ilObject::_lookupObjId($ref_id)); $members->delete($ilUser->getId()); include_once './Modules/Group/classes/class.ilGroupMembershipMailNotification.php'; $members->sendNotification(ilGroupMembershipMailNotification::TYPE_UNSUBSCRIBE_MEMBER, $ilUser->getId()); $members->sendNotification(ilGroupMembershipMailNotification::TYPE_NOTIFICATION_UNSUBSCRIBE, $ilUser->getId()); break; default: // do nothing continue; } include_once './Modules/Forum/classes/class.ilForumNotification.php'; ilForumNotification::checkForumsExistsDelete($ref_id, $ilUser->getId()); } } ilUtil::sendSuccess($this->lng->txt("settings_saved"), true); $ilCtrl->redirectByClass("ilpersonaldesktopgui", "show"); }
/** * Handle an event in a listener. * * @param string $a_component component, e.g. "Modules/Forum" or "Services/User" * @param string $a_event event e.g. "createUser", "updateUser", "deleteUser", ... * @param array $a_parameter parameter array (assoc), array("name" => ..., "phone_office" => ...) */ static function handleEvent($a_component, $a_event, $a_parameter) { switch ($a_component) { case "Services/News": switch ($a_event) { case "readNews": // here we could set postings to read, if news is // read (has to be implemented) break; } break; case "Services/Tree": switch ($a_event) { case "moveTree": include_once './Modules/Forum/classes/class.ilForumNotification.php'; ilForumNotification::_clearForcedForumNotifications($a_parameter); break; } break; case "Modules/Course": switch ($a_event) { case "addParticipant": include_once './Modules/Forum/classes/class.ilForumNotification.php'; $ref_ids = self::getCachedReferences($a_parameter['obj_id']); foreach ($ref_ids as $ref_id) { ilForumNotification::checkForumsExistsInsert($ref_id, $a_parameter['usr_id']); break; } break; case 'deleteParticipant': include_once './Modules/Forum/classes/class.ilForumNotification.php'; $ref_ids = self::getCachedReferences($a_parameter['obj_id']); foreach ($ref_ids as $ref_id) { ilForumNotification::checkForumsExistsDelete($ref_id, $a_parameter['usr_id']); break; } break; } break; case "Modules/Group": switch ($a_event) { case "addParticipant": include_once './Modules/Forum/classes/class.ilForumNotification.php'; $ref_ids = self::getCachedReferences($a_parameter['obj_id']); foreach ($ref_ids as $ref_id) { ilForumNotification::checkForumsExistsInsert($ref_id, $a_parameter['usr_id']); break; } break; case 'deleteParticipant': include_once './Modules/Forum/classes/class.ilForumNotification.php'; $ref_ids = self::getCachedReferences($a_parameter['obj_id']); foreach ($ref_ids as $ref_id) { ilForumNotification::checkForumsExistsDelete($ref_id, $a_parameter['usr_id']); break; } break; } break; } }
/** * unsubscribe from group * * @access public * @return */ public function unsubscribeObject() { global $ilUser, $tree, $ilCtrl; $this->checkPermission('leave'); $this->object->members_obj->delete($ilUser->getId()); include_once './Modules/Group/classes/class.ilGroupMembershipMailNotification.php'; $this->object->members_obj->sendNotification(ilGroupMembershipMailNotification::TYPE_UNSUBSCRIBE_MEMBER, $ilUser->getId()); $this->object->members_obj->sendNotification(ilGroupMembershipMailNotification::TYPE_NOTIFICATION_UNSUBSCRIBE, $ilUser->getId()); include_once './Modules/Forum/classes/class.ilForumNotification.php'; ilForumNotification::checkForumsExistsDelete($this->object->getRefId(), $ilUser->getId()); ilUtil::sendSuccess($this->lng->txt('grp_msg_membership_annulled'), true); $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $tree->getParentId($this->object->getRefId())); $ilCtrl->redirectByClass("ilrepositorygui", ""); }
/** * Remove members * @global ilRbacReview $rbacreview * @global ilRbacSystem $rbacsystem * @return boolean */ protected function removeMembersObject() { global $rbacreview, $rbacsystem, $ilAccess, $ilUser; $this->checkPermission('write'); if (!is_array($_POST["participants"]) or !count($_POST["participants"])) { ilUtil::sendFailure($this->lng->txt("crs_no_member_selected")); $this->membersObject(); return false; } // If the user doesn't have the edit_permission and is not administrator, he may not remove // members who have the course administrator role if (!$ilAccess->checkAccess('edit_permission', '', $this->object->getRefId()) and !ilCourseParticipants::_getInstanceByObjId($this->object->getId())->isAdmin($ilUser->getId())) { // Determine the role id of the course administrator role. $courseAdminRoleId = null; foreach ($this->object->getLocalCourseRoles(false) as $title => $role_id) { if (substr($title, 0, 12) == 'il_crs_admin') { $courseAdminRoleId = $role_id; } } foreach ($_POST['participants'] as $usr_id) { if ($rbacreview->isAssigned($usr_id, $courseAdminRoleId)) { ilUtil::sendFailure($this->lng->txt("msg_no_perm_perm")); $this->membersObject(); return false; } } } if (!$this->object->getMembersObject()->deleteParticipants($_POST["participants"])) { ilUtil::sendFailure($this->object->getMessage()); $this->membersObject(); return false; } else { include_once './Modules/Forum/classes/class.ilForumNotification.php'; // SEND NOTIFICATION foreach ($_POST["participants"] as $usr_id) { $this->object->getMembersObject()->sendNotification($this->object->getMembersObject()->NOTIFY_DISMISS_MEMBER, $usr_id); ilForumNotification::checkForumsExistsDelete($this->object->getRefId(), $usr_id); } } ilUtil::sendSuccess($this->lng->txt("crs_members_deleted")); $this->membersObject(); return true; }