[Tickets #5687] Re: guest can't access tickets whups
bugs at bugs.horde.org
bugs at bugs.horde.org
Thu Sep 6 03:36:26 UTC 2007
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/?id=5687
-----------------------------------------------------------------------
Ticket | 5687
Updated By | lee_tao86 at yahoo.com
Summary | guest can't access tickets whups
Queue | Whups
Type | Bug
State | Feedback
Priority | 2. Medium
Owners |
-----------------------------------------------------------------------
lee_tao86 at yahoo.com (2007-09-05 20:36) wrote:
> In a bug report you should be as specific as possible. Just saying
> PHP 5 is a tiny bit of information but largely useless. Please be
> more specific.
>
> Put in a var_dump of $permission in the line before the fatal error,
> see what it is.
how can i put that var_dump??what is the code?i'm sorry my ability in
coding is not really good T_T.. this is the code:
-------------------------------------------------------------------------------------------------
function getPermissions($permission, $user = null, $creator = null)
{
if (!is_a($permission, 'DataTreeObject_Permission')) {
$permission = &$this->getPermission($permission);
if (is_a($permission, 'PEAR_Error')) {
Horde::logMessage($permission, __FILE__, __LINE__,
PEAR_LOG_DEBUG);
return false;
}
}
if (is_null($user)) {
$user = Auth::getAuth();
}
// If this is a guest user, only check guest permissions.
if (empty($user)) {
return $permission->getGuestPermissions();
}
// If $creator was specified, check creator permissions.
if (!is_null($creator)) {
// If the user is the creator of the event see if there
// are creator permissions.
if (strlen($user) && $user === $creator &&
($perms = $permission->getCreatorPermissions()) !== null)
{
return $perms;
}
}
---------------------------------------------------------------------------------------------------
*****THIS IS THE ERROR PART******
// Check user-level permissions.
--> $userperms = $permission->getUserPermissions();
if (isset($userperms[$user])) {
return $userperms[$user];
}
--------------------------------------------------------------------------------------------------
// If no user permissions are found, try group permissions.
if (isset($permission->data['groups']) &&
is_array($permission->data['groups']) &&
count($permission->data['groups'])) {
require_once 'Horde/Group.php';
$groups = &Group::singleton();
$composite_perm = null;
$type = $permission->get('type');
foreach ($permission->data['groups'] as $group => $perm) {
if ($groups->userIsInGroup($user, $group)) {
if (is_null($composite_perm)) {
$composite_perm = $type == 'matrix' ? 0 :
array();
}
if ($type == 'matrix') {
$composite_perm |= $perm;
} else {
$composite_perm[] = $perm;
}
}
}
if ($composite_perm !== null) {
return $composite_perm;
}
}
// If there are default permissions, return them.
// if (($perms = $permission->getDefaultPermissions()) !== null)
{
// return $perms;
// }
// Otherwise, deny all permissions to the object.
return false;
}
More information about the bugs
mailing list