ILIAS  trunk Revision v12.0_alpha-1329-g1094ddb0c33
ilParticipants Class Reference

Base class for course and group participants. More...

+ Inheritance diagram for ilParticipants:
+ Collaboration diagram for ilParticipants:

Public Member Functions

 __construct (string $a_component_name, int $a_ref_id)
 
 getObjId ()
 
 getType ()
 
 getNotificationRecipients ()
 Get admin, tutor which have notification enabled. More...
 
 getCountMembers ()
 Get number of members (not participants) More...
 
 getCountParticipants ()
 Get number of participants. More...
 
 getParticipants ()
 Get all participants ids. More...
 
 getMembers ()
 Get all members ids (admins and tutors are not members) Use get participants to fetch all. More...
 
 getAdmins ()
 Get all admins ids. More...
 
 getCountAdmins ()
 
 getTutors ()
 Get all tutors ids. More...
 
 isAdmin (int $a_usr_id)
 check if user is admin More...
 
 isTutor (int $a_usr_id)
 is user tutor More...
 
 isMember (int $a_usr_id)
 is user member More...
 
 isAssigned (int $a_usr_id)
 check if user is assigned More...
 
 isLastAdmin (int $a_usr_id)
 Check if user is last admin. More...
 
 getRoles ()
 Get object roles. More...
 
 getAssignedRoles (int $a_usr_id)
 Get assigned roles. More...
 
 updateRoleAssignments ($a_usr_id, $a_roles)
 Update role assignments @access public. More...
 
 checkLastAdmin (array $a_usr_ids)
 Check if users for deletion are last admins @access public. More...
 
 isBlocked (int $a_usr_id)
 Check if user is blocked. More...
 
 hasPassed (int $a_usr_id)
 Check if user has passed object. More...
 
 delete (int $a_usr_id)
 Drop user from all roles. More...
 
 updateBlocked (int $a_usr_id, bool $a_blocked)
 Update blocked status. More...
 
 updateContact (int $a_usr_id, bool $a_contact)
 
 getContacts ()
 get user ids which are confirgured as contact More...
 
 updateNotification (int $a_usr_id, bool $a_notification)
 Update notification status. More...
 
 add (int $a_usr_id, int $a_role)
 
 deleteParticipants (array $a_user_ids)
 
 addRecommendation (int $a_usr_id)
 Add desktop item @access public. More...
 
 isNotificationEnabled (int $a_usr_id)
 
 isContact (int $a_usr_id)
 
 getAutoGeneratedRoleId (int $a_role_type)
 
 isGroupingMember (int $a_usr_id, string $a_field='')
 Check membership for. More...
 
 getSubscribers ()
 get all subscribers int[] More...
 
 getCountSubscribers ()
 
 getSubscriberData (int $a_usr_id)
 
 assignSubscribers (array $a_usr_ids)
 
 assignSubscriber (int $a_usr_id)
 
 autoFillSubscribers ()
 
 addSubscriber (int $a_usr_id)
 
 updateSubscriptionTime (int $a_usr_id, int $a_subtime)
 
 updateSubject (int $a_usr_id, string $a_subject)
 
 deleteSubscriber (int $a_usr_id)
 
 deleteSubscribers (array $a_usr_ids)
 
 isSubscriber (int $a_usr_id)
 
 setRoleOrderPosition (int $a_user_id)
 Set role order position. More...
 

Static Public Member Functions

static getInstance (int $a_ref_id)
 
static getInstanceByObjId (int $a_obj_id)
 Get instance by obj type. More...
 
static hasParticipantListAccess (int $a_obj_id, ?int $a_usr_id=null)
 Check if (current) user has access to the participant list. More...
 
static canSendMailToMembers (int|ilObject $ref_id_or_instance, ?int $usr_id=null, ?int $mail_obj_ref_id=null)
 This method was introduced as a band-aid fix for #22764. More...
 
static getUserMembershipAssignmentsByType (array $a_user_ids, array $a_type, bool $a_only_member_roles)
 Get user membership assignments by type. More...
 
static _getMembershipByType (int $a_usr_id, array $a_type, bool $a_only_member_role=false)
 get membership by type Get course or group membership More...
 
static _isParticipant (int $a_ref_id, int $a_usr_id)
 Static function to check if a user is a participant of the container object. More...
 
static lookupNumberOfParticipants (int $a_ref_id)
 Lookup the number of participants (crs admins, tutors, members, grp admins, members) More...
 
static lookupNumberOfMembers (int $a_ref_id)
 Lookup number of members. More...
 
static _isBlocked (int $a_obj_id, int $a_usr_id)
 Check if user is blocked. More...
 
static _hasPassed (int $a_obj_id, int $a_usr_id)
 Check if user has passed course. More...
 
static _deleteAllEntries (int $a_obj_id)
 Delete all entries Normally called in case of object deletion. More...
 
static _deleteUser (int $a_usr_id)
 Delete user data. More...
 
static getDefaultMemberRole (int $a_ref_id)
 
static lookupSubscribers (int $a_obj_id)
 
static _isSubscriber (int $a_obj_id, int $a_usr_id)
 
static lookupSubscribersData (int $a_obj_id)
 
static _getAllSupportContactsOfUser (int $a_usr_id, string $a_type)
 Get all support contacts for a user. More...
 

Data Fields

const IL_CRS_ADMIN = 1
 
const IL_CRS_TUTOR = 3
 
const IL_CRS_MEMBER = 2
 
const IL_GRP_ADMIN = 4
 
const IL_GRP_MEMBER = 5
 
const IL_SESS_MEMBER = 6
 
const IL_LSO_ADMIN = 7
 
const IL_LSO_MEMBER = 8
 
const IL_ROLE_POSITION_ADMIN = 1
 
const IL_ROLE_POSITION_TUTOR = 2
 
const IL_ROLE_POSITION_MEMBER = 3
 

Protected Member Functions

 getComponent ()
 Get component name Used for raising events. More...
 
 readParticipants ()
 
 readParticipantsStatus ()
 Read status of participants (blocked, notification, passed) More...
 
 readSubscribers ()
 
 readSubscriberData (int $a_usr_id)
 

Protected Attributes

string $component = ''
 
int $ref_id = 0
 
int $obj_id = 0
 
string $type = ''
 
array $roles = []
 
array $role_data = []
 
array $roles_sorted = []
 
array $role_assignments = []
 
array $participants = []
 
array $participants_status = []
 
array $members = []
 
array $tutors = []
 
array $admins = []
 
array $subscribers = []
 
ilAppEventHandler $eventHandler
 
ilRbacReview $rbacReview
 
ilRbacAdmin $rbacAdmin
 
ilObjectDataCache $objectDataCache
 
ilDBInterface $ilDB
 
ilLanguage $lng
 
ilLogger $logger
 
ilErrorHandling $error
 
ilRecommendedContentManager $recommended_content_manager
 

Detailed Description

Base class for course and group participants.

Author
Stefan Meyer smeye.nosp@m.r.il.nosp@m.ias@g.nosp@m.mx.d.nosp@m.e
Version
$Id$
Todo:
move these constants to ilParticipants

Definition at line 30 of file class.ilParticipants.php.

Constructor & Destructor Documentation

◆ __construct()

ilParticipants::__construct ( string  $a_component_name,
int  $a_ref_id 
)
Parameters
stringcomponent definition e.g Modules/Course used for event handler
intref_id of container

Definition at line 72 of file class.ilParticipants.php.

73 {
74 global $DIC;
75
76 $this->ilDB = $DIC->database();
77 $this->lng = $DIC->language();
78 $this->logger = $DIC->logger()->mmbr();
79 $this->eventHandler = $DIC->event();
80 $this->rbacReview = $DIC->rbac()->review();
81 $this->rbacAdmin = $DIC->rbac()->admin();
82 $this->objectDataCache = $DIC['ilObjDataCache'];
83 $this->error = $DIC['ilErr'];
84 $this->component = $a_component_name;
85 $this->ref_id = $a_ref_id;
86 $this->obj_id = ilObject::_lookupObjId($a_ref_id);
87 $this->type = ilObject::_lookupType($this->obj_id);
88 $this->recommended_content_manager = new ilRecommendedContentManager();
89
90 $this->readParticipants();
92 }
error(string $a_errmsg)
static _lookupType(int $id, bool $reference=false)
static _lookupObjId(int $ref_id)
readParticipantsStatus()
Read status of participants (blocked, notification, passed)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: shib_login.php:26

References $DIC, ilObject\_lookupObjId(), ilObject\_lookupType(), error(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), ILIAS\Repository\objectDataCache(), readParticipants(), and readParticipantsStatus().

+ Here is the call graph for this function:

Member Function Documentation

◆ _deleteAllEntries()

static ilParticipants::_deleteAllEntries ( int  $a_obj_id)
static

Delete all entries Normally called in case of object deletion.

Definition at line 440 of file class.ilParticipants.php.

