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
Commits
56e1fc72
Unverified
Commit
56e1fc72
authored
4 years ago
by
Côme Chilliet
Browse files
Options
Download
Patches
Plain Diff
fix(subscription) Add validation of ini file section and attributes
issue #6152
parent
56e25c8e
dev
6342-update-the-locales-for-1-5
6344-template-issue-when-creating-a-template-with-empty-password-error-message-should-not-be-seen
6365-core-locking-mechanism-is-not-changing-the-mail-ressource-it-does-lock-the-mail-account
6365-core-when-lock-mechanism-is-trigger-the-user-should-not-be-editable-if-not-unlock
6378-orcid-test-method-is-wrong-and-break-orcid-saving
core-php8
master
fusiondirectory-1.5
fusiondirectory-1.4
fusiondirectory-1.3.1
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
plugins/addons/subscription/class_subscriptionInfo.inc
+37
-10
plugins/addons/subscription/class_subscriptionInfo.inc
with
37 additions
and
10 deletions
+37
-10
plugins/addons/subscription/class_subscriptionInfo.inc
+
37
−
10
View file @
56e1fc72
...
...
@@ -32,6 +32,8 @@ class subscriptionInfo extends simplePlugin
'fdSubscriptionEndDate'
=>
'EndDate'
,
];
public
static
$sectionName
=
'FusionDirectory Subscription'
;
public
static
function
plInfo
()
{
return
[
...
...
@@ -176,7 +178,7 @@ class subscriptionInfo extends simplePlugin
htmlescape
(
_
(
'No data. Did you forgot to upload a file?'
)),
ERROR_DIALOG
);
}
elseif
((
$data
=
parse_ini_string
(
$data
))
===
FALSE
)
{
}
elseif
((
$data
=
parse_ini_string
(
$data
,
TRUE
))
===
FALSE
)
{
/* Import of INI failed */
msg_dialog
::
display
(
_
(
'Import error'
),
...
...
@@ -184,17 +186,42 @@ class subscriptionInfo extends simplePlugin
ERROR_DIALOG
);
}
else
{
/* Import data and save it to the LDAP */
foreach
(
static
::
$subscriptionAttributes
as
$attr
=>
$iniVar
)
{
$this
->
attributesAccess
[
$attr
]
->
setValue
(
isset
(
$data
[
$iniVar
])
?
$data
[
$iniVar
]
:
''
);
/* Check content of ini file */
$errorText
=
NULL
;
if
(
!
isset
(
$data
[
static
::
$sectionName
]))
{
$errorText
=
sprintf
(
_
(
'Missing section "%s" in imported file'
),
static
::
$sectionName
);
}
else
{
$data
=
$data
[
static
::
$sectionName
];
foreach
(
static
::
$subscriptionAttributes
as
$attr
=>
$iniVar
)
{
if
(
$this
->
attributesAccess
[
$attr
]
->
isRequired
()
&&
(
!
isset
(
$data
[
$iniVar
])
||
(
$data
[
$iniVar
]
===
''
)))
{
$errorText
=
sprintf
(
_
(
'Missing attribute "%s" in imported file'
),
$iniVar
);
break
;
}
}
}
$errors
=
$this
->
parent
->
save
();
if
(
empty
(
$errors
))
{
/* The object will stay open so it needs to appear as loaded from LDAP */
$this
->
is_account
=
TRUE
;
$this
->
initially_was_account
=
TRUE
;
if
(
$errorText
!==
NULL
)
{
msg_dialog
::
display
(
_
(
'Import error'
),
htmlescape
(
$errorText
),
ERROR_DIALOG
);
}
else
{
msg_dialog
::
displayChecks
(
$errors
);
/* Import data and save it to the LDAP */
foreach
(
static
::
$subscriptionAttributes
as
$attr
=>
$iniVar
)
{
$this
->
attributesAccess
[
$attr
]
->
setValue
(
isset
(
$data
[
$iniVar
])
?
$data
[
$iniVar
]
:
''
);
}
$errors
=
$this
->
parent
->
save
();
if
(
empty
(
$errors
))
{
/* The object will stay open so it needs to appear as loaded from LDAP */
$this
->
is_account
=
TRUE
;
$this
->
initially_was_account
=
TRUE
;
}
else
{
msg_dialog
::
displayChecks
(
$errors
);
/* Reset fields to LDAP value */
foreach
(
array_keys
(
static
::
$subscriptionAttributes
)
as
$attr
)
{
$this
->
attributesAccess
[
$attr
]
->
setValue
(
$this
->
attributesAccess
[
$attr
]
->
getInitialValue
());
}
}
}
}
/* Avoid double import */
...
...
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