summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8020342)
raw | patch | inline | side by side (parent: 8020342)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 24 Sep 2009 09:18:11 +0000 (09:18 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 24 Sep 2009 09:18:11 +0000 (09:18 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@14337 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-plugins/opsi/admin/opsiLicenses/class_licenseGeneric.inc | [new file with mode: 0644] | patch | blob |
gosa-plugins/opsi/admin/opsiLicenses/class_licensePoolGeneric.inc | patch | blob | history | |
gosa-plugins/opsi/admin/opsiLicenses/class_opsiLicenseHandler.inc | patch | blob | history | |
gosa-plugins/opsi/admin/opsiLicenses/licensePoolGeneric.tpl | [new file with mode: 0644] | patch | blob |
diff --git a/gosa-plugins/opsi/admin/opsiLicenses/class_licenseGeneric.inc b/gosa-plugins/opsi/admin/opsiLicenses/class_licenseGeneric.inc
--- /dev/null
@@ -0,0 +1,166 @@
+<?php
+/*
+* This code is part of GOsa (http://www.gosa-project.org)
+* Copyright (C) 2003-2008 GONICUS GmbH
+*
+* ID: $$Id: class_opsiLicenses.inc 13520 2009-03-09 14:54:13Z hickert $$
+*
+* 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.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+
+class licenseGeneric extends plugin
+{
+
+ var $si = NULL;
+
+ function __construct(&$config,$dn, $license)
+ {
+ $this->config = $config;
+ $this->dn = $this->orig_dn = $dn;
+ $this->si = new opsiLicenceHandler($this->config);
+
+ // Extract pool name out of the fake dn.
+ $this->init();
+ }
+
+
+ function init()
+ {
+ // Load local Boot Products
+ $res = $this->si->get_local_products();
+ if($this->si->is_error()){
+ $this->init_successfull = FALSE;
+ return(FALSE);
+ }
+ }
+
+
+ function execute()
+ {
+ // Handle initialization failures.
+ if(isset($_POST['retry_init'])) $this->init();
+ if(!$this->init_successfull){
+ $smarty = get_smarty();
+ $smarty->assign("init_successfull", $this->init_successfull);
+ return($smarty->fetch(get_template_path('licenseGeneric.tpl',TRUE,dirname(__FILE__))));
+ }
+
+ $smarty = get_smarty();
+
+ // Assign ACls
+ $plInfo = $this->plInfo();
+ foreach($plInfo['plProvidedAcls'] as $name => $desc){
+ $smarty->assign("{$name}ACL",$this->getacl($name));
+ }
+ foreach($this->attributes as $attr){
+ $smarty->assign($attr,$this->$attr);
+ }
+
+ $smarty->assign("init_successfull", $this->init_successfull);
+ $smarty->assign("initially_was_account", $this->initially_was_account);
+ return($smarty->fetch(get_template_path('licenseGeneric.tpl',TRUE,dirname(__FILE__))));
+ }
+
+
+ /* Save HTML inputs
+ */
+ function save_object()
+ {
+ if(isset($_POST['opsiLicensesPosted'])){
+ plugin::save_object();
+ }
+ }
+
+
+ /* Check user input and return a list of 'invalid input' messages.
+ */
+ function check()
+ {
+ $message = plugin::check();
+ return($message);
+ }
+
+
+
+ /* Removes the object from the opsi database
+ */
+ function remove_from_parent()
+ {
+ echo "missing remove.";
+# $this->si->deletePool($this->orig_cn);
+# if($this->si->is_error()){
+# msg_dialog::display(_("Error"),msgPool::siError($this->si->get_error()),ERROR_DIALOG);
+# }else{
+#
+# // Trigger remove signal
+# $this->handle_post_events("remove");
+# }
+#
+# new log("remove","users/".get_class($this),$this->dn,array_keys($this->attrs),$this->si->get_error());
+ }
+
+
+ /* Saves object modifications
+ */
+ function save()
+ {
+
+ echo "missing save";
+# plugin::save();
+#
+# // Send modify/add events
+# $mode = "modify";
+# if($this->orig_dn == "new"){
+# $mode = "add";
+# }
+#
+# $this->si->createPool($this->cn, $this->description,$this->productIds,$this->softwareIds);#
+# if($this->si->is_error()){
+# msg_dialog::display(_("Error"),msgPool::siError($this->si->get_error()),ERROR_DIALOG);
+# }else{
+# $this->handle_post_events($mode);
+# }
+#
+# // Log action
+# if($mode == "modify"){
+# new log("modify","users/".get_class($this),$this->dn,array_keys($this->attrs),$this->si->get_error());
+# }else{
+# new log("create","users/".get_class($this),$this->dn,array_keys($this->attrs),$this->si->get_error());
+# }
+#
+# return 0;
+ }
+
+ static function plInfo()
+ {
+ return (array(
+ "plShortName" => _("Generic"),
+ "plDescription" => _("License generic"),
+ "plSelfModify" => FALSE,
+ "plDepends" => array(),
+ "plPriority" => 1,
+ "plSection" => array("administration"),
+ "plCategory" => array("opsi"),
+ "plProvidedAcls"=> array(
+ "cn" => _("Name"),
+ "description" => _("Description"))
+ ));
+ }
+}
+
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-plugins/opsi/admin/opsiLicenses/class_licensePoolGeneric.inc b/gosa-plugins/opsi/admin/opsiLicenses/class_licensePoolGeneric.inc
index e7ff0ae7b96da4a426712670789052bf01481833..5cdd41f562c9f704de541560e5dfb01a91cec1ea 100644 (file)
*/
-class poolGeneric extends plugin
+class licensePoolGeneric extends plugin
{
var $cn = "";
$this->productIds[] = $this->data['productId'][$i];
}
}
+
+ // Load Licences
+ $this->licenses = array();
+ if(isset($this->data['licenses'])){
+ $this->licenses = $this->data['licenses'];
+ }
$this->init_successfull = TRUE;
return;
}
if(!$this->init_successfull){
$smarty = get_smarty();
$smarty->assign("init_successfull", $this->init_successfull);
- return($smarty->fetch(get_template_path('licenseGeneric.tpl',TRUE,dirname(__FILE__))));
+ return($smarty->fetch(get_template_path('licensePoolGeneric.tpl',TRUE,dirname(__FILE__))));
}
$smarty = get_smarty();
foreach($this->attributes as $attr){
$smarty->assign($attr,$this->$attr);
}
-
$smarty->assign("init_successfull", $this->init_successfull);
$smarty->assign("availableProductIds", array_diff( $this->availableProductIds, $this->productIds));
$smarty->assign("productIds", $this->productIds);
$smarty->assign("softwareIds", $this->softwareIds);
$smarty->assign("licenses", $this->getLicenseList());
$smarty->assign("initially_was_account", $this->initially_was_account);
- return($smarty->fetch(get_template_path('licenseGeneric.tpl',TRUE,dirname(__FILE__))));
+ return($smarty->fetch(get_template_path('licensePoolGeneric.tpl',TRUE,dirname(__FILE__))));
}
{
$list = new divSelectBox("test");
$list->setHeight(100);
-
+ for($i=0 ; $i<$this->licenses['count'] ; $i++){
+ $license = $this->licenses[$i];
+
+ $keys = "";
+ foreach($license['LICENSEKEYS'] as $key_by_pool){
+ foreach($key_by_pool as $key){
+ $keys .= $key[0]['VALUE'].", ";
+ }
+ }
+
+ $link = "<input type='image' class='center' src='images/lists/edit.png' name='editLicense_{$i}'>";
+ $link.= "<input type='image' class='center' src='images/lists/trash.png' name='removeLicense_{$i}'>";
+ $f1 = array("string" => $license['SOFTWARELICENSEID'][0]['VALUE'], "attach" => "");
+ $f2 = array("string" => $license['LICENSETYPE'][0]['VALUE'], "attach" => "");
+ $f3 = array("string" => $license['EXPIRATIONDATE'][0]['VALUE'], "attach" => "");
+ $f4 = array("string" => $license['MAXINSTALLATIONS'][0]['VALUE'], "attach" => "");
+ $f5 = array("string" => rtrim($keys,", "));
+ $f6 = array("string" => $link, "attach" => "style='border-right: 0px; width:32px;'");
+
+ $list->addEntry(array($f1,$f2,$f3,$f4,$f5,$f6));
+ }
return($list->DrawList());
}
diff --git a/gosa-plugins/opsi/admin/opsiLicenses/class_opsiLicenseHandler.inc b/gosa-plugins/opsi/admin/opsiLicenses/class_opsiLicenseHandler.inc
index 032ade87c257b49351a0c938d3190705ecfa011e..30e983d38dcf446952ab8a7f1fc999d9d18cb6c6 100644 (file)
{
$data= array();
$data['licensePoolId'] = htmlentities($licensePoolId);
- $res = $this->send_data("gosa_opsi_getLicensePool_hash",$this->target,$data,TRUE);
- if(isset($res['XML'][0]['ANSWER_OPSI_GETLICENSEPOOL_HASH'])){
+ $res = $this->send_data("gosa_opsi_getPool",$this->target,$data,TRUE);
+ if(isset($res['XML'][0]['ANSWER_OPSI_GETPOOL'])){
$item = array();
foreach(array("LICENSEPOOLID" => "cn",
"DESCRIPTION" => "description",
+ "LICENSES" => "licenses",
"WINDOWSSOFTWAREIDS" => "softwareId",
"PRODUCTIDS" => "productId") as $source => $target){
if(isset($res['XML'][0][$source])){
-
$item[$target] = array('count' => 0);
+
+
foreach($res['XML'][0][$source] as $data){
- $item[$target][] = $data['VALUE'];
+ if(isset($data['VALUE'])){
+ $item[$target][] = $data['VALUE'];
+ }elseif(isset($data['HIT'])){
+ $item[$target] = array_merge($item[$target],$data['HIT']);
+ }
}
$item[$target]['count'] = count($item[$target]) -1 ;
}
diff --git a/gosa-plugins/opsi/admin/opsiLicenses/licensePoolGeneric.tpl b/gosa-plugins/opsi/admin/opsiLicenses/licensePoolGeneric.tpl
--- /dev/null
@@ -0,0 +1,98 @@
+{if !$init_successfull}
+<br>
+<b>{msgPool type=siError}</b><br>
+{t}Check if the GOsa support daemon (gosa-si) is running.{/t}
+<input type='submit' name='retry_init' value="{t}retry{/t}">
+<br>
+<br>
+{else}
+
+
+<table width="100%">
+ <tr>
+ <td style='vertical-align:top;'>
+ <!-- GENERIC -->
+ <h2>{t}Generic{/t}</h2>
+ <table>
+ <tr>
+ <td>{t}Name{/t}</td>
+ <td>
+ {if $initially_was_account}
+ <input type='text' value='{$cn}' disabled>
+ {else}
+{render acl=$cnACL}
+ <input type='text' value='{$cn}' name='cn'>
+{/render}
+ {/if}
+ </td>
+ </tr>
+ <tr>
+ <td>{t}Description{/t}</td>
+ <td>
+{render acl=$descriptionACL}
+ <input type='text' value='{$description}' name='description'>
+{/render}
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ <td style='width:50%; border-left: 1px solid #888888;padding: 5px;'>
+ <!-- LICENSES -->
+ <h2>{t}Licenses{/t}</h2>
+ <table style='width:100%;'>
+ <tr>
+ <td>
+ {$licenses}
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p class='separator'> </p>
+ </td>
+ </tr>
+ <tr>
+ <td style='width:50%'>
+ <!-- APPLICATIONS -->
+ <h2>{t}Applications{/t}</h2>
+ <table style='width:100%;'>
+ <tr>
+ <td>
+ <select name='productIds[]' multiple size="6" style="width:100%;">
+ {html_options options=$productIds}
+ </select><br>
+ <select name='availableProduct'>
+ {html_options options=$availableProductIds}
+ </select>
+ <input type='submit' name='addProduct' value='{msgPool type='addButton'}'>
+ <input type='submit' name='removeProduct' value='{msgPool type='delButton'}'>
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ <td style="border-left: 1px solid #888888; padding: 5px;">
+ <!-- SOFTWARE -->
+ <h2>{t}Windows software IDs{/t}</h2>
+ <table style='width:100%;'>
+ <tr>
+ <td>
+ <select name='softwareIds[]' multiple size="6" style="width:100%;">
+ {html_options options=$softwareIds}
+ </select>
+ <input type='text' name='newSoftwareId' value='' size=10>
+ <input type='submit' name='addSoftware' value='{msgPool type='addButton'}'>
+ <input type='submit' name='removeSoftware' value='{msgPool type='delButton'}'>
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<input name='opsiLicensesPosted' value='1' type='hidden'>
+{/if}