From 951f2b1a0808a0a409df1cb7f4a30913bb8c327b Mon Sep 17 00:00:00 2001 From: Nathan Gray Date: Thu, 14 Apr 2011 16:57:49 +0000 Subject: [PATCH] Attempt to set permissions for automatically created categories. --- resources/inc/class.bo_acl.inc.php | 3 +++ .../inc/class.resources_import_csv.inc.php | 22 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/resources/inc/class.bo_acl.inc.php b/resources/inc/class.bo_acl.inc.php index c3a11632f3..bf49b2236b 100755 --- a/resources/inc/class.bo_acl.inc.php +++ b/resources/inc/class.bo_acl.inc.php @@ -240,6 +240,9 @@ class bo_acl function set_rights($cat_id,$read,$write,$calread,$calbook,$admin) { + // Clear cache + unset(self::$permissions[$cat_id]); + $readcat = $read ? $read : array(); $writecat = $write ? $write : array(); $calreadcat = $calread ? $calread : array(); diff --git a/resources/inc/class.resources_import_csv.inc.php b/resources/inc/class.resources_import_csv.inc.php index f46811e2ac..2665a6b265 100644 --- a/resources/inc/class.resources_import_csv.inc.php +++ b/resources/inc/class.resources_import_csv.inc.php @@ -112,6 +112,9 @@ class resources_import_csv implements importexport_iface_import_plugin { // fetch the resource bo $this->bo = new resources_bo(); + // For adding ACLs + $this->acl_bo = CreateObject('resources.bo_acl',True); + // set FieldMapping. $import_csv->mapping = $_definition->plugin_options['field_mapping']; @@ -136,7 +139,8 @@ class resources_import_csv implements importexport_iface_import_plugin { $types = importexport_export_csv::$types; $types['select-bool'] = array('bookable'); $lookups = array(); - + $start_time = time(); + while ( $record = $import_csv->get_record() ) { $success = false; @@ -146,6 +150,22 @@ class resources_import_csv implements importexport_iface_import_plugin { // Automatically handle human friendly values importexport_import_csv::convert($record, $types, 'resources', $lookups); + // Check for a new category, it needs permissions set + $category = $GLOBALS['egw']->categories->read($record['cat_id']); + + if($category['last_mod'] >= $start_time) { + // New category. Give read & write permissions to the current user's default group + $this->acl_bo->set_rights($record['cat_id'], + array($GLOBALS['egw_info']['user']['account_primary_group']), + array($GLOBALS['egw_info']['user']['account_primary_group']), + array(), + array(), + array() + ); + // Refresh ACL + //$GLOBALS['egw']->acl->read_repository(); + } + if ( $_definition->plugin_options['conditions'] ) { foreach ( $_definition->plugin_options['conditions'] as $condition ) { $results = array();