mirror of
https://github.com/LDAPAccountManager/lam.git
synced 2025-10-03 09:49:16 +02:00
refactoring
This commit is contained in:
parent
d9bced28b4
commit
5fcf2bb7a1
6 changed files with 51 additions and 49 deletions
|
@ -1072,9 +1072,9 @@ class htmlButton extends htmlElement {
|
|||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param String $name button name
|
||||
* @param String $value button text or image (16x16px, relative to graphics folder)
|
||||
* @param String $isImageButton image or text button (default text)
|
||||
* @param string $name button name
|
||||
* @param string $value button text or image (16x16px, relative to graphics folder)
|
||||
* @param bool $isImageButton image or text button (default text)
|
||||
*/
|
||||
function __construct($name, $value, $isImageButton = false) {
|
||||
$this->name = htmlspecialchars($name);
|
||||
|
|
|
@ -204,7 +204,6 @@ class AccountProfilePersistenceManager {
|
|||
* @param string $confName server profile name
|
||||
* @return bool profile exists
|
||||
* @throws LAMException error while checking
|
||||
* @throws LAMException error writing template
|
||||
*/
|
||||
public function isAccountProfileExisting(string $typeId, string $name, string $confName): bool {
|
||||
if (!$this->isValidAccountProfileName($name)
|
||||
|
|
|
@ -1,26 +1,28 @@
|
|||
<?php
|
||||
namespace LAM\TOOLS\MULTI_EDIT;
|
||||
use htmlProgressbar;
|
||||
use \htmlTable;
|
||||
use \htmlTitle;
|
||||
use \htmlSelect;
|
||||
use \htmlOutputText;
|
||||
use \htmlInputField;
|
||||
use \htmlSubTitle;
|
||||
use \htmlButton;
|
||||
use \htmlStatusMessage;
|
||||
use \htmlSpacer;
|
||||
use \htmlHiddenInput;
|
||||
use \htmlGroup;
|
||||
use \htmlDiv;
|
||||
use \htmlJavaScript;
|
||||
use \htmlLink;
|
||||
use \htmlInputTextarea;
|
||||
use \htmlResponsiveRow;
|
||||
use \htmlResponsiveSelect;
|
||||
use \htmlResponsiveInputField;
|
||||
use \htmlResponsiveTable;
|
||||
use htmlTable;
|
||||
use htmlTitle;
|
||||
use htmlSelect;
|
||||
use htmlOutputText;
|
||||
use htmlInputField;
|
||||
use htmlSubTitle;
|
||||
use htmlButton;
|
||||
use htmlStatusMessage;
|
||||
use htmlSpacer;
|
||||
use htmlHiddenInput;
|
||||
use htmlGroup;
|
||||
use htmlDiv;
|
||||
use htmlJavaScript;
|
||||
use htmlLink;
|
||||
use htmlInputTextarea;
|
||||
use htmlResponsiveRow;
|
||||
use htmlResponsiveSelect;
|
||||
use htmlResponsiveInputField;
|
||||
use htmlResponsiveTable;
|
||||
use LAM\TOOLS\TREEVIEW\TreeViewTool;
|
||||
use LAM\TYPES\TypeManager;
|
||||
use LAMException;
|
||||
use LamTemporaryFilesManager;
|
||||
|
||||
/*
|
||||
|
@ -106,11 +108,11 @@ function displayStartPage(): void {
|
|||
echo "<form action=\"multiEdit.php\" method=\"post\">\n";
|
||||
$errors = [];
|
||||
$container = new htmlResponsiveRow();
|
||||
$container->add(new htmlTitle(_("Multi edit")), 12);
|
||||
$container->add(new htmlTitle(_("Multi edit")));
|
||||
// LDAP suffix
|
||||
$showRules = ['-' => ['otherSuffix']];
|
||||
$hideRules = [];
|
||||
$typeManager = new \LAM\TYPES\TypeManager();
|
||||
$typeManager = new TypeManager();
|
||||
$types = $typeManager->getConfiguredTypes();
|
||||
$suffixes = [];
|
||||
foreach ($types as $type) {
|
||||
|
@ -144,16 +146,16 @@ function displayStartPage(): void {
|
|||
$suffixSelect->setSortElements(false);
|
||||
$suffixSelect->setTableRowsToShow($showRules);
|
||||
$suffixSelect->setTableRowsToHide($hideRules);
|
||||
$container->add($suffixSelect, 12);
|
||||
$valOtherSuffix = empty($_POST['otherSuffix']) ? '' : $_POST['otherSuffix'];
|
||||
$container->add(new htmlResponsiveInputField(_('Other'), 'otherSuffix', $valOtherSuffix), 12);
|
||||
$container->add($suffixSelect);
|
||||
$valOtherSuffix = empty($_POST['otherSuffix']) ? '' : (string) $_POST['otherSuffix'];
|
||||
$container->add(new htmlResponsiveInputField(_('Other'), 'otherSuffix', $valOtherSuffix));
|
||||
// LDAP filter
|
||||
$valFilter = empty($_POST['filter']) ? '(objectClass=inetOrgPerson)' : $_POST['filter'];
|
||||
$container->add(new htmlResponsiveInputField(_('LDAP filter'), 'filter', $valFilter, '701'), 12);
|
||||
$valFilter = empty($_POST['filter']) ? '(objectClass=inetOrgPerson)' : (string) $_POST['filter'];
|
||||
$container->add(new htmlResponsiveInputField(_('LDAP filter'), 'filter', $valFilter, '701'));
|
||||
// operation fields
|
||||
$operationsTitle = new htmlSubTitle(_('Operations'));
|
||||
$operationsTitle->setHelpId('702');
|
||||
$container->add($operationsTitle, 12);
|
||||
$container->add($operationsTitle);
|
||||
$operationsTitles = [_('Type'), _('Attribute name'), _('Value')];
|
||||
$data = [];
|
||||
$opCount = empty($_POST['opcount']) ? '3' : $_POST['opcount'];
|
||||
|
@ -168,9 +170,9 @@ function displayStartPage(): void {
|
|||
$opSelect->setHasDescriptiveElements(true);
|
||||
$data[$i][] = $opSelect;
|
||||
// attribute name
|
||||
$attrVal = empty($_POST['attr_' . $i]) ? '' : $_POST['attr_' . $i];
|
||||
$attrVal = empty($_POST['attr_' . $i]) ? '' : (string) $_POST['attr_' . $i];
|
||||
$data[$i][] = new htmlInputField('attr_' . $i, $attrVal);
|
||||
$valVal = empty($_POST['val_' . $i]) ? '' : $_POST['val_' . $i];
|
||||
$valVal = empty($_POST['val_' . $i]) ? '' : (string) $_POST['val_' . $i];
|
||||
$data[$i][] = new htmlInputField('val_' . $i, $valVal);
|
||||
// check input
|
||||
if (($selOp == ADD) && !empty($attrVal) && empty($valVal)) {
|
||||
|
@ -181,17 +183,17 @@ function displayStartPage(): void {
|
|||
}
|
||||
}
|
||||
$operationsTable = new htmlResponsiveTable($operationsTitles, $data);
|
||||
$container->add($operationsTable, 12);
|
||||
$container->add($operationsTable);
|
||||
// add more fields
|
||||
$container->addVerticalSpacer('1rem');
|
||||
$container->add(new htmlButton('addFields', _('Add more fields')), 12);
|
||||
$container->add(new htmlHiddenInput('opcount', $opCount), 12);
|
||||
$container->add(new htmlButton('addFields', _('Add more fields')));
|
||||
$container->add(new htmlHiddenInput('opcount', $opCount));
|
||||
// error messages
|
||||
if ($errors !== []) {
|
||||
$container->addVerticalSpacer('5rem');
|
||||
foreach ($errors as $error) {
|
||||
$error->colspan = 5;
|
||||
$container->add($error, 12);
|
||||
$container->add($error);
|
||||
}
|
||||
}
|
||||
// action buttons
|
||||
|
@ -205,7 +207,7 @@ function displayStartPage(): void {
|
|||
$dryRunButton = new htmlButton('dryRun', _('Dry run'));
|
||||
$dryRunButton->setCSSClasses(['lam-secondary']);
|
||||
$buttonGroup->addElement($dryRunButton);
|
||||
$container->add($buttonGroup, 12);
|
||||
$container->add($buttonGroup);
|
||||
$container->addVerticalSpacer('1rem');
|
||||
|
||||
// run actions
|
||||
|
@ -226,13 +228,13 @@ function displayStartPage(): void {
|
|||
*
|
||||
* @param htmlResponsiveRow $container container
|
||||
*/
|
||||
function runActions(htmlResponsiveRow &$container): void {
|
||||
function runActions(htmlResponsiveRow $container): void {
|
||||
// LDAP suffix
|
||||
$suffix = ($_POST['suffix'] === '-') ? trim($_POST['otherSuffix']) : $_POST['suffix'];
|
||||
if (empty($suffix)) {
|
||||
$error = new htmlStatusMessage('ERROR', _('LDAP Suffix is invalid!'));
|
||||
$error->colspan = 5;
|
||||
$container->add($error, 12);
|
||||
$container->add($error);
|
||||
return;
|
||||
}
|
||||
// LDAP filter
|
||||
|
@ -247,7 +249,7 @@ function runActions(htmlResponsiveRow &$container): void {
|
|||
if (count($operations) == 0) {
|
||||
$error = new htmlStatusMessage('ERROR', _('Please specify at least one operation.'));
|
||||
$error->colspan = 5;
|
||||
$container->add($error, 12);
|
||||
$container->add($error);
|
||||
return;
|
||||
}
|
||||
$_SESSION['multiEdit_suffix'] = $suffix;
|
||||
|
@ -264,7 +266,7 @@ function runActions(htmlResponsiveRow &$container): void {
|
|||
$ajaxBlock = '
|
||||
window.lam.multiedit.runActions();
|
||||
';
|
||||
$container->add(new htmlJavaScript($ajaxBlock), 12);
|
||||
$container->add(new htmlJavaScript($ajaxBlock));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -419,6 +421,7 @@ function generateActions(): array {
|
|||
* Prints the dryRun output.
|
||||
*
|
||||
* @return array<mixed> status
|
||||
* @throws LAMException error simulating actions
|
||||
*/
|
||||
function dryRun(): array {
|
||||
$pro = isLAMProVersion() ? ' Pro' : '';
|
||||
|
|
|
@ -18,7 +18,7 @@ use LAM\TYPES\TypeManager;
|
|||
/*
|
||||
|
||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||
Copyright (C) 2003 - 2024 Roland Gruber
|
||||
Copyright (C) 2003 - 2025 Roland Gruber
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -206,6 +206,9 @@ function display_main(?string $message, ?string $error): void {
|
|||
$optionsToInsert = [];
|
||||
foreach ($types as $typeId => $title) {
|
||||
$type = $typeManager->getConfiguredType($typeId);
|
||||
if ($type === null) {
|
||||
continue;
|
||||
}
|
||||
$elements = [];
|
||||
$units = searchLDAP($type->getSuffix(), '(|(objectclass=organizationalunit)(objectclass=organization))', ['dn']);
|
||||
foreach ($units as $unit) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/*
|
||||
|
||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||
Copyright (C) 2009 - 2024 Roland Gruber
|
||||
Copyright (C) 2009 - 2025 Roland Gruber
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -180,7 +180,7 @@ if (isset($monitorEntries['cn=time,cn=monitor']) || isset($monitorEntries['cn=st
|
|||
if (isset($monitorEntries['cn=start,cn=time,cn=monitor'])) {
|
||||
$time = formatLDAPTimestamp($monitorEntries['cn=start,cn=time,cn=monitor']['monitortimestamp'][0]);
|
||||
$container->addLabel(new htmlOutputText('<b>' . _("Start time") . '</b>', false));
|
||||
$container->addField(new htmlOutputText($time), 12);
|
||||
$container->addField(new htmlOutputText($time));
|
||||
}
|
||||
elseif (isset($monitorEntries['cn=monitor']['starttime'])) { // Fedora 389
|
||||
$time = formatLDAPTimestamp($monitorEntries['cn=monitor']['starttime'][0]);
|
||||
|
|
|
@ -22,15 +22,12 @@ parameters:
|
|||
- '#Used function [a-zA-Z0-9\\_-]+ not found.#'
|
||||
- '#Variable \$helpArray might not be defined.#'
|
||||
- '#Function [a-zA-Z0-9\(\)\\_-]+ has invalid return type [a-zA-Z0-9\\_-]+.#'
|
||||
- '#PHPDoc tag @throws with type LAMException is not subtype of Throwable#'
|
||||
- '#Throwing object of an unknown class [a-zA-Z0-9\\_-]+.#'
|
||||
- '#Parameter \#[0-9] \$[a-zA-Z_]+ of function [a-zA-Z_]+ expects [(]?callable.*#'
|
||||
- '#Call to an undefined method object::.*#'
|
||||
- '#Parameter \#2 \$string of function explode expects string, .* given.#'
|
||||
- '#Parameter \#2 \$result of function ldap_.* expects LDAP\\Result, array\|LDAP\\Result given.#'
|
||||
- '#Cannot access an offset on mixed.#'
|
||||
- '#Cannot access offset .* on mixed.#'
|
||||
- '#Cannot access offset .* on array\|int.#'
|
||||
- '#Cannot access an offset on array\|Countable.#'
|
||||
- '#Cannot assign new offset to list\<string\>\|string.#'
|
||||
- '#Parameter \#1 \$haystack of function str_starts_with expects string, int\|string given.#'
|
||||
|
@ -40,7 +37,6 @@ parameters:
|
|||
- '#Parameter \#1 \$array of function array_keys expects array, mixed given.#'
|
||||
- '#Argument of an invalid type mixed supplied for foreach, only iterables are supported.#'
|
||||
- '#Parameter \#2 \$args of function call_user_func_array expects array<int\|string, mixed>, mixed given.#'
|
||||
- '#Cannot access offset non-falsy-string on array<string>\|object.#'
|
||||
- '#Unable to resolve the template type T in call to function array_values#'
|
||||
- '#Cannot call method .* on mixed.*#'
|
||||
- '#Cannot cast mixed to string.#'
|
||||
|
@ -50,3 +46,4 @@ parameters:
|
|||
- '#Cannot access property .* on mixed#'
|
||||
- '#.* function lamEncrypt expects string.*#'
|
||||
- '#.*class htmlHiddenInput constructor expects string, mixed given.*#'
|
||||
- '#Parameter \#1 \$string of class htmlOutputText constructor expects string, \(array\|float\|int\) given.#'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue