/** * */ public function showModerators() { /** * @var $ilToolbar ilToolbarGUI * @var $lng ilLanguage */ global $ilToolbar, $lng; include_once './Services/Search/classes/class.ilRepositorySearchGUI.php'; ilRepositorySearchGUI::fillAutoCompleteToolbar($this, $ilToolbar, array('auto_complete_name' => $lng->txt('user'), 'submit_name' => $lng->txt('add'), 'add_search' => true, 'add_from_container' => $this->oForumModerators->getRefId())); $tbl = new ilTable2GUI($this); $tbl->setId('frm_show_mods_tbl_' . (int) $_GET['ref_id']); $tbl->setFormAction($this->ctrl->getFormAction($this, 'detachModeratorRole')); $tbl->setTitle($this->lng->txt('frm_moderators')); $tbl->setRowTemplate('tpl.forum_moderators_table_row.html', 'Modules/Forum'); $tbl->setDefaultOrderField('login'); $entries = $this->oForumModerators->getCurrentModerators(); $num = count($entries); if ($num > 1) { $tbl->addColumn('', 'check', '1%', true); $tbl->setSelectAllCheckbox('usr_id'); $tbl->addMultiCommand('detachModeratorRole', $this->lng->txt('frm_detach_moderator_role')); } else { if (!$entries) { $tbl->setNoEntriesText($this->lng->txt('frm_moderators_not_exist_yet')); } } $tbl->addColumn($this->lng->txt('login'), 'login', '30%'); $tbl->addColumn($this->lng->txt('firstname'), 'firstname', '30%'); $tbl->addColumn($this->lng->txt('lastname'), 'lastname', '30%'); $result = array(); $i = 0; foreach ($entries as $usr_id) { /** * @var $user ilObjUser */ $user = ilObjectFactory::getInstanceByObjId($usr_id); if ($num > 1) { $result[$i]['check'] = ilUtil::formCheckbox(false, 'usr_id[]', $user->getId()); } $result[$i]['login'] = $user->getLogin(); $result[$i]['firstname'] = $user->getFirstname(); $result[$i]['lastname'] = $user->getLastname(); ++$i; } $tbl->setData($result); $this->tpl->setContent($tbl->getHTML()); }
public static function checkForumsExistsDelete($ref_id, $user_id = 0) { global $ilUser; $node_data = self::getCachedNodeData($ref_id); include_once 'Modules/Forum/classes/class.ilForumModerators.php'; foreach ($node_data as $data) { //check frm_properties if frm_noti is enabled $frm_noti = new ilForumNotification($data['ref_id']); $objFrmMods = new ilForumModerators($data['ref_id']); $moderator_ids = $objFrmMods->getCurrentModerators(); if ($user_id != 0) { $frm_noti->setUserId($user_id); } else { $frm_noti->setUserId($ilUser->getId()); } $frm_noti->setForumId($data['obj_id']); if (!in_array($frm_noti->getUserId(), $moderator_ids)) { $frm_noti->deleteAdminForce(); } } }
/** * Clone forum moderator role * @access public * @param object $new_obj forum object */ public function cloneAutoGeneratedRoles($new_obj) { /** * @var $rbacadmin ilRbacAdmin * @var $rbacreview ilRbacReview */ global $ilLog, $rbacadmin, $rbacreview; $moderator = ilObjForum::_lookupModeratorRole($this->getRefId()); $new_moderator = ilObjForum::_lookupModeratorRole($new_obj->getRefId()); $source_rolf = $rbacreview->getRoleFolderIdOfObject($this->getRefId()); $target_rolf = $rbacreview->getRoleFolderIdOfObject($new_obj->getRefId()); if (!$moderator || !$new_moderator || !$source_rolf || !$target_rolf) { $ilLog->write(__METHOD__ . ' : Error cloning auto generated role: il_frm_moderator'); } $rbacadmin->copyRolePermissions($moderator, $source_rolf, $target_rolf, $new_moderator, true); $ilLog->write(__METHOD__ . ' : Finished copying of role il_frm_moderator.'); include_once './Modules/Forum/classes/class.ilForumModerators.php'; $obj_mods = new ilForumModerators($this->getRefId()); $old_mods = array(); $old_mods = $obj_mods->getCurrentModerators(); foreach ($old_mods as $user_id) { $rbacadmin->assignUser($new_moderator, $user_id); } }
/** * Clone forum moderator role * @access public * @param object $new_obj forum object */ public function cloneAutoGeneratedRoles($new_obj) { /** * @var $rbacadmin ilRbacAdmin * @var $ilLog ilLog */ global $ilLog, $rbacadmin; $moderator = ilObjForum::_lookupModeratorRole($this->getRefId()); $new_moderator = ilObjForum::_lookupModeratorRole($new_obj->getRefId()); if (!$moderator || !$new_moderator || !$this->getRefId() || !$new_obj->getRefId()) { $ilLog->write(__METHOD__ . ' : Error cloning auto generated role: il_frm_moderator'); } $rbacadmin->copyRolePermissions($moderator, $this->getRefId(), $new_obj->getRefId(), $new_moderator, true); $ilLog->write(__METHOD__ . ' : Finished copying of role il_frm_moderator.'); include_once './Modules/Forum/classes/class.ilForumModerators.php'; $obj_mods = new ilForumModerators($this->getRefId()); $old_mods = $obj_mods->getCurrentModerators(); foreach ($old_mods as $user_id) { // The object owner is already member of the moderator role when this method is called // Since the new static caches are introduced with ILIAS 5.0, a database error occurs if we try to assign the user here. if ($this->getOwner() != $user_id) { $rbacadmin->assignUser($new_moderator, $user_id); } } }