From ff1773d7a2e563c3ceedad5077446231688674cc Mon Sep 17 00:00:00 2001 From: Thibault Dockx <thibault.dockx@fusiondirectory.org> Date: Tue, 17 May 2022 11:17:13 +0100 Subject: [PATCH] :sparkles: Feat(Tasks) - Adds proper scheduling and user selection Add users selection for mail task as well as schedule within generic page of tasks creation. --- contrib/openldap/core-fd.schema | 17 +++++++++++++++-- plugins/addons/tasks/class_tasks.inc | 5 +++++ plugins/addons/tasks/class_tasksMail.inc | 12 +++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/contrib/openldap/core-fd.schema b/contrib/openldap/core-fd.schema index 8b0eb33f9..b3b3a29df 100644 --- a/contrib/openldap/core-fd.schema +++ b/contrib/openldap/core-fd.schema @@ -293,6 +293,19 @@ attributetype ( 1.3.6.1.4.1.38414.89.1.1 NAME 'fdTasksMailObject' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) +attributetype ( 1.3.6.1.4.1.38414.89.1.2 NAME 'fdTasksSchedule' + DESC 'Scheduling of the Task - required processed date' + EQUALITY generalizedTimeMatch + ORDERING generalizedTimeOrderingMatch + SINGLE-VALUE + SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) + +attributetype ( 1.3.6.1.4.1.38414.89.1.3 NAME 'fdTasksMailUsers' + DESC 'Fusion Directory - Tasks Mail Users Recipient' + EQUALITY caseExactMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 + SINGLE-VALUE ) + ##### Classes ##### objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.4 NAME 'gosaDepartment' SUP top AUXILIARY @@ -380,10 +393,10 @@ objectclass ( 1.3.6.1.4.1.38414.88.2.5 NAME 'fdMailTemplateInvitations' objectclass (1.3.6.1.4.1.38414.89.2.1 NAME 'fdTasks' DESC 'FusionDirectory - Tasks objects' MUST ( cn ) - MAY ( ) ) + MAY ( fdTasksSchedule ) ) objectclass (1.3.6.1.4.1.38414.89.2.2 NAME 'fdTasksMail' DESC 'FusionDirectory - Tasks objects Mail' SUP top AUXILIARY MUST ( cn ) - MAY ( fdTasksMailObject ) ) + MAY ( fdTasksMailObject $ fdTasksMailUsers) ) diff --git a/plugins/addons/tasks/class_tasks.inc b/plugins/addons/tasks/class_tasks.inc index adada3bc6..46c510688 100644 --- a/plugins/addons/tasks/class_tasks.inc +++ b/plugins/addons/tasks/class_tasks.inc @@ -51,6 +51,11 @@ class tasks extends simplePlugin _('Task Name'), _('Name for this task'), 'cn', TRUE ), + new GeneralizedTimeDateAttribute( + _('Task Schedule'), _('Date when this task is required to be processed'), + 'fdTasksSchedule', FALSE, + '' + ), ] ], ]; diff --git a/plugins/addons/tasks/class_tasksMail.inc b/plugins/addons/tasks/class_tasksMail.inc index 5ba92c35b..ffde94963 100644 --- a/plugins/addons/tasks/class_tasksMail.inc +++ b/plugins/addons/tasks/class_tasksMail.inc @@ -56,6 +56,16 @@ class tasksMail extends simplePlugin ), ] ], + 'UserGroupSelection' => [ + 'name' => _('Users and/or Groups'), + 'attrs' => [ + new GroupMembersAttribute( + '', _('Select Users/Groups'), + 'fdTasksMailUsers', TRUE, + [], 'cn' + ) + ] + ], ]; } @@ -64,7 +74,7 @@ class tasksMail extends simplePlugin global $config; parent::__construct($dn, $object, $parent, $mainTab); - //Search within LDAP and retrieve all mail objects + //Search within LDAP and retrieve all mail objects for current base. $ldap = $config->get_ldap_link(); $ldap->cd($config->current['BASE']); $ldap->search('(&(objectClass=fdMailTemplate))', ['cn']); -- GitLab