<?php /**************************************************************************\ * eGroupWare - Resources * * http://www.egroupware.org * * -------------------------------------------- * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 2 of the License, or (at your * * option) any later version. * * -------------------------------------------- * \**************************************************************************/ /* $Id: */ class so_acl { var $db; function so_acl() { copyobj($GLOBALS['phpgw']->db,$this->db); } function get_rights($location) { $result = array(); $sql = "SELECT acl_account, acl_rights from phpgw_acl WHERE acl_appname = 'resources' AND acl_location = '$location'"; $this->db->query($sql,__LINE__,__FILE__); while($this->db->next_record()) { $result[$this->db->f('acl_account')] = $this->db->f('acl_rights'); } return $result; } function remove_location($location) { $sql = "delete from phpgw_acl where acl_appname='resources' and acl_location='$location'"; $this->db->query($sql,__LINE__,__FILE__); } /*! @function get_permission @abstract gets permissions for resources of user @discussion This function is needed, cause eGW api dosn't provide a usefull function for that topic! @discussion Using api-functions for that, would resault bad performace :-( @autor autor of news_admin ? @param int $user user_id we want to get perms for @param bool $inc_groups get rights due to groupmembership of user */ function get_permissions($user, $inc_groups) { $groups = $GLOBALS['phpgw']->acl->get_location_list_for_id('phpgw_group', 1, $user); $result = array(); $sql = 'SELECT acl_location, acl_rights FROM phpgw_acl '; $sql .= "WHERE acl_appname = 'resources' "; if($inc_groups) { $sql .= 'AND acl_account IN('. (int)$user; $sql .= ($groups ? ',' . implode(',', $groups) : ''); $sql .= ')'; } else { $sql .= 'AND acl_account ='. (int)$user; } $this->db->query($sql,__LINE__,__FILE__); while ($this->db->next_record()) { $result[$this->db->f('acl_location')] |= $this->db->f('acl_rights'); } return $result; } }