diff --git a/phpgwapi/inc/class.applications.inc.php b/phpgwapi/inc/class.applications.inc.php index f5e4d028ad..148505a888 100755 --- a/phpgwapi/inc/class.applications.inc.php +++ b/phpgwapi/inc/class.applications.inc.php @@ -21,203 +21,260 @@ \**************************************************************************/ /* $Id$ */ - /*! - @class applicatons - @abstract functions for managing and installing apps - @discussion Author: skeeter - */ - class applications - { - var $account_id; - var $data = Array(); - var $db; + /*! + @class applicatons + @abstract functions for managing and installing apps + @discussion Author: skeeter + */ + class applications + { + var $account_id; + var $data = Array(); + var $db; - /**************************************************************************\ - * Standard constructor for setting $this->account_id * - \**************************************************************************/ - /*! - @function applications - @abstract standard constructor for setting $this->account_id - @param $account_id account id - */ - function applications($account_id = '') - { - global $phpgw, $phpgw_info; - $this->db = $phpgw->db; - $this->account_id = get_account_id($account_id); - } + /**************************************************************************\ + * Standard constructor for setting $this->account_id * + \**************************************************************************/ + + /*! + @function applications + @abstract standard constructor for setting $this->account_id + @param $account_id account id + */ + function applications($account_id = '') + { + global $phpgw, $phpgw_info; + $this->db = $phpgw->db; + $this->account_id = get_account_id($account_id); + } + + /**************************************************************************\ + * These are the standard $this->account_id specific functions * + \**************************************************************************/ - /**************************************************************************\ - * These are the standard $this->account_id specific functions * - \**************************************************************************/ /*! @function read_repository @abstract read from repository @discussion private should only be called from withing this class */ - function read_repository() - { - global $phpgw, $phpgw_info; - if (gettype($phpgw_info['apps']) != 'array') { - $this->read_installed_apps(); - } - $this->data = Array(); - if($this->account_id == False) { return False; } - $apps = $phpgw->acl->get_user_applications($this->account_id); - reset($phpgw_info['apps']); - while ($app = each($phpgw_info['apps'])) { -// $check = $phpgw->acl->check('run',1,$app[0]); - $check = $apps[$app[0]]; - if ($check) { - $this->data[$app[0]] = array('title' => $phpgw_info['apps'][$app[0]]['title'], 'name' => $app[0], 'enabled' => True, 'status' => $phpgw_info['apps'][$app[0]]['status']); - } - } - reset($this->data); - return $this->data; - } + function read_repository() + { + global $phpgw, $phpgw_info; + if (gettype($phpgw_info['apps']) != 'array') + { + $this->read_installed_apps(); + } + $this->data = Array(); + if($this->account_id == False) { return False; } + $apps = $phpgw->acl->get_user_applications($this->account_id); + reset($phpgw_info['apps']); + while ($app = each($phpgw_info['apps'])) + { +// $check = $phpgw->acl->check('run',1,$app[0]); + $check = $apps[$app[0]]; + if ($check) + { + $this->data[$app[0]] = array( + 'title' => $phpgw_info['apps'][$app[0]]['title'], + 'name' => $app[0], + 'enabled' => True, + 'status' => $phpgw_info['apps'][$app[0]]['status'] + ); + } + } + reset($this->data); + return $this->data; + } /*! @function read() @abstract read from the repository @discussion pubic function that is used to determine what apps a user has rights to */ - function read() { - if (count($this->data) == 0){ $this->read_repository(); } - reset($this->data); - return $this->data; - } + function read() + { + if (count($this->data) == 0){ $this->read_repository(); } + reset($this->data); + return $this->data; + } /*! @function add @abstract add an app to a user profile @discussion @param $apps array containing apps to add for a user */ - function add($apps) { - global $phpgw_info; - if(gettype($apps) == 'array') { - while($app = each($apps)) { - $this->data[$app[1]] = array('title' => $phpgw_info['apps'][$app[1]]['title'], 'name' => $app[1], 'enabled' => True, 'status' => $phpgw_info['apps'][$app[1]]['status']); - } - } elseif(gettype($apps)) { - $this->data[$apps] = array('title' => $phpgw_info['apps'][$apps]['title'], 'name' => $apps, 'enabled' => True, 'status' => $phpgw_info['apps'][$apps]['status']); - } - reset($this->data); - return $this->data; - } + function add($apps) + { + global $phpgw_info; + if(gettype($apps) == 'array') + { + while($app = each($apps)) + { + $this->data[$app[1]] = array( + 'title' => $phpgw_info['apps'][$app[1]]['title'], + 'name' => $app[1], + 'enabled' => True, + 'status' => $phpgw_info['apps'][$app[1]]['status'] + ); + } + } + elseif(gettype($apps)) + { + $this->data[$apps] = array( + 'title' => $phpgw_info['apps'][$apps]['title'], + 'name' => $apps, + 'enabled' => True, + 'status' => $phpgw_info['apps'][$apps]['status'] + ); + } + reset($this->data); + return $this->data; + } /*! @function delete @abstract delete an app from a user profile @discussion @param $appname appname to remove */ - function delete($appname) { - if($this->data[$appname]) { - unset($this->data[$appname]); - } - reset($this->data); - return $this->data; - } + function delete($appname) + { + if($this->data[$appname]) + { + unset($this->data[$appname]); + } + reset($this->data); + return $this->data; + } /*! @function update_data @abstract update the array(?) @discussion @param $data update the repository array(?) */ - function update_data($data) { - reset($data); - $this->data = Array(); - $this->data = $data; - reset($this->data); - return $this->data; - } + function update_data($data) + { + reset($data); + $this->data = Array(); + $this->data = $data; + reset($this->data); + return $this->data; + } /*! @function save_repository() @abstract save the repository @discussion - */ - function save_repository(){ - global $phpgw; - $num_rows = $phpgw->acl->delete_repository("%%", 'run', $this->account_id); - reset($this->data); - while($app = each($this->data)) { - if(!$this->is_system_enabled($app[0])) { continue; } - $phpgw->acl->add_repository($app[0],'run',$this->account_id,1); - } - reset($this->data); - return $this->data; - } + */ + function save_repository() + { + global $phpgw; + $num_rows = $phpgw->acl->delete_repository("%%", 'run', $this->account_id); + reset($this->data); + while($app = each($this->data)) + { + if(!$this->is_system_enabled($app[0])) { continue; } + $phpgw->acl->add_repository($app[0],'run',$this->account_id,1); + } + reset($this->data); + return $this->data; + } - /**************************************************************************\ - * These are the non-standard $this->account_id specific functions * - \**************************************************************************/ + /**************************************************************************\ + * These are the non-standard $this->account_id specific functions * + \**************************************************************************/ - function app_perms() - { - global $phpgw, $phpgw_info; - if (count($this->data) == 0) { - $this->read_repository(); - } - @reset($this->data); - while (list ($key) = each ($this->data)) { - $app[] = $this->data[$key]['name']; - } - return $app; - } + function app_perms() + { + global $phpgw, $phpgw_info; + if (count($this->data) == 0) + { + $this->read_repository(); + } + @reset($this->data); + while (list ($key) = each ($this->data)) + { + $app[] = $this->data[$key]['name']; + } + return $app; + } - function read_account_specific() { - global $phpgw, $phpgw_info; - if (gettype($phpgw_info['apps']) != 'array') { - $this->read_installed_apps(); - } - $app_list = $phpgw->acl->get_app_list_for_id('run',1,$this->account_id); - if(!$app_list) { - reset($this->data); - return $this->data; - } - @reset($app_list); - while ($app = each($app_list)) { - if ($this->is_system_enabled($app[1])) { - $this->data[$app[1]] = array('title' => $phpgw_info['apps'][$app[1]]['title'], 'name' => $app[1], 'enabled' => True, 'status' => $phpgw_info['apps'][$app[1]]['status']); - } - } - reset($this->data); - return $this->data; - } + function read_account_specific() + { + global $phpgw, $phpgw_info; + if (gettype($phpgw_info['apps']) != 'array') + { + $this->read_installed_apps(); + } + $app_list = $phpgw->acl->get_app_list_for_id('run',1,$this->account_id); + if(!$app_list) + { + reset($this->data); + return $this->data; + } + @reset($app_list); + while ($app = each($app_list)) + { + if ($this->is_system_enabled($app[1])) + { + $this->data[$app[1]] = array( + 'title' => $phpgw_info['apps'][$app[1]]['title'], + 'name' => $app[1], + 'enabled' => True, + 'status' => $phpgw_info['apps'][$app[1]]['status'] + ); + } + } + reset($this->data); + return $this->data; + } + + /**************************************************************************\ + * These are the generic functions. Not specific to $this->account_id * + \**************************************************************************/ - /**************************************************************************\ - * These are the generic functions. Not specific to $this->account_id * - \**************************************************************************/ /*! @function read_installed_apps() @abstract populate array with a list of installed apps */ - function read_installed_apps(){ - global $phpgw_info; - $this->db->query("select * from phpgw_applications where app_enabled != '0' order by app_order asc",__LINE__,__FILE__); - if($this->db->num_rows()) { - while ($this->db->next_record()) { - $name = $this->db->f('app_name'); - $title = $this->db->f('app_title'); - $status = $this->db->f('app_enabled'); - $phpgw_info['apps'][$name] = array('title' => $title, 'name' => $name, 'enabled' => True, 'status' => $status); - } - } - } + function read_installed_apps() + { + global $phpgw_info; + $this->db->query("select * from phpgw_applications where app_enabled != '0' order by app_order asc",__LINE__,__FILE__); + if($this->db->num_rows()) + { + while ($this->db->next_record()) + { + $name = $this->db->f('app_name'); + $title = $this->db->f('app_title'); + $status = $this->db->f('app_enabled'); + $phpgw_info['apps'][$name] = array( + 'title' => $title, + 'name' => $name, + 'enabled' => True, + 'status' => $status + ); + } + } + } /*! @function is_system_enabled @abstract check if an app is enabled @param $appname name of the app to check for */ - function is_system_enabled($appname){ - global $phpgw_info; - if(gettype($phpgw_info['apps']) != 'array') { - $this->read_installed_apps(); - } - if ($phpgw_info['apps'][$appname]['enabled']) { - return True; - }else{ - return False; - } - } - } + function is_system_enabled($appname) + { + global $phpgw_info; + if(gettype($phpgw_info['apps']) != 'array') + { + $this->read_installed_apps(); + } + if ($phpgw_info['apps'][$appname]['enabled']) + { + return True; + } + else + { + return False; + } + } + } ?>