var $plugins = null; // Comma-separated list of enabled plugins.
var $config = null; // Comma-separated list of miscellaneous config options.
var $group = null; // Group name.
- var $custom_logo = 0; // Whether to use a custom logo for team.
+ var $custom_logo = 0; // Whether to use a custom logo for group.
var $lock_spec = null; // Cron specification for record locking.
var $workday_minutes = 480; // Number of work minutes in a regular day.
var $rights = array(); // An array of user rights such as 'track_own_time', etc.
return $this->can('administer_site');
}
- // isManager - determines whether current user is team manager.
+ // isManager - determines whether current user is group manager.
// This is a legacy function that we are getting rid of by replacing with rights check.
function isManager() {
return $this->can('export_data'); // By default this is assigned to managers but not co-managers.
// to this function and then remove it.
}
- // isCoManager - determines whether current user is team comanager.
+ // isCoManager - determines whether current user is group comanager.
// This is a legacy function that we are getting rid of by replacing with rights check.
function isCoManager() {
return ($this->can('manage_users') && !$this->can('export_data'));
// updateGroup updates group information with new data.
function updateGroup($fields) {
+ if (!($this->can('manage_basic_settings') ||
+ $this->can('manage_advanced_settings') ||
+ $this->can('manage_features'))) return false;
$mdb2 = getConnection();
return true;
}
+
+ // enablePlugin either enables or disables a specific plugin for group.
+ function enablePlugin($plugin, $enable = true)
+ {
+ if (!$this->can('manage_advanced_settings'))
+ return false; // Note: enablePlugin is currently only used on week_view.php.
+ // So, it's not really a plugin we are enabling, but rather week view display options.
+ // Therefore, a check for manage_advanced_settings, not manage_features.
+
+ $plugin_array = explode(',', $this->plugins);
+ if ($enable && !in_array($plugin, $plugin_array))
+ $plugin_array[] = $plugin; // Add plugin to array.
+
+ if (!$enable && in_array($plugin, $plugin_array)) {
+ $key = array_search($plugin, $plugin_array);
+ if ($key !== false)
+ unset($plugin_array[$key]); // Remove plugin from array.
+ }
+
+ $plugins = implode(',', $plugin_array);
+ if ($plugins != $this->plugins) {
+ if (!$this->updateGroup(array('plugins' => $plugins)))
+ return false;
+ $this->plugins = $plugins;
+ }
+
+ return true;
+ }
}