diff --git a/CHANGELOG.md b/CHANGELOG.md index b3642d9..633c1f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ Changes: \- +## v2023-05-30-1 +Fixes +- https://github.com/fluxapps/UserDefaults/issues/9 +- adjustments cascade select + ## v2023-02-16-1 Changes: diff --git a/plugin.php b/plugin.php index db8ccca..5653469 100644 --- a/plugin.php +++ b/plugin.php @@ -3,8 +3,6 @@ require_once __DIR__ . "/vendor/srag/dic/src/PHPVersionChecker.php"; $id = 'usrdef'; -$version = "2023.02.16"; +$version = "2023.05.30"; $ilias_min_version = '6.0'; $ilias_max_version = '7.999'; -$responsible = 'studer + raimann ag - Team Custom 1'; -$responsible_mail = 'support-custom1@studer-raimann.ch'; diff --git a/src/UDFCheck/UDFCheckFormGUI.php b/src/UDFCheck/UDFCheckFormGUI.php index b44e0cd..199236a 100644 --- a/src/UDFCheck/UDFCheckFormGUI.php +++ b/src/UDFCheck/UDFCheckFormGUI.php @@ -149,7 +149,7 @@ protected function initForm() { - $select_gui = $plugin->getFormPropertyForDefinition($definition); + $select_gui = $plugin->getFormPropertyForDefinition($definition,true,null,true); $check_radio = new ilRadioGroupInputGUI("", self::F_CHECK_RADIO); @@ -160,6 +160,7 @@ protected function initForm() { if (is_array($name)) { $name=$name["name"]." ( ".$name["default"]." ) "; } + $text_gui = new ilTextInputGUI($name, self::F_CHECK_VALUE_MUL . $key); $check_radio_text->addSubItem($text_gui); } @@ -238,7 +239,7 @@ public function saveObject() { if (self::isCustomUserFieldsHelperAvailable()) { $plugin = ilCustomUserFieldsHelper::getInstance()->getPluginForType($definition["field_type"]); if ($plugin instanceof ilUDFDefinitionPlugin) { - $select_gui = $plugin->getFormPropertyForDefinition($definition); + $select_gui = $plugin->getFormPropertyForDefinition($definition, true, null, true); $check_values = []; foreach ($select_gui->getColumnDefinition() as $key => $name) { $check_values[] = $this->getInput(self::F_CHECK_VALUE_MUL . $key); diff --git a/src/UserSetting/UserSetting.php b/src/UserSetting/UserSetting.php index 399554e..71518db 100644 --- a/src/UserSetting/UserSetting.php +++ b/src/UserSetting/UserSetting.php @@ -11,6 +11,8 @@ use ilGroupParticipants; use ilObjCourse; use ilObject2; + +//use ilObject; use ilObjExercise; use ilObjGroup; use ilObjOrgUnit; @@ -30,6 +32,7 @@ use srag\Plugins\UserDefaults\UDFCheck\UDFCheck; use srag\Plugins\UserDefaults\Utils\UserDefaultsTrait; use srag\ActiveRecordConfig\UserDefaults\Config\Config; +use ilRbacReview; /** * Class ilUserSetting @@ -388,7 +391,6 @@ protected function unsubscribeGroups() { if (!$this->isUnsubscrfromgrp()) { return; } - $groups = $this->getAssignedGroupes(); if (count($groups) === 0) { return; @@ -398,13 +400,16 @@ protected function unsubscribeGroups() { if ($id === "" || ilObject2::_lookupType($id) !== "grp") { continue; } - - $part = ilGroupParticipants::_getInstanceByObjId($id); - $usr_id = $this->getUsrObject()->getId(); - if (!$part->isMember($usr_id)) { - continue; - } - $added = $part->deleteParticipants(array( $usr_id )); + $usr_id = $this->getUsrObject()->getId(); + $reference=array_shift(ilObject2::_getAllReferences($id)); + $groupRoles = self::dic()->rbac()->review()->getRolesOfRoleFolder($reference); + foreach ($groupRoles as $grouprole) { + if (ilObject2::_lookupTitle($grouprole) == 'il_grp_member_'.$reference) { + $memberRole = $grouprole; + self::dic()->rbac()->admin()->deassignUser($memberRole,$usr_id); + continue; + } + } } } diff --git a/vendor/srag/dic/src/Database/AbstractILIASDatabaseDetector.php b/vendor/srag/dic/src/Database/AbstractILIASDatabaseDetector.php index 1e883d8..814f76d 100644 --- a/vendor/srag/dic/src/Database/AbstractILIASDatabaseDetector.php +++ b/vendor/srag/dic/src/Database/AbstractILIASDatabaseDetector.php @@ -40,6 +40,14 @@ static function getReservedWords() } + /** + * @inheritdoc + */ + public function primaryExistsByFields(string $table_name, array $fields) : bool + { + return $this->db->primaryExistsByFields($table_name, $fields); + } + /** * @inheritDoc */ diff --git a/vendor/srag/dic/src/Database/DatabaseDetector.php b/vendor/srag/dic/src/Database/DatabaseDetector.php index 7db4487..9bff28f 100644 --- a/vendor/srag/dic/src/Database/DatabaseDetector.php +++ b/vendor/srag/dic/src/Database/DatabaseDetector.php @@ -214,4 +214,6 @@ public function store(string $table_name, array $values, string $primary_key_fie return $primary_key_value; } } + + } diff --git a/vendor/srag/dic/src/Output/Output.php b/vendor/srag/dic/src/Output/Output.php index 410207d..081c45d 100644 --- a/vendor/srag/dic/src/Output/Output.php +++ b/vendor/srag/dic/src/Output/Output.php @@ -40,7 +40,7 @@ public function getHTML($value) : string foreach ($value as $gui) { $html .= $this->getHTML($gui); } - } else { + } else { switch (true) { // HTML case (is_string($value)): @@ -67,7 +67,7 @@ public function getHTML($value) : string $html = $value->render(); break; case method_exists($value, "getHTML"): - $html = $value->getHTML(); + $html = $value->getHTML(); break; // Template instance