440 : void
441 {
442 global $DIC;
443
444 $ilDB = $DIC->database();
445 $query = "DELETE FROM obj_members " .
446 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
447 $res = $ilDB->manipulate($query);
448
449 $query = "DELETE FROM il_subscribers " .
450 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " ";
451 $res = $ilDB->manipulate($query);
452
453 $query = 'DELETE FROM crs_waiting_list ' .
454 'WHERE obj_id = ' . $ilDB->quote($a_obj_id, 'integer');
455 $ilDB->manipulate($query);
456 }
quote($value, string $type)
manipulate(string $query)
Run a (write) Query on the database.
$res
Definition: ltiservices.php:69

References $DIC, $ilDB, and $res.

Referenced by ilObjCourse\delete(), ilObjGroup\delete(), and ilObjLearningSequence\delete().

+ Here is the caller graph for this function:

◆ _deleteUser()

static ilParticipants::_deleteUser ( int  $a_usr_id)
static

Delete user data.

Definition at line 461 of file class.ilParticipants.php.

461 : void
462 {
463 global $DIC;
464
465 $ilDB = $DIC->database();
466 $query = "DELETE FROM obj_members WHERE usr_id = " . $ilDB->quote($a_usr_id, 'integer');
467 $res = $ilDB->manipulate($query);
468
469 $query = "DELETE FROM il_subscribers WHERE usr_id = " . $ilDB->quote($a_usr_id, 'integer');
470 $res = $ilDB->manipulate($query);
471
473 }
static _deleteUser(int $a_usr_id)

References $DIC, $ilDB, $res, and ilWaitingList\_deleteUser().

Referenced by ilObjCourse\_deleteUser().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getAllSupportContactsOfUser()

static ilParticipants::_getAllSupportContactsOfUser ( int  $a_usr_id,
string  $a_type 
)
static

Get all support contacts for a user.

Parameters
int$a_usr_idusr_id
string$a_typecrs or grp
Returns
array array of contacts (keys are usr_id and obj_id)
Todo:

join the two queries or alternatively reuse _getMembershipByType

fix returning fetchAssoc result

Definition at line 1335 of file class.ilParticipants.php.

1335 : array
1336 {
1337 global $DIC;
1338
1339 $ilDB = $DIC['ilDB'];
1340
1341 // for the first part
1342
1343 // this will also dismiss local roles!
1344 $j2 = "JOIN object_data obd2 ON (ua.rol_id = obd2.obj_id) ";
1345 $a2 = "AND obd2.title LIKE 'il_" . $a_type . "_mem%' ";
1346
1347 // #14290 - no role folder anymore
1348 $query = "SELECT DISTINCT obd.obj_id,obr.ref_id FROM rbac_ua ua " .
1349 "JOIN rbac_fa fa ON ua.rol_id = fa.rol_id " .
1350 "JOIN object_reference obr ON fa.parent = obr.ref_id " .
1351 "JOIN object_data obd ON obr.obj_id = obd.obj_id " .
1352 $j2 .
1353 "WHERE obd.type = " . $ilDB->quote($a_type, 'text') . " " .
1354 "AND fa.assign = 'y' " .
1355 "AND ua.usr_id = " . $ilDB->quote($a_usr_id, 'integer') . " " .
1356 $a2;
1357
1358 $res = $ilDB->query($query);
1359 $obj_ids = array();
1360 while ($row = $ilDB->fetchObject($res)) {
1361 $obj_ids[] = (int) $row->obj_id;
1362 }
1363
1364 $set = $ilDB->query("SELECT obj_id, usr_id FROM obj_members " .
1365 " WHERE " . $ilDB->in("obj_id", $obj_ids, false, "integer") .
1366 " AND contact = " . $ilDB->quote(1, "integer"));
1367 $res = array();
1368 while ($rec = $ilDB->fetchAssoc($set)) {
1369 $res[] = $rec;
1370 }
1371 return $res;
1372 }
fetchObject(ilDBStatement $query_result)
query(string $query)
Run a (read-only) Query on the database.
fetchAssoc(ilDBStatement $statement)
in(string $field, array $values, bool $negate=false, string $type="")

References $DIC, $ilDB, $res, and ILIAS\Repository\int().

Referenced by ILIAS\Awareness\User\ProviderCourseContacts\getInitialUserSet().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _getMembershipByType()

static ilParticipants::_getMembershipByType ( int  $a_usr_id,
array  $a_type,
bool  $a_only_member_role = false 
)
static

get membership by type Get course or group membership

Parameters
int$a_usr_idusr_id
string[]$a_typearray of object types
Returns
int[]

Definition at line 305 of file class.ilParticipants.php.

309 : array {
310 global $DIC;
311
312 $ilDB = $DIC['ilDB'];
313
314 $j2 = '';
315 $a2 = '';
316 // this will also dismiss local roles!
317 if ($a_only_member_role) {
318 $j2 = "JOIN object_data obd2 ON (ua.rol_id = obd2.obj_id) ";
319 $a2 = 'AND obd2.title = ' . $ilDB->concat(
320 array(
321 array($ilDB->quote('il_', 'text')),
322 array('obd.type'),
323 array($ilDB->quote('_member_', 'text')),
324 array('obr.ref_id'),
325 ),
326 false
327 );
328 }
329
330 // #14290 - no role folder anymore
331 $query = "SELECT DISTINCT obd.obj_id,obr.ref_id FROM rbac_ua ua " .
332 "JOIN rbac_fa fa ON ua.rol_id = fa.rol_id " .
333 "JOIN object_reference obr ON fa.parent = obr.ref_id " .
334 "JOIN object_data obd ON obr.obj_id = obd.obj_id " .
335 $j2 .
336 "WHERE " . $ilDB->in("obd.type", $a_type, false, "text") . ' ' .
337 "AND fa.assign = 'y' " .
338 "AND ua.usr_id = " . $ilDB->quote($a_usr_id, 'integer') . " " .
339 'AND obr.deleted IS NULL ' .
340 $a2;
341 $res = $ilDB->query($query);
342 $ref_ids = [];
343 while ($row = $ilDB->fetchObject($res)) {
344 $ref_ids[] = (int) $row->obj_id;
345 }
346 return $ref_ids;
347 }
concat(array $values, bool $allow_null=true)

References $ilDB.

Referenced by ilMailSearchObjectGUI\doesExposeMembers(), ILIAS\Awareness\User\ProviderMemberships\getInitialUserSet(), ILIAS\News\Domain\UserContextResolver\getMembershipContexts(), ilTestEvaluationData\getParticipants(), ilWorkspaceAccessHandler\getPossibleSharedTargets(), ilPortfolioAccessHandler\getPossibleSharedTargets(), ilWorkspaceShareTableGUI\initFilter(), ilCalendarCategories\readPDCalendars(), ilCalendarCategories\readReposCalendars(), ilWorkspaceAccessGUI\share(), and ilObjectCopyGUI\showSourceSelectionMembership().

+ Here is the caller graph for this function:

◆ _hasPassed()

static ilParticipants::_hasPassed ( int  $a_obj_id,
int  $a_usr_id 
)
static

Check if user has passed course.

Definition at line 423 of file class.ilParticipants.php.

423 : bool
424 {
425 global $DIC;
426
427 $ilDB = $DIC->database();
428 $query = "SELECT * FROM obj_members " .
429 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " " .
430 "AND usr_id = " . $ilDB->quote($a_usr_id, 'integer') . " " .
431 "AND passed = '1'";
432 $res = $ilDB->query($query);
433 return (bool) $res->numRows();
434 }

References $DIC, $ilDB, and $res.

Referenced by ilObjCourseAccess\checkCondition(), and ilLPStatusManualByTutor\refreshStatus().

+ Here is the caller graph for this function:

◆ _isBlocked()

static ilParticipants::_isBlocked ( int  $a_obj_id,
int  $a_usr_id 
)
static

Check if user is blocked.

Definition at line 407 of file class.ilParticipants.php.

407 : bool
408 {
409 global $DIC;
410
411 $ilDB = $DIC->database();
412 $query = "SELECT * FROM obj_members " .
413 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " " .
414 "AND usr_id = " . $ilDB->quote($a_usr_id, 'integer') . " " .
415 "AND blocked = " . $ilDB->quote(1, 'integer');
416 $res = $ilDB->query($query);
417 return (bool) $res->numRows();
418 }

References $DIC, $ilDB, and $res.

◆ _isParticipant()

static ilParticipants::_isParticipant ( int  $a_ref_id,
int  $a_usr_id 
)
static

Static function to check if a user is a participant of the container object.

Reimplemented in ilGroupParticipants, ilLearningSequenceParticipants, and ilSessionParticipants.

Definition at line 352 of file class.ilParticipants.php.

352 : bool
353 {
354 global $DIC;
355
356 $rbacreview = $DIC->rbac()->review();
357 $local_roles = $rbacreview->getRolesOfRoleFolder($a_ref_id, false);
358 return $rbacreview->isAssignedToAtLeastOneGivenRole($a_usr_id, $local_roles);
359 }

References $DIC.

Referenced by ilObjCourseGUI\executeCommand(), ilMembershipGUI\executeCommand(), ilObjCourseGUI\getTabs(), ilObjCourseGUI\initHeaderAction(), ilParticipantsPerAssignmentTableGUI\parseData(), and ilLPProgressBlockGUI\setActions().

