Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
fusiondirectory
fusiondirectory-plugins
Commits
28a4595a
Unverified
Commit
28a4595a
authored
3 years ago
by
Côme Chilliet
Browse files
Options
Download
Patches
Plain Diff
fix(systems) Fix setting interfaces through webservice
issue
#6143
parent
78b33dee
dev
6231-give-the-ability-to-the-webservice-to-notice-if-an-attribute-is-monovalued-or-multivalued
6237-add-requiredattrs-array-to-the-webservice-informations
6245-adapt-the-ci-to-the-reorganisation-of-the-dev-tools-and-fixing-the-trigger-downstream-pipelines
6250-supann-configuration-backend-requires-account-life-cycle-section
6280-plugins-update-plugins-to-take-into-consideration-the-new-directory-of-core-structure
6310-tasks-reminder-error-in-the-schema-duplicate-attribute-id
6311-put-the-version-1-5-in-all-yaml-for-fusiondirectory-1-5
6322-template-issue-when-creating-a-template-with-empty-password-error-message-should-not-be-seen-2
6332-zimbra-allows-update-of-data-for-unknown-domain-name-for-specific-individual-aliases
6337-webservice-issue-with-archiving-post-request-not-responding-but-successfully-archiving-user
6341-supann-extract-resources-states-sub-states-from-backend-configuration-to-their-own-objects
master
fusiondirectory-1.5
fusiondirectory-1.4
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
systems/admin/systems/interfaces/class_InterfacesAttribute.inc
+2
-1
...ms/admin/systems/interfaces/class_InterfacesAttribute.inc
systems/admin/systems/interfaces/class_interfacesManagement.inc
+23
-7
...s/admin/systems/interfaces/class_interfacesManagement.inc
with
25 additions
and
8 deletions
+25
-8
systems/admin/systems/interfaces/class_InterfacesAttribute.inc
+
2
−
1
View file @
28a4595a
...
...
@@ -24,7 +24,7 @@
*/
class
InterfacesAttribute
extends
DialogOrderedArrayAttribute
{
function
__construct
(
string
$label
,
string
$description
,
string
$ldapName
,
bool
$required
=
FALSE
,
$defaultValue
=
''
,
string
$acl
=
''
)
function
__construct
(
string
$label
,
string
$description
,
string
$ldapName
,
bool
$required
=
FALSE
,
$defaultValue
=
[]
,
string
$acl
=
''
)
{
\
FusionDirectory\Core\SimplePlugin\Attribute
::
__construct
(
$label
,
$description
,
$ldapName
,
$required
,
$defaultValue
,
$acl
);
$this
->
setInLdap
(
FALSE
);
...
...
@@ -44,6 +44,7 @@ class InterfacesAttribute extends DialogOrderedArrayAttribute
function
setValue
(
$value
)
{
$this
->
checkValue
(
$value
);
return
$this
->
plugin
->
setNetworkInterfaces
(
$value
);
}
...
...
This diff is collapsed.
Click to expand it.
systems/admin/systems/interfaces/class_interfacesManagement.inc
+
23
−
7
View file @
28a4595a
...
...
@@ -423,7 +423,7 @@ class interfacesManagement extends management implements SimpleTab
return
[];
}
public
function
setNetworkInterfaces
(
$interfaces
=
NULL
)
public
function
setNetworkInterfaces
(
array
$interfaces
=
NULL
)
{
if
(
$interfaces
!==
NULL
)
{
$this
->
filter
->
loadTemplateValues
(
$interfaces
);
...
...
@@ -434,24 +434,40 @@ class interfacesManagement extends management implements SimpleTab
$this
->
listing
->
setSortColumn
(
0
,
FALSE
);
$entryIterator
=
$this
->
listing
->
getIterator
();
ksort
(
$this
->
interfaces
);
reset
(
$this
->
interfaces
);
/* Build an index of interfaces cn */
$interfacesCnIndex
=
array_flip
(
array_filter
(
array_map
(
function
(
$interface
)
{
if
(
$interface
!==
NULL
)
{
return
$interface
->
getBaseObject
()
->
cn
;
}
else
{
return
NULL
;
}
},
$this
->
interfaces
)));
foreach
(
$entryIterator
as
$entry
)
{
$key
=
key
(
$this
->
interfaces
);
if
(
$key
===
NULL
)
{
if
(
isset
(
$interfacesCnIndex
[
$entry
[
'cn'
][
0
]]))
{
$key
=
$interfacesCnIndex
[
$entry
[
'cn'
][
0
]];
unset
(
$interfacesCnIndex
[
$entry
[
'cn'
][
0
]]);
}
else
{
if
(
$this
->
is_template
)
{
$this
->
interfaces
[
$entry
->
dn
]
=
objects
::
createTemplate
(
$entry
->
getTemplatedType
());
}
else
{
$this
->
interfaces
[
$entry
->
dn
]
=
objects
::
create
(
$entry
->
getTemplatedType
());
}
$key
=
$entry
->
dn
;
}
else
{
next
(
$this
->
interfaces
);
}
/* Push values from cache to the object */
$this
->
filter
->
resetFromCache
(
$entry
->
dn
,
$this
->
interfaces
[
$key
]);
$this
->
interfaces
[
$key
]
->
getBaseObject
()
->
base
=
$this
->
getInterfacesBase
();
}
/* Set to NULL the rest of the interfaces array to delete the unused objects upon save */
foreach
(
$interfacesCnIndex
as
$key
)
{
$this
->
interfaces
[
$key
]
=
NULL
;
}
/* Fill ip/mac fields of main tab */
$this
->
update
();
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets