1<?php 2 3/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ 4 5include_once "Services/Object/classes/class.ilObjectLP.php"; 6 7/** 8 * Group to lp connector 9 * 10 * @author Jörg Lützenkirchen <luetzenkirchen@leifos.com> 11 * @version $Id: class.ilLPStatusPlugin.php 43734 2013-07-29 15:27:58Z jluetzen $ 12 * @package ModulesGroup 13 */ 14class ilGroupLP extends ilObjectLP 15{ 16 public static function getDefaultModes($a_lp_active) 17 { 18 if (!$a_lp_active) { 19 return array( 20 ilLPObjSettings::LP_MODE_DEACTIVATED 21 ); 22 } else { 23 return array( 24 ilLPObjSettings::LP_MODE_DEACTIVATED, 25 ilLPObjSettings::LP_MODE_MANUAL_BY_TUTOR 26 ); 27 } 28 } 29 30 public function getDefaultMode() 31 { 32 return ilLPObjSettings::LP_MODE_DEACTIVATED; 33 } 34 35 public function getValidModes() 36 { 37 return array( 38 ilLPObjSettings::LP_MODE_DEACTIVATED, 39 ilLPObjSettings::LP_MODE_MANUAL_BY_TUTOR, 40 ilLPObjSettings::LP_MODE_COLLECTION 41 ); 42 } 43 44 public function getMembers($a_search = true) 45 { 46 include_once 'Modules/Group/classes/class.ilGroupParticipants.php'; 47 $member_obj = ilGroupParticipants::_getInstanceByObjId($this->obj_id); 48 return $member_obj->getMembers(); 49 } 50 51 protected static function isLPMember(array &$a_res, $a_usr_id, $a_obj_ids) 52 { 53 global $DIC; 54 55 $ilDB = $DIC['ilDB']; 56 57 // will only find objects with roles for user! 58 // see ilParticipants::_getMembershipByType() 59 $query = " SELECT DISTINCT obd.obj_id, obd.type, obd2.title" . 60 " FROM rbac_ua ua" . 61 " JOIN rbac_fa fa ON (ua.rol_id = fa.rol_id)" . 62 " JOIN object_reference obr ON (fa.parent = obr.ref_id)" . 63 " JOIN object_data obd ON (obr.obj_id = obd.obj_id)" . 64 " JOIN object_data obd2 ON (ua.rol_id = obd2.obj_id)" . 65 " WHERE obd.type = " . $ilDB->quote("grp", "text") . 66 " AND fa.assign = " . $ilDB->quote("y", "text") . 67 " AND ua.usr_id = " . $ilDB->quote($a_usr_id, "integer") . 68 " AND " . $ilDB->in("obd.obj_id", $a_obj_ids, "", "integer"); 69 $set = $ilDB->query($query); 70 while ($row = $ilDB->fetchAssoc($set)) { 71 $role = $row["title"]; 72 if (!stristr($role, "il_" . $row["type"] . "_admin_") && 73 !stristr($role, "il_" . $row["type"] . "_tutor_")) { 74 $a_res[$row["obj_id"]] = true; 75 } 76 } 77 78 return true; 79 } 80} 81