Ejemplo n.º 1
0
 function _isMember($a_user_id, $a_ref_id, $a_field = '')
 {
     global $rbacreview, $ilObjDataCache, $ilDB;
     $rolf = $rbacreview->getRoleFolderOfObject($a_ref_id);
     $local_roles = $rbacreview->getRolesOfRoleFolder($rolf["ref_id"], false);
     $user_roles = $rbacreview->assignedRoles($a_user_id);
     // Used for membership limitations -> check membership by given field
     if ($a_field) {
         include_once './Services/User/classes/class.ilObjUser.php';
         $tmp_user =& ilObjectFactory::getInstanceByObjId($a_user_id);
         switch ($a_field) {
             case 'login':
                 $and = "AND login = '******' ";
                 break;
             case 'email':
                 $and = "AND email = '" . $tmp_user->getEmail() . "' ";
                 break;
             case 'matriculation':
                 $and = "AND matriculation = '" . $tmp_user->getMatriculation() . "' ";
                 break;
             default:
                 $and = "AND usr_id = '" . $a_user_id . "'";
                 break;
         }
         if (!($members = ilObjGroup::_getMembers($ilObjDataCache->lookupObjId($a_ref_id)))) {
             return false;
         }
         $query = "SELECT * FROM usr_data as ud " . "WHERE usr_id IN (" . implode(",", ilUtil::quoteArray($members)) . ") " . $and;
         $res = $ilDB->query($query);
         return $res->numRows() ? true : false;
     }
     if (!array_intersect($local_roles, $user_roles)) {
         return false;
     }
     return true;
 }
 /**
  * Get members for object
  * @param int $a_obj_id
  * @return array
  */
 protected static function getMembers($a_obj_id)
 {
     global $ilObjDataCache;
     switch ($ilObjDataCache->lookupType($a_obj_id)) {
         case 'crs':
             include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
             $member_obj = ilCourseParticipants::_getInstanceByObjId($a_obj_id);
             return $member_obj->getMembers();
         case 'grp':
             include_once './Modules/Group/classes/class.ilObjGroup.php';
             return ilObjGroup::_getMembers($a_obj_id);
     }
     return array();
 }