+ Here is the caller graph for this function:

◆ _isSubscriber()

static ilParticipants::_isSubscriber ( int  $a_obj_id,
int  $a_usr_id 
)
static

Definition at line 1251 of file class.ilParticipants.php.

1251 : bool
1252 {
1253 global $DIC;
1254
1255 $ilDB = $DIC->database();
1256 $query = "SELECT * FROM il_subscribers " .
1257 "WHERE usr_id = " . $ilDB->quote($a_usr_id, 'integer') . " " .
1258 "AND obj_id = " . $ilDB->quote($a_obj_id, 'integer');
1259
1260 $res = $ilDB->query($query);
1261 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
1262 return true;
1263 }
1264 return false;
1265 }
const FETCHMODE_OBJECT

References $DIC, $ilDB, $res, and ilDBConstants\FETCHMODE_OBJECT.

Referenced by ilObjSessionAccess\_checkAccess(), and ilObjCourseListGUI\getProperties().

+ Here is the caller graph for this function:

◆ add()

ilParticipants::add ( int  $a_usr_id,
int  $a_role 
)

Reimplemented in ilCourseParticipants, ilGroupParticipants, ilLearningSequenceParticipants, and ilSessionParticipants.

Definition at line 818 of file class.ilParticipants.php.

818 : bool
819 {
820 if ($this->isAssigned($a_usr_id)) {
821 return false;
822 }
823
824 switch ($a_role) {
828 $this->admins[] = $a_usr_id;
829 break;
830
832 $this->tutors[] = $a_usr_id;
833 break;
834
839 $this->members[] = $a_usr_id;
840 break;
841 }
842
843 $this->participants[] = $a_usr_id;
844 $this->rbacAdmin->assignUser($this->role_data[$a_role], $a_usr_id);
845
846 // Delete subscription request
847 $this->deleteSubscriber($a_usr_id);
848
849 ilWaitingList::deleteUserEntry($a_usr_id, $this->obj_id);
850
851 $this->eventHandler->raise(
852 $this->getComponent(),
853 "addParticipant",
854 array(
855 'obj_id' => $this->obj_id,
856 'usr_id' => $a_usr_id,
857 'role_id' => $a_role
858 )
859 );
860 return true;
861 }
getComponent()
Get component name Used for raising events.
isAssigned(int $a_usr_id)
check if user is assigned
deleteSubscriber(int $a_usr_id)
static deleteUserEntry(int $a_usr_id, int $a_obj_id)

References ilWaitingList\deleteUserEntry().

+ Here is the call graph for this function:

◆ addRecommendation()

ilParticipants::addRecommendation ( int  $a_usr_id)

Add desktop item @access public.

Definition at line 878 of file class.ilParticipants.php.

878 : void
879 {
880 // deactivated for now, see discussion at
881 // https://docu.ilias.de/goto_docu_wiki_wpage_5620_1357.html
882 // $this->recommended_content_manager->addObjectRecommendation($a_usr_id, $this->ref_id);
883 }

Referenced by ilCourseParticipants\add(), and ilGroupParticipants\add().

+ Here is the caller graph for this function:

◆ addSubscriber()

ilParticipants::addSubscriber ( int  $a_usr_id)

Reimplemented in ilCourseParticipants, ilGroupParticipants, and ilLearningSequenceParticipants.

Definition at line 1186 of file class.ilParticipants.php.

1186 : void
1187 {
1188 $query = "INSERT INTO il_subscribers (usr_id,obj_id,subject,sub_time) " .
1189 " VALUES (" .
1190 $this->ilDB->quote($a_usr_id, 'integer') . "," .
1191 $this->ilDB->quote($this->obj_id, 'integer') . ", " .
1192 $this->ilDB->quote('', 'text') . ", " .
1193 $this->ilDB->quote(time(), 'integer') .
1194 ")";
1195 $res = $this->ilDB->manipulate($query);
1196 }

References $res.

◆ assignSubscriber()

ilParticipants::assignSubscriber ( int  $a_usr_id)

Definition at line 1134 of file class.ilParticipants.php.

1134 : bool
1135 {
1136 $this->error->setMessage("");
1137 if (!$this->isSubscriber($a_usr_id)) {
1138 $this->error->appendMessage($this->lng->txt("crs_user_notsubscribed"));
1139
1140 return false;
1141 }
1142 if ($this->isAssigned($a_usr_id)) {
1143 $tmp_obj = ilObjectFactory::getInstanceByObjId($a_usr_id);
1144 $this->error->appendMessage($tmp_obj->getLogin() . ": " . $this->lng->txt("crs_user_already_assigned"));
1145
1146 return false;
1147 }
1148
1149 if (!$tmp_obj = ilObjectFactory::getInstanceByObjId($a_usr_id, false)) {
1150 $this->error->appendMessage($this->lng->txt("crs_user_not_exists"));
1151 return false;
1152 }
1153
1154 if ($this instanceof ilCourseParticipants) {
1155 $this->add($tmp_obj->getId(), self::IL_CRS_MEMBER);
1156 }
1157 if ($this instanceof ilGroupParticipants) {
1158 $this->add($tmp_obj->getId(), self::IL_GRP_MEMBER);
1159 }
1160 if ($this instanceof ilLearningSequenceParticipants) {
1161 $this->add($tmp_obj->getId(), self::IL_LSO_MEMBER);
1162 }
1163 if ($this instanceof ilSessionParticipants) {
1164 $this->register($tmp_obj->getId());
1165 }
1166 $this->deleteSubscriber($a_usr_id);
1167 return true;
1168 }
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
isSubscriber(int $a_usr_id)
add(int $a_usr_id, int $a_role)
Session participation handling.

