5 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
6 include_once
"Modules/Group/classes/class.ilGroupParticipants.php";
7 include_once
"Modules/Course/classes/class.ilCourseParticipants.php";
8 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessGUI.php";
23 $lng->loadLanguageModule(
"wsp");
35 public function checkAccess($a_permission, $a_cmd, $a_node_id, $a_type =
"")
39 return $this->
checkAccessOfUser($ilUser->getId(),$a_permission, $a_cmd, $a_node_id, $a_type);
52 public function checkAccessOfUser($a_user_id, $a_permission, $a_cmd, $a_node_id, $a_type =
"")
57 if (!$ilSetting->get(
'user_portfolios'))
71 if($pf->getOwner() == $a_user_id)
83 if($a_permission ==
"read" || $a_permission ==
"visible")
89 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessGUI.php";
92 foreach($objects as $obj_id)
101 if(self::getSharedNodePassword($a_node_id) == self::getSharedSessionPassword($a_node_id) ||
102 $a_permission ==
"visible")
109 if($ilUser->getId() != ANONYMOUS_USER_ID)
136 if($rbacreview->isAssigned($a_user_id, $obj_id))
144 if($a_user_id == $obj_id)
177 public function addPermission($a_node_id, $a_object_id, $a_extended_data = null)
182 if($a_object_id == $ilUser->getId())
187 $ilDB->manipulate(
"INSERT INTO usr_portf_acl (node_id, object_id, extended_data, tstamp)".
188 " VALUES (".$ilDB->quote($a_node_id,
"integer").
", ".
189 $ilDB->quote($a_object_id,
"integer").
",".
190 $ilDB->quote($a_extended_data,
"text").
",".
191 $ilDB->quote(time(),
"integer").
")");
207 $query =
"DELETE FROM usr_portf_acl".
208 " WHERE node_id = ".$ilDB->quote($a_node_id,
"integer");
212 $query .=
" AND object_id = ".$ilDB->quote($a_object_id,
"integer");
215 $ilDB->manipulate(
$query);
231 $set = $ilDB->query(
"SELECT object_id FROM usr_portf_acl".
232 " WHERE node_id = ".$ilDB->quote($a_node_id,
"integer"));
234 while(
$row = $ilDB->fetchAssoc($set))
245 $set = $ilDB->query(
"SELECT object_id FROM usr_portf_acl".
246 " WHERE node_id = ".$ilDB->quote($a_node_id,
"integer").
248 return (
bool)$ilDB->numRows($set);
255 $set = $ilDB->query(
"SELECT object_id FROM usr_portf_acl".
256 " WHERE node_id = ".$ilDB->quote($a_node_id,
"integer").
258 return (
bool)$ilDB->numRows($set);
265 $set = $ilDB->query(
"SELECT object_id FROM usr_portf_acl".
266 " WHERE node_id = ".$ilDB->quote($a_node_id,
"integer").
268 return (
bool)$ilDB->numRows($set);
277 $sql =
"SELECT obj.obj_id".
278 " FROM object_data obj".
279 " JOIN usr_portfolio prtf ON (prtf.id = obj.obj_id)".
280 " JOIN usr_portf_acl acl ON (acl.node_id = obj.obj_id)".
281 " WHERE obj.owner = ".$ilDB->quote($ilUser->getId(),
"integer");
285 $sql .=
" AND prtf.is_online = ".$ilDB->quote(1,
"integer");
288 $set = $ilDB->query($sql);
289 while (
$row = $ilDB->fetchAssoc($set))
301 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessGUI.php";
302 include_once
"Services/Membership/classes/class.ilParticipants.php";
306 $obj_ids = array_merge($grp_ids, $crs_ids);
307 $obj_ids[] = $ilUser->getId();
322 $set = $ilDB->query(
"SELECT DISTINCT(obj.owner), u.lastname, u.firstname, u.title".
323 " FROM object_data obj".
324 " JOIN usr_portfolio prtf ON (prtf.id = obj.obj_id)".
325 " JOIN usr_portf_acl acl ON (acl.node_id = obj.obj_id)".
326 " JOIN usr_data u on (u.usr_id = obj.owner)".
327 " WHERE ".$ilDB->in(
"acl.object_id", $obj_ids,
"",
"integer").
328 " AND obj.owner <> ".$ilDB->quote($ilUser->getId(),
"integer").
329 " AND prtf.is_online = ".$ilDB->quote(1,
"integer").
330 " ORDER BY u.lastname, u.firstname, u.title");
331 while (
$row = $ilDB->fetchAssoc($set))
333 $user_ids[
$row[
"owner"]] = $row[
"lastname"].
", ".$row[
"firstname"];
336 $user_ids[$row[
"owner"]] .=
", ".$row[
"title"];
350 $set = $ilDB->query(
"SELECT obj.obj_id, obj.owner".
351 " FROM object_data obj".
352 " JOIN usr_portfolio prtf ON (prtf.id = obj.obj_id)".
353 " JOIN usr_portf_acl acl ON (acl.node_id = obj.obj_id)".
354 " WHERE ".$ilDB->in(
"acl.object_id", $obj_ids,
"",
"integer").
355 " AND obj.owner = ".$ilDB->quote($a_owner_id,
"integer").
356 " AND prtf.is_online = ".$ilDB->quote(1,
"integer"));
357 while (
$row = $ilDB->fetchAssoc($set))
359 $res[
$row[
"obj_id"]] = $row[
"obj_id"];
373 $set = $ilDB->query(
"SELECT obj.obj_id, obj.owner, obj.title".
374 " FROM object_data obj".
375 " JOIN usr_portfolio prtf ON (prtf.id = obj.obj_id)".
376 " JOIN usr_portf_acl acl ON (acl.node_id = obj.obj_id)".
377 " WHERE ".$ilDB->in(
"acl.object_id", $obj_ids,
"",
"integer").
378 " AND ".$ilDB->in(
"obj.owner", $a_owner_ids,
"",
"integer").
379 " AND prtf.is_online = ".$ilDB->quote(1,
"integer"));
380 while (
$row = $ilDB->fetchAssoc($set))
388 public function findSharedObjects(array $a_filter = null, array $a_crs_ids = null, array $a_grp_ids = null)
392 if(!$a_filter[
"acl_type"])
398 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessGUI.php";
400 switch($a_filter[
"acl_type"])
415 $obj_ids = $a_crs_ids;
419 $obj_ids = $a_grp_ids;
423 $obj_ids = array($ilUser->getId());
430 $sql =
"SELECT obj.obj_id,obj.title,obj.owner".
431 ",acl.object_id acl_type, acl.tstamp acl_date".
432 " FROM object_data obj".
433 " JOIN usr_portfolio prtf ON (prtf.id = obj.obj_id)".
434 " JOIN usr_portf_acl acl ON (acl.node_id = obj.obj_id)".
435 " WHERE ".$ilDB->in(
"acl.object_id", $obj_ids,
"",
"integer").
436 " AND obj.owner <> ".$ilDB->quote($ilUser->getId(),
"integer").
437 " AND obj.type = ".$ilDB->quote(
"prtf",
"text").
438 " AND prtf.is_online = ".$ilDB->quote(1,
"integer");
440 if($a_filter[
"title"] && strlen($a_filter[
"title"]) >= 3)
442 $sql .=
" AND ".$ilDB->like(
"obj.title",
"text",
"%".$a_filter[
"title"].
"%");
444 if($a_filter[
"user"] && strlen($a_filter[
"user"]) >= 3)
447 $set = $ilDB->query(
"SELECT usr_id FROM usr_data".
448 " WHERE (".$ilDB->like(
"login",
"text",
"%".$a_filter[
"user"].
"%").
" ".
449 "OR ".$ilDB->like(
"firstname",
"text",
"%".$a_filter[
"user"].
"%").
" ".
450 "OR ".$ilDB->like(
"lastname",
"text",
"%".$a_filter[
"user"].
"%").
" ".
451 "OR ".$ilDB->like(
"email",
"text",
"%".$a_filter[
"user"].
"%").
")");
452 while(
$row = $ilDB->fetchAssoc($set))
454 $usr_ids[] =
$row[
"usr_id"];
456 if(!
sizeof($usr_ids))
460 $sql .=
" AND ".$ilDB->in(
"obj.owner", $usr_ids,
"",
"integer");
463 if($a_filter[
"acl_date"])
467 $sql .=
" AND acl.tstamp > ".$ilDB->quote($dt->get(
IL_CAL_UNIX),
"integer");
470 if($a_filter[
"crsgrp"])
472 include_once
"Services/Membership/classes/class.ilParticipants.php";
474 $part = $part->getParticipants();
479 $sql .=
" AND ".$ilDB->in(
"obj.owner", $part,
"",
"integer");
483 $sql .=
" ORDER BY acl.tstamp";
485 $set = $ilDB->query($sql);
486 while (
$row = $ilDB->fetchAssoc($set))
490 $row[
"acl_type"] = array($row[
"acl_type"]);
495 $res[$row[
"obj_id"]][
"acl_type"][] = $row[
"acl_type"];
506 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceAccessGUI.php";
508 $set = $ilDB->query(
"SELECT extended_data FROM usr_portf_acl".
509 " WHERE node_id = ".$ilDB->quote($a_node_id,
"integer").
511 $res = $ilDB->fetchAssoc($set);
514 return $res[
"extended_data"];
520 $_SESSION[
"ilshpw_".$a_node_id] = $a_password;
533 include_once
"Modules/Portfolio/classes/class.ilObjPortfolio.php";
540 if(!$has_registered && !$has_global)
542 $ilUser->setPref(
"public_profile",
"n");
543 $ilUser->writePrefs();
554 if($ilUser->getPref(
"public_profile") != $new_pref)
556 $ilUser->setPref(
"public_profile", $new_pref);
557 $ilUser->writePrefs();
static getSharedNodePassword($a_node_id)
checkAccessOfUser($a_user_id, $a_permission, $a_cmd, $a_node_id, $a_type="")
check access for an object
setPermissions($a_parent_node_id, $a_node_id)
Set permissions after creating node/object.
const PERMISSION_ALL_PASSWORD
hasGlobalPermission($a_node_id)
static _getMembershipByType($a_usr_id, $a_type, $a_only_member_role=false)
get membership by type Get course or group membership
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static getSharedSessionPassword($a_node_id)
addPermission($a_node_id, $a_object_id, $a_extended_data=null)
Add permission to node for object.
const PERMISSION_REGISTERED
static keepSharedSessionPassword($a_node_id, $a_password)
hasGlobalPasswordPermission($a_node_id)
static setUserDefault($a_user_id, $a_portfolio_id=null)
Set the user default portfolio.
findSharedObjects(array $a_filter=null, array $a_crs_ids=null, array $a_grp_ids=null)
static _getInstanceByObjId($a_obj_id)
Get singleton instance.
static _lookupType($a_id, $a_reference=false)
lookup object type
getPermissions($a_node_id)
Get all permissions to node.
removePermission($a_node_id, $a_object_id=null)
Remove permission[s] (for object) to node.
getShardObjectsDataForUserIds(array $a_owner_ids)
getSharedObjects($a_owner_id)
Access handler for portfolio.
hasRegisteredPermission($a_node_id)
static getPossibleSharedTargets()
static getDefaultPortfolio($a_user_id)
Get default portfolio of user.
checkAccess($a_permission, $a_cmd, $a_node_id, $a_type="")
check access for an object
getObjectsIShare($a_online_only=true)