diff --git a/contrib/openldap/core-fd.schema b/contrib/openldap/core-fd.schema index 0f41946cf156c5c98bea7baa0159d5b69b25f160..e83725c071ccc5569fa2c83698c687687bfd8ebb 100644 --- a/contrib/openldap/core-fd.schema +++ b/contrib/openldap/core-fd.schema @@ -63,6 +63,36 @@ attributetype ( 1.3.6.1.4.1.38414.62.1.4 NAME 'fdSnapshotObjectType' SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) +# Subscriptions + +attributetype ( 1.3.6.1.4.1.38414.62.11.1 NAME 'fdSubscriptionStartDate' + DESC 'FusionDirectory - Subscription Starting Date' + EQUALITY generalizedTimeMatch + ORDERING generalizedTimeOrderingMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.38414.62.11.2 NAME 'fdSubscriptionEndDate' + DESC 'FusionDirectory - Subscription End Date' + EQUALITY generalizedTimeMatch + ORDERING generalizedTimeOrderingMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.38414.62.11.3 NAME 'fdSubscriptionType' + DESC 'FusionDirectory - Subscription type' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.38414.62.11.4 NAME 'fdSubscriptionContractId' + DESC 'FusionDirectory - Subscription contract ID' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) + +attributetype ( 1.3.6.1.4.1.38414.62.11.5 NAME 'fdSubscriptionName' + DESC 'FusionDirectory - Subscription client name' + SUP name ) + # Classes objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.4 NAME 'gosaDepartment' SUP top AUXILIARY @@ -95,3 +125,8 @@ objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.19 NAME 'gosaSnapshotObject' objectclass ( 1.3.6.1.4.1.38414.62.2.1 NAME 'fdLockEntry' SUP top STRUCTURAL DESC 'FusionDirectory - Class for FD locking' MUST ( fdUserDn $ fdObjectDn $ cn $ fdLockTimestamp )) + +objectclass ( 1.3.6.1.4.1.38414.62.2.2 NAME 'fdSubscriptionInformation' SUP top STRUCTURAL + DESC 'FusionDirectory - Information about current subscription' + MUST ( cn ) + MAY ( fdSubscriptionStartDate $ fdSubscriptionEndDate $ fdSubscriptionType $ fdSubscriptionContractId $ fdSubscriptionName )) diff --git a/plugins/addons/subscription/class_subscriptionInfo.inc b/plugins/addons/subscription/class_subscriptionInfo.inc index 8fb8dfcfa59ad0c460c000fb6ef939abacbd2b1c..723fd2f7bc6c62d48e20138dc5fe9aded2ee8e10 100644 --- a/plugins/addons/subscription/class_subscriptionInfo.inc +++ b/plugins/addons/subscription/class_subscriptionInfo.inc @@ -20,7 +20,14 @@ class subscriptionInfo extends simplePlugin { - public static $subscriptionAttributes = ['fdSubscriptionType', 'fdSubscriptionContractId', 'fdSubscriptionStartDate', 'fdSubscriptionEndDate']; + /* ldap attribute => ini variable */ + public static $subscriptionAttributes = [ + 'fdSubscriptionName' => 'Name', + 'fdSubscriptionType' => 'Type', + 'fdSubscriptionContractId' => 'Contract', + 'fdSubscriptionStartDate' => 'StartDate', + 'fdSubscriptionEndDate' => 'EndDate', + ]; public static function plInfo (): array { @@ -29,7 +36,7 @@ class subscriptionInfo extends simplePlugin 'plTitle' => _('Subscription information'), 'plDescription' => _('Information about your FusionDirectory subscription'), 'plIcon' => 'geticon.php?context=applications&icon=fusiondirectory&size=48', - 'plObjectClass' => ['fdSubscriptionInfo'], + 'plObjectClass' => ['fdSubscriptionInformation'], 'plObjectType' => [ 'subscriptionInfo' => [ 'name' => _('Subscription information'), @@ -51,6 +58,10 @@ class subscriptionInfo extends simplePlugin new HiddenAttribute( 'cn', TRUE, 'subscription' ), + new DisplayLDAPAttribute( + _('Name'), _('Subscription name'), + 'fdSubscriptionName', TRUE + ), new DisplayLDAPAttribute( _('Type'), _('Subscription type'), 'fdSubscriptionType', TRUE @@ -112,8 +123,8 @@ class subscriptionInfo extends simplePlugin $error->display(); } else { /* Import data and save it to the LDAP */ - foreach (static::$subscriptionAttributes as $attr) { - $this->attributesAccess[$attr]->setValue($data[$attr] ?? ''); + foreach (static::$subscriptionAttributes as $attr => $iniVar) { + $this->attributesAccess[$attr]->setValue($data[$iniVar] ?? ''); } $errors = $this->parent->save(); msg_dialog::displayChecks($errors);