References ILIAS\UI\examples\Symbol\Glyph\Add\add(), error(), ilObjectFactory\getInstanceByObjId(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ assignSubscribers()

ilParticipants::assignSubscribers ( array  $a_usr_ids)

Definition at line 1121 of file class.ilParticipants.php.

1121 : bool
1122 {
1123 if (!is_array($a_usr_ids) || !count($a_usr_ids)) {
1124 return false;
1125 }
1126 foreach ($a_usr_ids as $id) {
1127 if (!$this->assignSubscriber($id)) {
1128 return false;
1129 }
1130 }
1131 return true;
1132 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
assignSubscriber(int $a_usr_id)

References $id.

◆ autoFillSubscribers()

ilParticipants::autoFillSubscribers ( )
Todo:
check and fix notification

Definition at line 1173 of file class.ilParticipants.php.

1173 : int
1174 {
1175 $this->readSubscribers();
1176 $counter = 0;
1177 foreach ($this->subscribers as $subscriber) {
1178 if (!$this->assignSubscriber($subscriber)) {
1179 continue;
1180 }
1181 ++$counter;
1182 }
1183 return $counter;
1184 }
$counter

References $counter.

◆ canSendMailToMembers()

static ilParticipants::canSendMailToMembers ( int|ilObject  $ref_id_or_instance,
?int  $usr_id = null,
?int  $mail_obj_ref_id = null 
)
static

This method was introduced as a band-aid fix for #22764.

Please do not use this anywhere else.

Definition at line 198 of file class.ilParticipants.php.

202 : bool {
203 global $DIC;
204
205 $access = $DIC->access();
206 $rbacsystem = $DIC->rbac()->system();
207
208 if (is_null($usr_id)) {
209 $usr_id = $DIC->user()->getId();
210 }
211 if (is_null($mail_obj_ref_id)) {
212 $mail_obj_ref_id = (new ilMail($usr_id))->getMailObjectReferenceId();
213 }
214 if (is_int($ref_id_or_instance)) {
215 $ref_id = $ref_id_or_instance;
216 } elseif ($ref_id_or_instance instanceof ilObject) {
217 $ref_id = (int) $ref_id_or_instance->getRefId();
218 if ($ref_id === 0) {
219 $ref_id = array_keys(ilObject::_getAllReferences($ref_id_or_instance->getId()))[0];
220 }
221 } else {
222 return false;
223 }
224
225 if (
226 $access->checkAccess('manage_members', '', $ref_id) &&
227 $rbacsystem->checkAccess('internal_mail', $mail_obj_ref_id)
228 ) {
229 return true;
230 }
231
232 $part = self::getInstance($ref_id);
233 if (!$part->isAssigned($usr_id)) {
234 return false;
235 }
236
237 $object = $ref_id_or_instance;
238 if (is_int($ref_id_or_instance)) {
239 $object = ilObjectFactory::getInstanceByRefId($ref_id_or_instance);
240 }
241
242 if ($object instanceof ilObjCourse) {
243 return $object->getMailToMembersType() == ilCourseConstants::MAIL_ALLOWED_ALL;
244 } elseif ($object instanceof ilObjGroup) {
245 return $object->getMailToMembersType() == ilObjGroup::MAIL_ALLOWED_ALL;
246 } elseif ($object instanceof ilObjSession) {
247 return $object->getMailToMembersType() == ilObjSession::MAIL_ALLOWED_ALL;
248 }
249
250 return false;
251 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilObjGroup.
const MAIL_ALLOWED_ALL
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
Class ilObject Basic functions for all objects.
static _getAllReferences(int $id)
get all reference ids for object ID
static getInstance(int $a_ref_id)

References $DIC.

Referenced by ilMailSearchObjectGUI\doesExposeMembers(), and ilMailSearchObjectGUI\mailObjects().

+ Here is the caller graph for this function:

◆ checkLastAdmin()

ilParticipants::checkLastAdmin ( array  $a_usr_ids)

Check if users for deletion are last admins @access public.

Parameters
int[]array of user ids for deletion
Todo:
fix this and add unit test

Reimplemented in ilSessionParticipants.

Definition at line 675 of file class.ilParticipants.php.

675 : bool
676 {
677 foreach ($this->getAdmins() as $admin_id) {
678 if (!in_array($admin_id, $a_usr_ids)) {
679 return true;
680 }
681 }
682 return false;
683 }
getAdmins()
Get all admins ids.

◆ delete()

ilParticipants::delete ( int  $a_usr_id)

Drop user from all roles.

Definition at line 710 of file class.ilParticipants.php.

710 : void
711 {
712 $this->recommended_content_manager->removeObjectRecommendation($a_usr_id, $this->ref_id);
713 foreach ($this->roles as $role_id) {
714 $this->rbacAdmin->deassignUser($role_id, $a_usr_id);
715 }
716
717 $query = "DELETE FROM obj_members " .
718 "WHERE usr_id = " . $this->ilDB->quote($a_usr_id, 'integer') . " " .
719 "AND obj_id = " . $this->ilDB->quote($this->obj_id, 'integer');
720 $res = $this->ilDB->manipulate($query);
721
722 $this->readParticipants();
723 $this->readParticipantsStatus();
724
725 $this->eventHandler->raise(
726 $this->getComponent(),
727 "deleteParticipant",
728 [
729 'obj_id' => $this->obj_id,
730 'usr_id' => $a_usr_id
731 ]
732 );
733 }

References $res.

◆ deleteParticipants()

ilParticipants::deleteParticipants ( array  $a_user_ids)
Parameters
int[]

Definition at line 866 of file class.ilParticipants.php.

866 : bool
867 {
868 foreach ($a_user_ids as $user_id) {
869 $this->delete($user_id);
870 }
871 return true;
872 }

References $user_id.

◆ deleteSubscriber()

ilParticipants::deleteSubscriber ( int  $a_usr_id)

Definition at line 1216 of file class.ilParticipants.php.

1216 : void
1217 {
1218 $query = "DELETE FROM il_subscribers " .
1219 "WHERE usr_id = " . $this->ilDB->quote($a_usr_id, 'integer') . " " .
1220 "AND obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " ";
1221 $res = $this->ilDB->manipulate($query);
1222 }

References $res.

◆ deleteSubscribers()

ilParticipants::deleteSubscribers ( array  $a_usr_ids)

Definition at line 1224 of file class.ilParticipants.php.

1224 : bool
1225 {
1226 if (!count($a_usr_ids)) {
1227 $this->error->setMessage('');
1228 $this->error->appendMessage($this->lng->txt("no_usr_ids_given"));
1229 return false;
1230 }
1231 $query = "DELETE FROM il_subscribers " .
1232 "WHERE " . $this->ilDB->in('usr_id', $a_usr_ids, false, 'integer') . " " .
1233 "AND obj_id = " . $this->ilDB->quote($this->obj_id, 'integer');
1234 $res = $this->ilDB->query($query);
1235 return true;
1236 }

References $res, error(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getAdmins()

ilParticipants::getAdmins ( )

Get all admins ids.

Returns
int[]

Definition at line 566 of file class.ilParticipants.php.

566 : array
567 {
568 return $this->admins;
569 }

◆ getAssignedRoles()

ilParticipants::getAssignedRoles ( int  $a_usr_id)

Get assigned roles.

Definition at line 636 of file class.ilParticipants.php.

636 : array
637 {
638 $assigned = [];
639 foreach ($this->roles as $role) {
640 if ($this->rbacReview->isAssigned($a_usr_id, $role)) {
641 $assigned[] = $role;
642 }
643 }
644 return $assigned;
645 }

◆ getAutoGeneratedRoleId()

ilParticipants::getAutoGeneratedRoleId ( int  $a_role_type)

Definition at line 901 of file class.ilParticipants.php.

901 : int
902 {
903 if (array_key_exists($a_role_type, $this->role_data)) {
904 return $this->role_data[$a_role_type];
905 }
906 return 0;
907 }

◆ getComponent()

ilParticipants::getComponent ( )
protected

Get component name Used for raising events.

Definition at line 151 of file class.ilParticipants.php.

151 : string
152 {
153 return $this->component;
154 }

References $component.

◆ getContacts()

ilParticipants::getContacts ( )

get user ids which are confirgured as contact

Returns
int[]

Definition at line 778 of file class.ilParticipants.php.

778 : array
779 {
780 $contacts = array();
781 foreach ($this->participants_status as $usr_id => $status) {
782 if ($status['contact']) {
783 $contacts[] = (int) $usr_id;
784 }
785 }
786 return $contacts;
787 }

References ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ getCountAdmins()

ilParticipants::getCountAdmins ( )

Definition at line 571 of file class.ilParticipants.php.

571 : int
572 {
573 return count($this->getAdmins());
574 }

◆ getCountMembers()

ilParticipants::getCountMembers ( )

Get number of members (not participants)

Definition at line 530 of file class.ilParticipants.php.

530 : int
531 {
532 return count($this->members);
533 }

◆ getCountParticipants()

ilParticipants::getCountParticipants ( )

Get number of participants.

Definition at line 538 of file class.ilParticipants.php.

538 : int
539 {
540 return count($this->participants);
541 }

◆ getCountSubscribers()

ilParticipants::getCountSubscribers ( )

Definition at line 1111 of file class.ilParticipants.php.

1111 : int
1112 {
1113 return count($this->getSubscribers());
1114 }
getSubscribers()
get all subscribers int[]

◆ getDefaultMemberRole()

static ilParticipants::getDefaultMemberRole ( int  $a_ref_id)
static

Definition at line 475 of file class.ilParticipants.php.

475 : int
476 {
477 global $DIC;
478
479 $rbacreview = $DIC->rbac()->review();
480
481 $obj_id = ilObject::_lookupObjId($a_ref_id);
483
484 if (!in_array($type, array('crs', 'grp'))) {
485 return 0;
486 }
487
488 $roles = $rbacreview->getRolesOfRoleFolder($a_ref_id, false);
489 foreach ($roles as $role) {
490 $title = ilObject::_lookupTitle($role);
491 if (strpos($title, ('il_' . $type . '_member')) === 0) {
492 return $role;
493 }
494 }
495 return 0;
496 }
static _lookupTitle(int $obj_id)

References $DIC, ilObject\_lookupObjId(), ilObject\_lookupTitle(), and ilObject\_lookupType().

Referenced by ilContSkillAdminGUI\__construct(), ilContSkillPresentationGUI\__construct(), ilCourseRegistrationGUI\add(), ilRepositorySearchGUI\addRole(), ilContainerImporter\finalProcessing(), ILIAS\Skill\Usage\SkillUsageManager\getAssignedObjectsForSkillProfile(), ILIAS\Container\Skills\ContainerSkillManager\getProfileSkills(), ilRbacSystem\initMemberView(), and ilSkillProfileGUI\saveLocal().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getInstance()

static ilParticipants::getInstance ( int  $a_ref_id)
static

Reimplemented in ilSessionParticipants.

Definition at line 94 of file class.ilParticipants.php.

95 {
96 global $DIC;
97
98 $logger = $DIC->logger()->mmbr();
99
100 $obj_id = ilObject::_lookupObjId($a_ref_id);
102
103 switch ($type) {
104 case 'crs':
105 case 'grp':
106 case 'lso':
108 case 'sess':
109 return ilSessionParticipants::getInstance($a_ref_id);
110 default:
111 $logger->logStack();
112 $logger->warning('Invalid ref_id -> obj_id given: ' . $a_ref_id . ' -> ' . $obj_id);
113 throw new InvalidArgumentException('Invalid obj_id given.');
114 }
115 }
warning(string $message, array $context=[])
logStack(?int $level=null, string $message='', array $context=[])
Base class for course and group participants.
static getInstanceByObjId(int $a_obj_id)
Get instance by obj type.
static getInstance(int $a_ref_id)

References $DIC, $logger, $obj_id, $type, ilObject\_lookupObjId(), ilObject\_lookupType(), ilSessionParticipants\getInstance(), getInstanceByObjId(), ilLogger\logStack(), and ilLogger\warning().

Referenced by ilSessionParticipantsTableGUI\__construct(), ilEventParticipants\__read(), ilSessionParticipantsTableGUI\collectParticipants(), ilCourseMembershipGUI\deleteParticipantsWithLinkedCourses(), ilMembershipGUI\executeCommand(), ilDashboardBlockGUI\getManageFields(), ilCourseReferenceLP\getMembers(), ilMembershipGUI\getMembersObject(), ilSessionParticipantsTableGUI\getParentLocalRoles(), ilTrQuery\getParticipantsForObject(), ilStudyProgrammeMembershipSourceReaderFactory\getReaderFor(), ilECSAppEventListener\handleMembership(), ilCourseReferenceAppEventListener\handleReferences(), hasParticipantListAccess(), ilObjGroupGUI\infoScreen(), ilMembershipGUI\initAttendanceList(), ilCourseReferencePathInfo\isReferenceMemberUpdateConfirmationRequired(), ilCourseReferenceDeleteConfirmationTableGUI\readLinkedCourseAssignments(), ilObjSessionGUI\registerObject(), ilObjSessionGUI\showJoinRequestButton(), ilLPProgressBlockGUI\supportsMembers(), and ilSessionMembershipGUI\updateMembers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getInstanceByObjId()

static ilParticipants::getInstanceByObjId ( int  $a_obj_id)
static

Get instance by obj type.

Deprecated:
since version 5.4 use getInstance() (ref_id based)
Todo:
remove this method in favour of selff::getInstance

Definition at line 122 of file class.ilParticipants.php.

123 {
124 global $DIC;
125
126 $logger = $DIC->logger()->mmbr();
127
128 $type = ilObject::_lookupType($a_obj_id);
129 switch ($type) {
130 case 'crs':
132
133 case 'grp':
135
136 case 'sess':
138 case 'lso':
140 default:
142 $logger()->mmbr()->warning(': Invalid obj_id given: ' . $a_obj_id);
143 throw new InvalidArgumentException('Invalid obj id given');
144 }
145 }
static _getInstanceByObjId(int $a_obj_id)
static _getInstanceByObjId(int $a_obj_id)
Get singleton instance.
static _getInstanceByObjId(int $a_obj_id)

References $DIC, $logger, $type, ilCourseParticipants\_getInstanceByObjId(), ilGroupParticipants\_getInstanceByObjId(), ilSessionParticipants\_getInstanceByObjId(), ilLearningSequenceParticipants\_getInstanceByObjId(), ilObject\_lookupType(), ilLogger\logStack(), ilLogger\warning(), and ilLogLevel\WARNING.

Referenced by ilGroupParticipantsTableGUI\__construct(), ilCourseParticipantsTableGUI\__construct(), ilGroupAddToGroupActionGUI\addUser(), ilAppointmentPresentationCourseGUI\collectPropertiesAndActions(), ilGroupAddToGroupActionGUI\confirmAddUser(), ilGroupAddToGroupActionGUI\createGroupAndAddUser(), ilMailSearchObjectGUI\doesExposeMembers(), getInstance(), ilLPStatusManualByTutor\getMembers(), ilObjCourseGUI\infoScreen(), ilRepositorySearchGUI\listUsers(), ilMembershipGUI\membersMap(), and ilRepositoryObjectResultTableGUI\parseObjectIds().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMembers()

ilParticipants::getMembers ( )

Get all members ids (admins and tutors are not members) Use get participants to fetch all.

Returns
int[]

Definition at line 557 of file class.ilParticipants.php.

557 : array
558 {
559 return $this->members;
560 }

◆ getNotificationRecipients()

ilParticipants::getNotificationRecipients ( )

Get admin, tutor which have notification enabled.

Returns
int[] of user ids

Definition at line 512 of file class.ilParticipants.php.

512 : array
513 {
514 $query = "SELECT * FROM obj_members " .
515 "WHERE notification = 1 " .
516 "AND obj_id = " . $this->ilDB->quote($this->obj_id, ilDBConstants::T_INTEGER) . " ";
517 $res = $this->ilDB->query($query);
518 $recp = [];
519 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
520 if ($this->isAdmin((int) $row->usr_id) || $this->isTutor((int) $row->usr_id)) {
521 $recp[] = (int) $row->usr_id;
522 }
523 }
524 return $recp;
525 }
isAdmin(int $a_usr_id)
check if user is admin

References $res, ilDBConstants\FETCHMODE_OBJECT, ILIAS\Repository\int(), and ilDBConstants\T_INTEGER.

Referenced by ilGroupParticipants\sendNotification(), and ilLearningSequenceParticipants\sendNotification().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getObjId()

ilParticipants::getObjId ( )

Definition at line 498 of file class.ilParticipants.php.

498 : int
499 {
500 return $this->obj_id;
501 }

Referenced by ilCourseParticipants\addSubscriber(), ilGroupParticipants\addSubscriber(), ilLearningSequenceParticipants\addSubscriber(), and ilSessionParticipants\register().

+ Here is the caller graph for this function:

◆ getParticipants()

ilParticipants::getParticipants ( )

Get all participants ids.

Returns
int[]

Definition at line 547 of file class.ilParticipants.php.

547 : array
548 {
549 return $this->participants;
550 }

Referenced by ilSessionParticipants\readParticipantsStatus().

+ Here is the caller graph for this function:

◆ getRoles()

ilParticipants::getRoles ( )

Get object roles.

Definition at line 628 of file class.ilParticipants.php.

628 : array
629 {
630 return $this->roles;
631 }

◆ getSubscriberData()

ilParticipants::getSubscriberData ( int  $a_usr_id)

Definition at line 1116 of file class.ilParticipants.php.

1116 : array
1117 {
1118 return $this->readSubscriberData($a_usr_id);
1119 }
readSubscriberData(int $a_usr_id)

◆ getSubscribers()

ilParticipants::getSubscribers ( )

get all subscribers int[]

Definition at line 1105 of file class.ilParticipants.php.

1105 : array
1106 {
1107 $this->readSubscribers();
1108 return $this->subscribers;
1109 }

◆ getTutors()

ilParticipants::getTutors ( )

Get all tutors ids.

Returns
int[]

Definition at line 580 of file class.ilParticipants.php.

580 : array
581 {
582 return $this->tutors;
583 }

◆ getType()

ilParticipants::getType ( )

Definition at line 503 of file class.ilParticipants.php.

503 : string
504 {
505 return $this->type;
506 }

◆ getUserMembershipAssignmentsByType()

static ilParticipants::getUserMembershipAssignmentsByType ( array  $a_user_ids,
array  $a_type,
bool  $a_only_member_roles 
)
static

Get user membership assignments by type.

Definition at line 257 of file class.ilParticipants.php.

261 : array {
262 global $DIC;
263
264 $ilDB = $DIC->database();
265
266 $j2 = $a2 = '';
267 if ($a_only_member_roles) {
268 $j2 = "JOIN object_data obd2 ON (ua.rol_id = obd2.obj_id) ";
269 $a2 = 'AND obd2.title = ' . $ilDB->concat(
270 array(
271 array($ilDB->quote('il_', 'text')),
272 array('obd.type'),
273 array($ilDB->quote('_member_', 'text')),
274 array('obr.ref_id'),
275 ),
276 false
277 );
278 }
279
280 $query = "SELECT DISTINCT obd.obj_id,obr.ref_id,ua.usr_id FROM rbac_ua ua " .
281 "JOIN rbac_fa fa ON ua.rol_id = fa.rol_id " .
282 "JOIN object_reference obr ON fa.parent = obr.ref_id " .
283 "JOIN object_data obd ON obr.obj_id = obd.obj_id " .
284 $j2 .
285 "WHERE " . $ilDB->in("obd.type", $a_type, false, "text") .
286 "AND fa.assign = 'y' " .
287 'AND ' . $ilDB->in('ua.usr_id', $a_user_ids, false, 'integer') . ' ' .
288 $a2;
289
290 $obj_ids = [];
291 $res = $ilDB->query($query);
292 while ($row = $ilDB->fetchObject($res)) {
293 $obj_ids[(int) $row->obj_id][] = (int) $row->usr_id;
294 }
295 return $obj_ids;
296 }

References $ilDB.

Referenced by ilTimingsUser\lookupTimings().

+ Here is the caller graph for this function:

◆ hasParticipantListAccess()

static ilParticipants::hasParticipantListAccess ( int  $a_obj_id,
?int  $a_usr_id = null 
)
static

Check if (current) user has access to the participant list.

Definition at line 159 of file class.ilParticipants.php.

159 : bool
160 {
161 global $DIC;
162
163 $access = $DIC->access();
164
165 if (!$a_usr_id) {
166 $a_usr_id = $DIC->user()->getId();
167 }
168
169 // if write access granted => return true
170 $refs = ilObject::_getAllReferences($a_obj_id);
171 $ref_id = end($refs);
172
173 if ($access->checkAccess('manage_members', '', $ref_id)) {
174 return true;
175 }
176 $part = self::getInstance($ref_id);
177 if ($part->isAssigned($a_usr_id)) {
178 if ($part->getType() === 'crs') {
180 return false;
181 }
182 }
183 if ($part->getType() === 'grp') {
184 if (!ilObjGroup::lookupShowMembersEnabled($a_obj_id)) {
185 return false;
186 }
187 }
188 return true;
189 }
190 // User is not assigned to course/group => no read access
191 return false;
192 }
static lookupShowMembersEnabled(int $a_obj_id)
static lookupShowMembersEnabled(int $a_obj_id)

References $DIC, $ref_id, ilObject\_getAllReferences(), getInstance(), ilObjCourse\lookupShowMembersEnabled(), and ilObjGroup\lookupShowMembersEnabled().

Referenced by ilRepositorySearchGUI\listUsers(), ilRepositoryObjectResultTableGUI\parseObjectIds(), and ilMailSearchGUI\showResults().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasPassed()

ilParticipants::hasPassed ( int  $a_usr_id)

Check if user has passed object.

Definition at line 699 of file class.ilParticipants.php.

699 : bool
700 {
701 if (isset($this->participants_status[$a_usr_id])) {
702 return (bool) ($this->participants_status[$a_usr_id]['passed'] ?? false);
703 }
704 return false;
705 }

◆ isAdmin()

ilParticipants::isAdmin ( int  $a_usr_id)

check if user is admin

Definition at line 588 of file class.ilParticipants.php.

588 : bool
589 {
590 return in_array($a_usr_id, $this->admins);
591 }

Referenced by ilMembershipGUI\executeCommand().

+ Here is the caller graph for this function:

◆ isAssigned()

ilParticipants::isAssigned ( int  $a_usr_id)

check if user is assigned

Definition at line 612 of file class.ilParticipants.php.

612 : bool
613 {
614 return in_array($a_usr_id, $this->participants);
615 }

Referenced by ilForumModeratorsGUI\detachModeratorRole().

+ Here is the caller graph for this function:

◆ isBlocked()

ilParticipants::isBlocked ( int  $a_usr_id)

Check if user is blocked.

Definition at line 688 of file class.ilParticipants.php.

688 : bool
689 {
690 if (isset($this->participants_status[$a_usr_id])) {
691 return (bool) ($this->participants_status[$a_usr_id]['blocked'] ?? false);
692 }
693 return false;
694 }

◆ isContact()

ilParticipants::isContact ( int  $a_usr_id)

Definition at line 893 of file class.ilParticipants.php.

893 : bool
894 {
895 if (isset($this->participants_status[$a_usr_id])) {
896 return (bool) ($this->participants_status[$a_usr_id]['contact'] ?? false);
897 }
898 return false;
899 }

◆ isGroupingMember()

ilParticipants::isGroupingMember ( int  $a_usr_id,
string  $a_field = '' 
)

Check membership for.

Definition at line 1042 of file class.ilParticipants.php.

1042 : bool
1043 {
1044 if ($a_field === '') {
1045 return false;
1046 }
1047 // Used for membership limitations -> check membership by given field
1048 $tmp_user = ilObjectFactory::getInstanceByObjId($a_usr_id);
1049 if (!$tmp_user instanceof ilObjUser) {
1050 $this->logger->logStack(ilLogLevel::ERROR);
1051 throw new DomainException('Invalid user id given: ' . $a_usr_id);
1052 }
1053 switch ($a_field) {
1054 case 'login':
1055 $and = "AND login = " . $this->ilDB->quote($tmp_user->getLogin(), 'text') . " ";
1056 break;
1057 case 'email':
1058 $and = "AND email = " . $this->ilDB->quote($tmp_user->getEmail(), 'text') . " ";
1059 break;
1060 case 'matriculation':
1061 $and = "AND matriculation = " . $this->ilDB->quote($tmp_user->getMatriculation(), 'text') . " ";
1062 break;
1063
1064 default:
1065 $and = "AND usr_id = " . $this->ilDB->quote($a_usr_id, 'integer') . " ";
1066 break;
1067 }
1068
1069 if (!$this->getParticipants()) {
1070 return false;
1071 }
1072
1073 $query = "SELECT * FROM usr_data ud " .
1074 "WHERE " . $this->ilDB->in('usr_id', $this->getParticipants(), false, 'integer') . " " .
1075 $and;
1076
1077 $res = $this->ilDB->query($query);
1078 return (bool) $res->numRows();
1079 }
User class.
getParticipants()
Get all participants ids.

References $res, ilLogLevel\ERROR, ilObjectFactory\getInstanceByObjId(), and ILIAS\Repository\logger().

+ Here is the call graph for this function:

◆ isLastAdmin()

ilParticipants::isLastAdmin ( int  $a_usr_id)

Check if user is last admin.

Definition at line 620 of file class.ilParticipants.php.

620 : bool
621 {
622 return in_array($a_usr_id, $this->getAdmins()) && count($this->getAdmins()) === 1;
623 }

◆ isMember()

ilParticipants::isMember ( int  $a_usr_id)

is user member

Definition at line 604 of file class.ilParticipants.php.

604 : bool
605 {
606 return in_array($a_usr_id, $this->members);
607 }

◆ isNotificationEnabled()

ilParticipants::isNotificationEnabled ( int  $a_usr_id)

Definition at line 885 of file class.ilParticipants.php.

885 : bool
886 {
887 if (isset($this->participants_status[$a_usr_id])) {
888 return (bool) ($this->participants_status[$a_usr_id]['notification'] ?? false);
889 }
890 return false;
891 }

◆ isSubscriber()

ilParticipants::isSubscriber ( int  $a_usr_id)

Definition at line 1238 of file class.ilParticipants.php.

1238 : bool
1239 {
1240 $query = "SELECT * FROM il_subscribers " .
1241 "WHERE usr_id = " . $this->ilDB->quote($a_usr_id, 'integer') . " " .
1242 "AND obj_id = " . $this->ilDB->quote($this->obj_id, 'integer');
1243
1244 $res = $this->ilDB->query($query);
1245 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
1246 return true;
1247 }
1248 return false;
1249 }

References $res, and ilDBConstants\FETCHMODE_OBJECT.

◆ isTutor()

ilParticipants::isTutor ( int  $a_usr_id)

is user tutor

Definition at line 596 of file class.ilParticipants.php.

596 : bool
597 {
598 return in_array($a_usr_id, $this->tutors);
599 }

◆ lookupNumberOfMembers()

static ilParticipants::lookupNumberOfMembers ( int  $a_ref_id)
static

Lookup number of members.

Definition at line 376 of file class.ilParticipants.php.

376 : int
377 {
378 global $DIC;
379
380 $rbacreview = $DIC->rbac()->review();
381 $ilObjDataCache = $DIC['ilObjDataCache'];
382 $has_policies = $rbacreview->getLocalPolicies($a_ref_id);
383 if (!$has_policies) {
384 return 0;
385 }
386 $lroles = $rbacreview->getRolesOfRoleFolder($a_ref_id, false);
387 $memberRoles = array();
388 foreach ($lroles as $role_id) {
389 $title = $ilObjDataCache->lookupTitle($role_id);
390 switch (substr($title, 0, 8)) {
391 case 'il_crs_a':
392 case 'il_crs_t':
393 case 'il_grp_a':
394 break;
395
396 default:
397 $memberRoles[] = $role_id;
398 break;
399 }
400 }
401 return $rbacreview->getNumberOfAssignedUsers($memberRoles);
402 }

References $DIC.

Referenced by ilObjCourse\handleAutoFill(), ilObjGroup\handleAutoFill(), and ilObjSession\handleAutoFill().

+ Here is the caller graph for this function:

◆ lookupNumberOfParticipants()

static ilParticipants::lookupNumberOfParticipants ( int  $a_ref_id)
static

Lookup the number of participants (crs admins, tutors, members, grp admins, members)

Definition at line 364 of file class.ilParticipants.php.

364 : int
365 {
366 global $DIC;
367
368 $rbacreview = $DIC->rbac()->review();
369 $lroles = $rbacreview->getRolesOfRoleFolder($a_ref_id, false);
370 return $rbacreview->getNumberOfAssignedUsers($lroles);
371 }

References $DIC.

◆ lookupSubscribers()

static ilParticipants::lookupSubscribers ( int  $a_obj_id)
static
Returns
int[]

Definition at line 1084 of file class.ilParticipants.php.

1084 : array
1085 {
1086 global $DIC;
1087
1088 $ilDB = $DIC['ilDB'];
1089 $subscribers = array();
1090 $query = "SELECT usr_id FROM il_subscribers " .
1091 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer') . " " .
1092 "ORDER BY sub_time ";
1093
1094 $res = $ilDB->query($query);
1095 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
1096 $subscribers[] = (int) $row->usr_id;
1097 }
1098 return $subscribers;
1099 }

