X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Fplugins%2Fadmin%2Fgroups%2Fclass_groupManagement.inc;h=7e600b6bbb9ca3b5f23ef022d6bcfa7606bfd45c;hb=77208c980a6f8765532aa592fb3e467f731393cd;hp=0c3107aa2b27c75401aa25b84cedbdecf46c8b24;hpb=b048a74ec3046ecf8e16388d968a7fe09e300d18;p=gosa.git diff --git a/gosa-core/plugins/admin/groups/class_groupManagement.inc b/gosa-core/plugins/admin/groups/class_groupManagement.inc index 0c3107aa2..7e600b6bb 100644 --- a/gosa-core/plugins/admin/groups/class_groupManagement.inc +++ b/gosa-core/plugins/admin/groups/class_groupManagement.inc @@ -23,7 +23,7 @@ class groupManagement extends management { var $plHeadline = "Groups"; - var $plDescription = "Group administration"; + var $plDescription = "Manage aspects of groups like members, posix, desktop, samba and mail settings"; var $plIcon = "plugins/groups/images/plugin.png"; // Tab definition @@ -64,23 +64,85 @@ class groupManagement extends management parent::__construct($config, $ui, "groups", $headpage); $this->registerAction("edit_group","editEntry"); + $this->registerAction("edit_group_","editEntry"); + $this->registerAction("edit_group__","editEntry"); $this->registerAction("edit_environment","editEntry"); $this->registerAction("edit_appgroup","editEntry"); $this->registerAction("edit_mailgroup","editEntry"); + + $this->registerAction("sendMessage", "sendMessage"); + $this->registerAction("saveEventDialog", "saveEventDialog"); + $this->registerAction("abortEventDialog", "closeDialogs"); } - function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="") + // Inject user actions + function detectPostActions() + { + $action = management::detectPostActions(); + if(isset($_POST['save_event_dialog'])) $action['action'] = "saveEventDialog"; + if(isset($_POST['abort_event_dialog'])) $action['action'] = "abortEventDialog"; + return($action); + } + + + /*! \brief Sends a message to a set of users using gosa-si events. + */ + function saveEventDialog() + { + $this->dialogObject->save_object(); + $msgs = $this->dialogObject->check(); + if(count($msgs)){ + msg_dialog::displayChecks($msgs); + }else{ + $o_queue = new gosaSupportDaemon(); + $o_queue->append($this->dialogObject); + if($o_queue->is_error()){ + msg_dialog::display(_("Infrastructure error"), msgPool::siError($o_queue->get_error()),ERROR_DIALOG); + } + $this->closeDialogs(); + } + } + + + /*! \brief Sends a message to a set of users using gosa-si events. + */ + function sendMessage($action="",$target=array(),$all=array()) { - management::editEntry($action,$target); + $uids = array(); + $ldap = $this->config->get_ldap_link(); + $ldap->cd($this->config->current['BASE']); + foreach($target as $dn){ + $ldap->cat($dn,array('cn')); + if($ldap->count()){ + $attrs = $ldap->fetch(); + $uids[] = $attrs['cn'][0]; + } + } + if(count($uids)){ + $events = DaemonEvent::get_event_types(USER_EVENT); + $event = "DaemonEvent_notify"; + if(isset($events['BY_CLASS'][$event])){ + $type = $events['BY_CLASS'][$event]; + $this->dialogObject = new $type['CLASS_NAME']($this->config); + $this->dialogObject->add_groups($uids); + $this->dialogObject->set_type(SCHEDULED_EVENT); + } + } + } + + function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="") + { + $str = management::editEntry($action,$target); if(preg_match("/^edit_/",$action)){ - $tab = preg_replace("/^edit_/","",$action); + $tab = preg_replace("/^edit_([^_]*).*$/","\\1",$action); if(isset($this->tabObject->by_object[$tab])){ $this->tabObject->current = $tab; }else{ trigger_error("Unknown tab: ".$tab); } } + if(!empty($str)) return($str); } static function filterProperties($row, $classes) @@ -90,7 +152,7 @@ class groupManagement extends management $map = array( "posixGroup" => array( - "image" => "plugins/groups/images/groups.png", + "image" => "plugins/groups/images/select_group.png", "plugin" => "group", "alt" => _("Posix"), "title" => _("Edit posix properties") @@ -107,7 +169,7 @@ class groupManagement extends management "sambaGroupMapping" => array( "image" => "plugins/groups/images/samba.png", - "plugin" => "group", + "plugin" => "group_", "alt" => _("Samba"), "title" => _("Edit samba properties") ), @@ -115,11 +177,19 @@ class groupManagement extends management "goFonPickupGroup" => array( "image" => "plugins/groups/images/asterisk.png", - "plugin" => "group", + "plugin" => "group__", "alt" => _("Phone"), "title" => _("Edit phone properties") ), + "gotoMenuGroup" => + array( + "image" => "plugins/groups/images/menu.png", + "plugin" => "appgroup", + "alt" => _("Menu"), + "title" => _("Edit start menu properties") + ), + "gotoEnvironment" => array( "image" => "plugins/groups/images/environment.png", @@ -133,11 +203,9 @@ class groupManagement extends management // Walk thru map foreach ($map as $oc => $properties) { if (in_array_ics($oc, $classes)) { - $result.=""; + $result.= image($properties['image'], 'listing_edit_'.$properties['plugin'].'_'.$row, $properties['title']); } else { - $result.=" "; + $result.= image('images/empty.png'); } } return $result;