5 include_once(
"./Services/Object/classes/class.ilObjectAccess.php");
30 public function _checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id =
"")
36 $rbacsystem = $DIC[
'rbacsystem'];
37 $ilAccess = $DIC[
'ilAccess'];
39 if ($a_user_id ==
"") {
46 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
56 if (!self::_registrationEnabled($a_obj_id)) {
60 include_once
'./Modules/Group/classes/class.ilGroupWaitingList.php';
65 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
74 if ($a_permission ==
'leave') {
75 include_once
'./Modules/Group/classes/class.ilObjGroup.php';
78 $ilAccess->addInfoItem(
85 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
91 if ($a_permission ==
'join') {
92 include_once
'./Modules/Group/classes/class.ilGroupWaitingList.php';
101 switch ($a_permission) {
103 include_once
'./Modules/Group/classes/class.ilObjGroup.php';
124 $commands[] = array(
"permission" =>
"grp_linked",
"cmd" =>
"",
"lang_var" =>
"show",
"default" =>
true);
126 $commands[] = array(
"permission" =>
"join",
"cmd" =>
"join",
"lang_var" =>
"join");
129 $commands[] = array(
'permission' =>
"join",
"cmd" =>
"leave",
"lang_var" =>
"leave_waiting_list");
132 $commands[] = array(
'permission' =>
"leave",
"cmd" =>
"leave",
"lang_var" =>
"grp_btn_unsubscribe");
134 include_once(
'Services/WebDAV/classes/class.ilDAVActivationChecker.php');
136 include_once
'./Services/WebDAV/classes/class.ilWebDAVUtil.php';
138 $commands[] = array(
'permission' =>
'read',
'cmd' =>
'showPasswordInstruction',
'lang_var' =>
'mount_webfolder',
'enable_anonymous' =>
'false');
140 $commands[] = array(
"permission" =>
"read",
"cmd" =>
"mount_webfolder",
"lang_var" =>
"mount_webfolder",
"enable_anonymous" =>
"false");
144 $commands[] = array(
"permission" =>
"write",
"cmd" =>
"enableAdministrationPanel",
"lang_var" =>
"edit_content");
145 $commands[] = array(
"permission" =>
"write",
"cmd" =>
"edit",
"lang_var" =>
"settings");
157 $ilAccess = $DIC[
'ilAccess'];
160 $t_arr = explode(
"_", $a_target);
163 self::$using_code =
true;
167 if ($t_arr[0] !=
"grp" || ((
int) $t_arr[1]) <= 0) {
171 if ($ilAccess->checkAccess(
"read",
"", $t_arr[1]) ||
172 $ilAccess->checkAccess(
"visible",
"", $t_arr[1])) {
187 $ilDB = $DIC[
'ilDB'];
189 $query =
"SELECT * FROM grp_settings " .
190 "WHERE obj_id = " .
$ilDB->quote($a_obj_id,
'integer') .
" ";
194 $enabled = $unlimited =
false;
196 $enabled = $row->registration_enabled;
197 $unlimited = $row->registration_unlimited;
198 $start = $row->registration_start;
199 $end = $row->registration_end;
229 $ilDB = $DIC[
'ilDB'];
232 include_once(
"./Modules/Group/classes/class.ilGroupWaitingList.php");
248 $ilDB = $DIC[
'ilDB'];
252 $query =
'SELECT registration_type, registration_enabled, registration_unlimited, registration_start, ' .
253 'registration_end, registration_mem_limit, registration_max_members FROM grp_settings ' .
254 'WHERE obj_id = ' .
$ilDB->quote($a_obj_id);
261 $info[
'reg_info_type'] = $row->registration_type;
262 $info[
'reg_info_max_members'] = $row->registration_max_members;
263 $info[
'reg_info_mem_limit'] = $row->registration_mem_limit;
264 $info[
'reg_info_unlimited'] = $row->registration_unlimited;
266 $info[
'reg_info_max_members'] = 0;
267 if ($info[
'reg_info_mem_limit']) {
268 $info[
'reg_info_max_members'] = $row->registration_max_members;
271 $info[
'reg_info_enabled'] = $row->registration_enabled;
274 $registration_possible = $info[
'reg_info_enabled'];
277 if (!$info[
'reg_info_unlimited'] && $registration_possible) {
280 $info[
'reg_info_list_prop'][
'property'] =
$lng->txt(
'grp_list_reg_start');
283 $info[
'reg_info_list_prop'][
'property'] =
$lng->txt(
'grp_list_reg_end');
286 $registration_possible =
false;
287 $info[
'reg_info_list_prop'][
'property'] =
$lng->txt(
'grp_list_reg_period');
288 $info[
'reg_info_list_prop'][
'value'] =
$lng->txt(
'grp_list_reg_noreg');
292 if (!$registration_possible) {
293 $registration_possible =
false;
294 $info[
'reg_info_list_prop'][
'property'] =
$lng->txt(
'grp_list_reg');
295 $info[
'reg_info_list_prop'][
'value'] =
$lng->txt(
'grp_list_reg_noreg');
299 if ($info[
'reg_info_mem_limit'] && $info[
'reg_info_max_members'] && $registration_possible) {
301 include_once
'./Modules/Group/classes/class.ilGroupParticipants.php';
304 include_once
'./Modules/Course/classes/class.ilCourseWaitingList.php';
306 if ($info[
'reg_info_list_size']) {
307 $info[
'reg_info_free_places'] = 0;
309 $info[
'reg_info_free_places'] = max(0, $info[
'reg_info_max_members'] - $part->getCountMembers());
312 if ($info[
'reg_info_free_places']) {
313 $info[
'reg_info_list_prop_limit'][
'property'] =
$lng->txt(
'grp_list_reg_limit_places');
314 $info[
'reg_info_list_prop_limit'][
'value'] = $info[
'reg_info_free_places'];
316 $info[
'reg_info_list_prop_limit'][
'property'] =
'';
317 $info[
'reg_info_list_prop_limit'][
'value'] =
$lng->txt(
'grp_list_reg_limit_full');
334 $ilDB = $DIC[
'ilDB'];
337 $start = $end = null;
338 $query =
'SELECT period_start, period_end, period_time_indication FROM grp_settings ' .
339 'WHERE obj_id = ' .
$ilDB->quote($a_obj_id);
343 if (!$row->period_time_indication) {
344 $start = ($row->period_start
347 $end = ($row->period_end
351 $start = ($row->period_start
354 $end = ($row->period_end
359 if ($start && $end) {
360 $lng->loadLanguageModule(
'grp');
364 'property' =>
$lng->txt(
'grp_period'),
376 return self::$using_code;
static mayLeave($a_group_id, $a_user_id=null, &$a_date=null)
static _registrationEnabled($a_obj_id)
static _isParticipant($a_ref_id, $a_usr_id)
Static function to check if a user is a participant of the container object.
static _after(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is after end This method does not consider tz offsets.
static _preloadOnListInfo($a_usr_ids, $a_obj_ids)
Preload on list info.
static _before(ilDateTime $start, ilDateTime $end, $a_compare_field='', $a_tz='')
compare two dates and check start is before end This method does not consider tz offsets.
static _isActive()
Static getter.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
static _preloadData($a_obj_ids, $a_ref_ids)
Preload data.
_checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id="")
checks wether a user may invoke a command or not (this method is called by ilAccessHandler::checkAcce...
static _getCommands()
get commands
static lookupRegistrationInfo($a_obj_id)
Lookup registration info ilDB $ilDB ilObjUser $ilUser ilLanguage $lng.
static lookupPeriodInfo($a_obj_id)
Lookup course period info.
foreach($_POST as $key=> $value) $res
static _usingRegistrationCode()
Using Registration code.
static _isOnList($a_usr_id, $a_obj_id)
Check if a user on the waiting list.
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static lookupListSize($a_obj_id)
Lookup waiting lit size.
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
static getInstance()
Get singleton instance.
static _checkGoto($a_target)
check whether goto script will succeed