References $DIC, $ilDB, $res, ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ lookupSubscribersData()

static ilParticipants::lookupSubscribersData ( int  $a_obj_id)
static
Parameters
int$a_usr_id
Returns
array<int, array<{time: int, usr_id: int, subject: string}>>

Definition at line 1309 of file class.ilParticipants.php.

1309 : array
1310 {
1311 global $DIC;
1312
1313 $ilDB = $DIC->database();
1314 $query = 'SELECT * FROM il_subscribers ' .
1315 'WHERE obj_id = ' . $ilDB->quote($a_obj_id, 'integer');
1316 $res = $ilDB->query($query);
1317
1318 $data = array();
1319 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
1320 $data[$row->usr_id]['time'] = (int) $row->sub_time;
1321 $data[$row->usr_id]['usr_id'] = (int) $row->usr_id;
1322 $data[$row->usr_id]['subject'] = (string) $row->subject;
1323 }
1324 return $data;
1325 }

References $data, $DIC, $ilDB, $res, ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

Referenced by ilSubscriberTableGUI\readSubscriberData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ readParticipants()

ilParticipants::readParticipants ( )
protected

Definition at line 909 of file class.ilParticipants.php.

909 : void
910 {
911 $this->roles = $this->rbacReview->getRolesOfRoleFolder($this->ref_id, false);
912 $this->participants = [];
913 $this->members = $this->admins = $this->tutors = [];
914
915 $additional_roles = [];
916 $auto_generated_roles = [];
917 foreach ($this->roles as $role_id) {
918 $title = $this->objectDataCache->lookupTitle($role_id);
919 switch (substr($title, 0, 8)) {
920 case 'il_crs_m':
921 $auto_generated_roles[$role_id] = self::IL_ROLE_POSITION_MEMBER;
922 $this->role_data[self::IL_CRS_MEMBER] = $role_id;
923 $this->participants = array_unique(array_merge(
924 $assigned = $this->rbacReview->assignedUsers($role_id),
925 $this->participants
926 ));
927 $this->members = array_unique(array_merge($assigned, $this->members));
928 $this->role_assignments[$role_id] = $assigned;
929 break;
930
931 case 'il_crs_a':
932 $auto_generated_roles[$role_id] = self::IL_ROLE_POSITION_ADMIN;
933 $this->role_data[self::IL_CRS_ADMIN] = $role_id;
934 $this->participants = array_unique(array_merge(
935 $assigned = $this->rbacReview->assignedUsers($role_id),
936 $this->participants
937 ));
938 $this->admins = $this->rbacReview->assignedUsers($role_id);
939 $this->role_assignments[$role_id] = $assigned;
940 break;
941
942 case 'il_crs_t':
943 $auto_generated_roles[$role_id] = self::IL_ROLE_POSITION_TUTOR;
944 $this->role_data[self::IL_CRS_TUTOR] = $role_id;
945 $this->participants = array_unique(array_merge(
946 $assigned = $this->rbacReview->assignedUsers($role_id),
947 $this->participants
948 ));
949 $this->tutors = $this->rbacReview->assignedUsers($role_id);
950 $this->role_assignments[$role_id] = $assigned;
951 break;
952
953 case 'il_grp_a':
954 $auto_generated_roles[$role_id] = self::IL_ROLE_POSITION_ADMIN;
955 $this->role_data[self::IL_GRP_ADMIN] = $role_id;
956 $this->participants = array_unique(array_merge(
957 $assigned = $this->rbacReview->assignedUsers($role_id),
958 $this->participants
959 ));
960 $this->admins = $this->rbacReview->assignedUsers($role_id);
961 $this->role_assignments[$role_id] = $assigned;
962 break;
963
964 case 'il_grp_m':
965 $auto_generated_roles[$role_id] = self::IL_ROLE_POSITION_MEMBER;
966 $this->role_data[self::IL_GRP_MEMBER] = $role_id;
967 $this->participants = array_unique(array_merge(
968 $assigned = $this->rbacReview->assignedUsers($role_id),
969 $this->participants
970 ));
971 $this->members = $this->rbacReview->assignedUsers($role_id);
972 $this->role_assignments[$role_id] = $assigned;
973 break;
974
975 case 'il_sess_':
976 $this->role_data[self::IL_SESS_MEMBER] = $role_id;
977 $this->participants = array_unique(array_merge(
978 $assigned = $this->rbacReview->assignedUsers($role_id),
979 $this->participants
980 ));
981 $this->members = $this->rbacReview->assignedUsers($role_id);
982 break;
983
984 case 'il_lso_m':
985 $auto_generated_roles[$role_id] = self::IL_ROLE_POSITION_MEMBER;
986 $this->role_data[self::IL_LSO_MEMBER] = $role_id;
987 $this->participants = array_unique(array_merge(
988 $assigned = $this->rbacReview->assignedUsers($role_id),
989 $this->participants
990 ));
991 $this->members = $this->rbacReview->assignedUsers($role_id);
992 $this->role_assignments[$role_id] = $assigned;
993 break;
994
995 case 'il_lso_a':
996 $auto_generated_roles[$role_id] = self::IL_ROLE_POSITION_ADMIN;
997 $this->role_data[self::IL_LSO_ADMIN] = $role_id;
998 $this->participants = array_unique(array_merge(
999 $assigned = $this->rbacReview->assignedUsers($role_id),
1000 $this->participants
1001 ));
1002 $this->admins = $this->rbacReview->assignedUsers($role_id);
1003 $this->role_assignments[$role_id] = $assigned;
1004 break;
1005
1006 default:
1007 $additional_roles[$role_id] = $title;
1008 $this->participants = array_unique(array_merge(
1009 $assigned = $this->rbacReview->assignedUsers($role_id),
1010 $this->participants
1011 ));
1012 $this->members = array_unique(array_merge($assigned, $this->members));
1013 $this->role_assignments[$role_id] = $assigned;
1014 break;
1015 }
1016 }
1017 asort($auto_generated_roles);
1018 asort($additional_roles);
1019 $this->roles_sorted = $auto_generated_roles + $additional_roles;
1020 }

