diff --git a/gosa-plugins/opsi/admin/opsiLicenses/class_licenseGeneric.inc b/gosa-plugins/opsi/admin/opsiLicenses/class_licenseGeneric.inc
index b2cc4d6e1c6dee04ee35aa4eb5450af89b315eb4..775adf0a6c9cdce1ebf0f58df3e2ecf496877269 100644 (file)
class licenseGeneric extends plugin
{
+ // License attributes
var $si = NULL;
var $data = array();
var $cn = "";
var $description = "";
var $partner = "";
+ // Date attributes
var $conclusionDate = "";
var $expirationDate = "";
var $notificationDate = "";
+ // License model related attribues
var $licenseModel = "";
var $licenseKey = array();
var $orig_licenseModel = "";
"notificationDate","licenseModel","licenseKey","maximumInstallations",
"licensePoolId", "usedByHost","boundToHost");
- function __construct(&$config, $license, $hosts = array())
+ function __construct(&$config, $dn, $license, $hosts = array())
{
+
$this->config = $config;
$this->data = $license;
+ $this->dn = $dn;
$this->si = new opsiLicenceHandler($this->config);
$this->opsiHosts = $hosts;
function init()
{
+ // Extract license information out of the license object ($this->data)
$this->boundToHost = array('0'=>"");
$this->usedByHost = array('0'=>"");
$this->licenseKey = array('0'=>"");
foreach($this->attributes as $attr){
$this->$attr = $this->data[$attr];
}
+
+ // Fix dates
+ foreach(array("notificationDate","expirationDate","conclusionDate") as $date) {
+ if(!empty($this->$date)){
+ $this->$date = date("d.m.Y",strtotime($this->$date));
+ }
+ }
}
$this->orig_cn = $this->cn;
function execute()
{
+ plugin::execute();
// Handle initialization failures.
if(isset($_POST['retry_init'])) $this->init();
if(!$this->init_successfull){
$smarty = get_smarty();
- // Assign ACls
+ // Assign attributes and its ACls
$plInfo = $this->plInfo();
foreach($plInfo['plProvidedAcls'] as $name => $desc){
$smarty->assign("{$name}ACL",$this->getacl($name));
$smarty->assign($attr,$this->$attr);
}
+ // Assign list of available license models
$smarty->assign("licenseModels",array(
"RETAIL" => _("Retail"),
"OEM"=>_("OEM"),
- "VOLUME" => _("Volume"),
- "CONCURRENT" => _("Concurrent")));
-
+ "VOLUME" => _("Volume")));
+ $smarty->assign("usePrototype", "true");
$smarty->assign("init_successfull", $this->init_successfull);
$smarty->assign("initially_was_account", $this->initially_was_account);
$smarty->assign("hosts", $this->getHosts());
+ $ui = get_userinfo();
+ $acl_base = $this->dn;
+ if($acl_base == "new"){
+ $acl_base = $this->config->current['BASE'];
+ }
+ $smarty->assign("licenseACL", $ui->get_permissions($acl_base,"opsi/licensePoolGeneric","licenses"));
+ $smarty->assign("writeable", preg_match("/w/",$ui->get_permissions($acl_base,"opsi/licensePoolGeneric","licenses")));
$smarty->assign("notUsedHosts", array_diff($this->getHosts(), $this->usedByHost));
$smarty->assign("boundToHost", $this->boundToHost[0]);
$smarty->assign("licenseKey", $this->licenseKey[0]);
+
+ // w3c fix, do not show empty options.
+ $tmp = $this->usedByHost;
+ if(isset($tmp[0]) && empty($tmp[0])) unset($tmp[0]);
+ $smarty->assign('usedByHost', $tmp);
+
+ foreach(array("notificationDate","expirationDate","conclusionDate") as $date) {
+ $smarty->assign($date."Writeable", $this->acl_is_writeable($date));
+ }
+
return($smarty->fetch(get_template_path('licenseGeneric.tpl',TRUE,dirname(__FILE__))));
}
// Very simple date input checks
if(!empty($this->expirationDate) &&
- !preg_match("/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/",$this->expirationDate)){
- $message[] = msgPool::invalid(_("Expiration date"),$this->expirationDate,"","2009-02-23");
+ !preg_match("/^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/",$this->expirationDate)){
+ $message[] = msgPool::invalid(_("Expiration date"),$this->expirationDate,"","23.02.2009");
}
if(!empty($this->conclusionDate) &&
- !preg_match("/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/",$this->conclusionDate)){
- $message[] = msgPool::invalid(_("Expiration date"),$this->conclusionDate,"","2009-02-23");
+ !preg_match("/^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/",$this->conclusionDate)){
+ $message[] = msgPool::invalid(_("Expiration date"),$this->conclusionDate,"","23.02.2009");
}
if(!empty($this->notificationDate) &&
- !preg_match("/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/",$this->notificationDate)){
- $message[] = msgPool::invalid(_("Expiration date"),$this->notificationDate,"","2009-02-23");
+ !preg_match("/^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/",$this->notificationDate)){
+ $message[] = msgPool::invalid(_("Expiration date"),$this->notificationDate,"","23.02.2009");
}
if(empty($this->cn)){
foreach($this->attributes as $target){
$data[$target] = $this->$target;
}
+
+ // Return opsi like dates.
+ foreach(array("notificationDate","expirationDate","conclusionDate") as $date) {
+ if(!empty($this->$date)){
+ $data[$date] = date("Y-m-d",strtotime($this->$date));
+ }
+ }
+
return($data);
}
"plDescription" => _("License generic"),
"plSelfModify" => FALSE,
"plDepends" => array(),
- "plPriority" => 1,
+ "plPriority" => 8,
"plSection" => array("administration"),
"plCategory" => array("opsi"),
"plProvidedAcls"=> array(
- "cn" => _("Name"),
- "description" => _("Description"))
+ "cn" => _("Name"),
+ "partner" => _("Partner"),
+ "licenseKey" => _("License key"),
+ "licenseModel" => _("License model"),
+ "licensePoolId" => _("License pool id"),
+ "maximumInstallations"=> _("Maximum installations"),
+ "boundToHost" => _("Reserved for host"),
+ "usedByHost" => _("Usage"),
+ "notificationDate" => _("Notification date"),
+ "conclusionDate" => _("Conclusion date"),
+ "expirationDate" => _("Expiration date"),
+ "description" => _("Description"))
));
}
}