Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 include_once("classes/class.ilObjectAccess.php");
00025
00035 class ilObjCourseAccess extends ilObjectAccess
00036 {
00049 function _checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id = "")
00050 {
00051 global $ilUser, $lng, $rbacsystem, $ilAccess, $ilias;
00052
00053 if ($a_user_id == "")
00054 {
00055 $a_user_id = $ilUser->getId();
00056 }
00057
00058 switch ($a_cmd)
00059 {
00060 case "view":
00061 include_once 'course/classes/class.ilCourseMembers.php';
00062
00063 if(ilCourseMembers::_isBlocked($a_obj_id,$a_user_id))
00064 {
00065 $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("crs_status_blocked"));
00066 return false;
00067 }
00068 break;
00069
00070 case "info":
00071 include_once 'course/classes/class.ilCourseMembers.php';
00072
00073 if(ilCourseMembers::_isMember($a_user_id,$a_obj_id))
00074 {
00075 $ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("info_is_member"));
00076 }
00077 else
00078 {
00079 $ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("info_is_not_member"));
00080 }
00081 break;
00082
00083 case 'join':
00084 include_once 'course/classes/class.ilCourseMembers.php';
00085
00086 if(ilCourseMembers::_isMember($a_user_id,$a_obj_id))
00087 {
00088 return false;
00089 }
00090 break;
00091
00092 case 'details':
00093 include_once 'course/classes/class.ilCourseMembers.php';
00094
00095
00096 if(ilCourseMembers::_isMember($a_user_id,$a_obj_id))
00097 {
00098 return false;
00099 }
00100
00101 if($rbacsystem->checkAccessOfUser($a_user_id,'join',$a_ref_id))
00102 {
00103 return false;
00104 }
00105 break;
00106 }
00107
00108 switch ($a_permission)
00109 {
00110 case "visible":
00111 include_once 'course/classes/class.ilObjCourse.php';
00112 if(!($activated = ilObjCourse::_isActivated($a_obj_id)))
00113 {
00114 $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $lng->txt("offline"));
00115 }
00116 else
00117 {
00118 $ilAccess->addInfoItem(IL_STATUS_MESSAGE, $lng->txt("online"));
00119 }
00120 if(!$rbacsystem->checkAccessOfUser($a_user_id,'write',$a_ref_id) and !$activated)
00121 {
00122 return false;
00123 }
00124
00125 break;
00126 }
00127 return true;
00128 }
00129
00142 function _getCommands()
00143 {
00144 $commands = array
00145 (
00146 array("permission" => "read", "cmd" => "view", "lang_var" => "view",
00147 "default" => true),
00148 array("permission" => "join", "cmd" => "join", "lang_var" => "join"),
00149 array("permission" => "write", "cmd" => "edit", "lang_var" => "edit"),
00150 array('permission' => 'visible', 'cmd' => 'details','lang_var' => 'crs_info')
00151 );
00152
00153 return $commands;
00154 }
00155 }
00156
00157 ?>