References ILIAS\Repository\objectDataCache().

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ readParticipantsStatus()

ilParticipants::readParticipantsStatus ( )
protected

Read status of participants (blocked, notification, passed)

Reimplemented in ilSessionParticipants.

Definition at line 1025 of file class.ilParticipants.php.

1025 : void
1026 {
1027 $query = "SELECT * FROM obj_members " .
1028 "WHERE obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " ";
1029 $res = $this->ilDB->query($query);
1030 $this->participants_status = [];
1031 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
1032 $this->participants_status[(int) $row->usr_id]['blocked'] = (bool) $row->blocked;
1033 $this->participants_status[(int) $row->usr_id]['notification'] = (bool) $row->notification;
1034 $this->participants_status[(int) $row->usr_id]['passed'] = (bool) $row->passed;
1035 $this->participants_status[(int) $row->usr_id]['contact'] = (bool) $row->contact;
1036 }
1037 }

References $res, ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

Referenced by __construct().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ readSubscriberData()

ilParticipants::readSubscriberData ( int  $a_usr_id)
protected
Returns
array<{time: int, usr_id: int, subject: string}>

Definition at line 1289 of file class.ilParticipants.php.

1289 : array
1290 {
1291 $query = "SELECT * FROM il_subscribers " .
1292 "WHERE obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " " .
1293 "AND usr_id = " . $this->ilDB->quote($a_usr_id, 'integer');
1294
1295 $res = $this->ilDB->query($query);
1296 $data = [];
1297 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
1298 $data["time"] = (int) $row->sub_time;
1299 $data["usr_id"] = (int) $row->usr_id;
1300 $data['subject'] = (string) $row->subject;
1301 }
1302 return $data;
1303 }

References $data, $res, ilDBConstants\FETCHMODE_OBJECT, and ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ readSubscribers()

ilParticipants::readSubscribers ( )
protected
Todo:
fix performance; check if method is in use

Definition at line 1270 of file class.ilParticipants.php.

1270 : void
1271 {
1272 $this->subscribers = [];
1273 $query = "SELECT usr_id FROM il_subscribers " .
1274 "WHERE obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " " .
1275 "ORDER BY sub_time ";
1276
1277 $res = $this->ilDB->query($query);
1278 while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
1279 if (!ilObjectFactory::getInstanceByObjId((int) $row->usr_id, false)) {
1280 $this->deleteSubscriber((int) $row->usr_id);
1281 }
1282 $this->subscribers[] = (int) $row->usr_id;
1283 }
1284 }

References $res, ilDBConstants\FETCHMODE_OBJECT, ilObjectFactory\getInstanceByObjId(), and ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ setRoleOrderPosition()

ilParticipants::setRoleOrderPosition ( int  $a_user_id)

Set role order position.

Definition at line 1377 of file class.ilParticipants.php.

1377 : string
1378 {
1379 $counter = 0;
1380 $sortable_assignments = '9999999999';
1381 foreach ($this->roles_sorted as $role_id => $trash) {
1382 if (in_array($a_user_id, (array) $this->role_assignments[$role_id])) {
1383 $sortable_assignments = substr_replace($sortable_assignments, '1', $counter, 1);
1384 }
1385 ++$counter;
1386 }
1387 return $sortable_assignments;
1388 }

References $counter.

◆ updateBlocked()

ilParticipants::updateBlocked ( int  $a_usr_id,
bool  $a_blocked 
)

Update blocked status.

Definition at line 738 of file class.ilParticipants.php.

738 : void
739 {
740 $this->participants_status[$a_usr_id]['blocked'] = (int) $a_blocked;
741 $query = "SELECT * FROM obj_members " .
742 "WHERE obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " " .
743 "AND usr_id = " . $this->ilDB->quote($a_usr_id, 'integer');
744 $res = $this->ilDB->query($query);
745 if ($res->numRows()) {
746 $query = "UPDATE obj_members SET " .
747 "blocked = " . $this->ilDB->quote((int) $a_blocked, 'integer') . " " .
748 "WHERE obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " " .
749 "AND usr_id = " . $this->ilDB->quote($a_usr_id, 'integer');
750 } else {
751 $query = "INSERT INTO obj_members (blocked,obj_id,usr_id,notification,passed) " .
752 "VALUES ( " .
753 $this->ilDB->quote((int) $a_blocked, 'integer') . ", " .
754 $this->ilDB->quote($this->obj_id, 'integer') . ", " .
755 $this->ilDB->quote($a_usr_id, 'integer') . ", " .
756 $this->ilDB->quote(0, 'integer') . ", " .
757 $this->ilDB->quote(0, 'integer') .
758 ") ON DUPLICATE KEY UPDATE blocked = VALUES(blocked)";
759 }
760 $res = $this->ilDB->manipulate($query);
761 }

References $res, and ILIAS\Repository\int().

+ Here is the call graph for this function:

◆ updateContact()

ilParticipants::updateContact ( int  $a_usr_id,
bool  $a_contact 
)

Definition at line 763 of file class.ilParticipants.php.

763 : void
764 {
765 $this->ilDB->manipulate(
766 'UPDATE obj_members SET ' .
767 'contact = ' . $this->ilDB->quote($a_contact, 'integer') . ' ' .
768 'WHERE obj_id = ' . $this->ilDB->quote($this->obj_id, 'integer') . ' ' .
769 'AND usr_id = ' . $this->ilDB->quote($a_usr_id, 'integer')
770 );
771 $this->participants_status[$a_usr_id]['contact'] = $a_contact;
772 }

◆ updateNotification()

ilParticipants::updateNotification ( int  $a_usr_id,
bool  $a_notification 
)

Update notification status.

Definition at line 792 of file class.ilParticipants.php.

792 : void
793 {
794 $this->participants_status[$a_usr_id]['notification'] = $a_notification;
795
796 $query = "SELECT * FROM obj_members " .
797 "WHERE obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " " .
798 "AND usr_id = " . $this->ilDB->quote($a_usr_id, 'integer');
799 $res = $this->ilDB->query($query);
800 if ($res->numRows()) {
801 $query = "UPDATE obj_members SET " .
802 "notification = " . $this->ilDB->quote((int) $a_notification, 'integer') . " " .
803 "WHERE obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " " .
804 "AND usr_id = " . $this->ilDB->quote($a_usr_id, 'integer');
805 } else {
806 $query = "INSERT INTO obj_members (notification,obj_id,usr_id,passed,blocked) " .
807 "VALUES ( " .
808 $this->ilDB->quote((int) $a_notification, 'integer') . ", " .
809 $this->ilDB->quote($this->obj_id, 'integer') . ", " .
810 $this->ilDB->quote($a_usr_id, 'integer') . ", " .
811 $this->ilDB->quote(0, 'integer') . ", " .
812 $this->ilDB->quote(0, 'integer') .
813 ") ON DUPLICATE KEY UPDATE notification = VALUES(notification)";
814 }
815 $res = $this->ilDB->manipulate($query);
816 }

References $res.

Referenced by ilLearningSequenceMembershipGUI\updateParticipantsStatus().

+ Here is the caller graph for this function:

◆ updateRoleAssignments()

ilParticipants::updateRoleAssignments (   $a_usr_id,
  $a_roles 
)

Update role assignments @access public.

Parameters
intusr_id
int[]array of new roles

Definition at line 653 of file class.ilParticipants.php.

653 : void
654 {
655 foreach ($this->getRoles() as $role_id) {
656 if ($this->rbacReview->isAssigned($a_usr_id, $role_id)) {
657 if (!in_array($role_id, $a_roles)) {
658 $this->rbacAdmin->deassignUser($role_id, $a_usr_id);
659 }
660 } elseif (in_array($role_id, $a_roles)) {
661 $this->rbacAdmin->assignUser($role_id, $a_usr_id);
662 }
663 }
664 $this->rbacReview->clearCaches();
665 $this->readParticipants();
666 $this->readParticipantsStatus();
667 }
getRoles()
Get object roles.

◆ updateSubject()

ilParticipants::updateSubject ( int  $a_usr_id,
string  $a_subject 
)

Definition at line 1207 of file class.ilParticipants.php.

1207 : void
1208 {
1209 $query = "UPDATE il_subscribers " .
1210 "SET subject = " . $this->ilDB->quote($a_subject, 'text') . " " .
1211 "WHERE usr_id = " . $this->ilDB->quote($a_usr_id, 'integer') . " " .
1212 "AND obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " ";
1213 $res = $this->ilDB->manipulate($query);
1214 }

References $res.

◆ updateSubscriptionTime()

ilParticipants::updateSubscriptionTime ( int  $a_usr_id,
int  $a_subtime 
)

Definition at line 1198 of file class.ilParticipants.php.

1198 : void
1199 {
1200 $query = "UPDATE il_subscribers " .
1201 "SET sub_time = " . $this->ilDB->quote($a_subtime, 'integer') . " " .
1202 "WHERE usr_id = " . $this->ilDB->quote($a_usr_id, 'integer') . " " .
1203 "AND obj_id = " . $this->ilDB->quote($this->obj_id, 'integer') . " ";
1204 $res = $this->ilDB->manipulate($query);
1205 }

References $res.

Field Documentation

◆ $admins

array ilParticipants::$admins = []
protected

Definition at line 56 of file class.ilParticipants.php.

◆ $component

string ilParticipants::$component = ''
protected

Definition at line 44 of file class.ilParticipants.php.

Referenced by getComponent().

◆ $error

ilErrorHandling ilParticipants::$error
protected

Definition at line 65 of file class.ilParticipants.php.

◆ $eventHandler

ilAppEventHandler ilParticipants::$eventHandler
protected

Definition at line 58 of file class.ilParticipants.php.

◆ $ilDB

ilDBInterface ilParticipants::$ilDB
protected

Definition at line 62 of file class.ilParticipants.php.

◆ $lng

ilLanguage ilParticipants::$lng
protected

Definition at line 63 of file class.ilParticipants.php.

◆ $logger

◆ $members

array ilParticipants::$members = []
protected

Definition at line 54 of file class.ilParticipants.php.

◆ $obj_id

◆ $objectDataCache

ilObjectDataCache ilParticipants::$objectDataCache
protected

Definition at line 61 of file class.ilParticipants.php.

◆ $participants

array ilParticipants::$participants = []
protected

Definition at line 52 of file class.ilParticipants.php.

◆ $participants_status

array ilParticipants::$participants_status = []
protected

Definition at line 53 of file class.ilParticipants.php.

◆ $rbacAdmin

ilRbacAdmin ilParticipants::$rbacAdmin
protected

Definition at line 60 of file class.ilParticipants.php.

◆ $rbacReview

ilRbacReview ilParticipants::$rbacReview
protected

Definition at line 59 of file class.ilParticipants.php.

◆ $recommended_content_manager

ilRecommendedContentManager ilParticipants::$recommended_content_manager
protected

Definition at line 66 of file class.ilParticipants.php.

◆ $ref_id

int ilParticipants::$ref_id = 0
protected

◆ $role_assignments

array ilParticipants::$role_assignments = []
protected

Definition at line 51 of file class.ilParticipants.php.

◆ $role_data

array ilParticipants::$role_data = []
protected

Definition at line 49 of file class.ilParticipants.php.

◆ $roles

array ilParticipants::$roles = []
protected

◆ $roles_sorted

array ilParticipants::$roles_sorted = []
protected

Definition at line 50 of file class.ilParticipants.php.

◆ $subscribers

array ilParticipants::$subscribers = []
protected

Definition at line 57 of file class.ilParticipants.php.

◆ $tutors

array ilParticipants::$tutors = []
protected

Definition at line 55 of file class.ilParticipants.php.

◆ $type

string ilParticipants::$type = ''
protected

◆ IL_CRS_ADMIN

◆ IL_CRS_MEMBER

◆ IL_CRS_TUTOR

◆ IL_GRP_ADMIN

◆ IL_GRP_MEMBER

◆ IL_LSO_ADMIN

const ilParticipants::IL_LSO_ADMIN = 7

◆ IL_LSO_MEMBER

const ilParticipants::IL_LSO_MEMBER = 8

◆ IL_ROLE_POSITION_ADMIN

const ilParticipants::IL_ROLE_POSITION_ADMIN = 1

Definition at line 40 of file class.ilParticipants.php.

◆ IL_ROLE_POSITION_MEMBER

const ilParticipants::IL_ROLE_POSITION_MEMBER = 3

Definition at line 42 of file class.ilParticipants.php.

◆ IL_ROLE_POSITION_TUTOR

const ilParticipants::IL_ROLE_POSITION_TUTOR = 2

Definition at line 41 of file class.ilParticipants.php.

◆ IL_SESS_MEMBER

const ilParticipants::IL_SESS_MEMBER = 6

The documentation for this class was generated from the following file: