Merge branch 'feature-279/FAS_AliasgenerierungMitSonderzeichen'

This commit is contained in:
Andreas Österreicher
2022-01-17 16:01:09 +01:00
6 changed files with 89 additions and 42 deletions
+21 -13
View File
@@ -314,32 +314,40 @@ function sanitizeProblemChars($str)
$enc = 'UTF-8';
$acentos = array(
'A' => '/À|Á|Â|Ã|Å/',
'A' => '/À|Á|Â|Ã|Å|Ă|Ǎ/',
'Ae' => '/Ä/',
'a' => '/à|á|â|ã|å/',
'ae'=> '/ä/',
'C' => '/Ç/',
'c' => '/ç/',
'a' => '/à|á|â|ã|å|ă|ǎ/',
'ae' => '/ä/',
'C' => '/Ç|Č/',
'c' => '/ç|č/',
'E' => '/È|É|Ê|Ë/',
'e' => '/è|é|ê|ë/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ|Ň|ň/',
'n' => '/ñ/',
'O' => '/Ò|Ó|Ô|Õ/',
'O' => '/Ò|Ó|Ô|Õ/',
'Oe' => '/Ö/',
'o' => '/ò|ó|ô|õ/',
'o' => '/ò|ó|ô|õ/',
'oe' => '/ö/',
'U' => '/Ù|Ú|Û/',
'R' => '/Ř/',
'r' => '/ř/',
'S' => '/Š/',
's' => '/š/',
'T' => '/Ť/',
't' => '/ť/',
'U' => '/Ù|Ú|Û|Ŭ|Ǔ/',
'Ue' => '/Ü/',
'u' => '/ù|ú|û/',
'u' => '/ù|ú|û|ŭ|ǔ/',
'ue' => '/ü/',
'Y' => '/Ý/',
'y' => '/ý|ÿ/',
'Z' => '/Ž/',
'z' => '/ž/',
'a.' => '/ª/',
'o.' => '/º/',
'ss' => '/ß/'
);
return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
}
+14
View File
@@ -419,3 +419,17 @@ function setVariable(variable, wert)
return true;
}
}
// ****
// * Validierung Alias auf Sonderzeichen (analog zu checkWunschUid erlaubt)
// ****
function checkAlias(alias)
{
if (/^[a-z0-9 . _ -]*$/i.test(alias) === false)
{
return false;
}
else
return true;
}
@@ -269,7 +269,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label value="Anmerkung" control="mitarbeiter-detail-textbox-mitarbeiteranmerkung"/>
<textbox id="mitarbeiter-detail-textbox-mitarbeiteranmerkung" disabled="true" multiline="true" oninput="MitarbeiterDetailValueChange()"/>
<vbox>
<label value="Alias" control="mitarbeiter-detail-textbox-alias"/>
<label value="Alias" control="mitarbeiter-detail-textbox-alias" oninput="MitarbeiterDetailValueChange()"/>
</vbox>
<vbox>
<textbox id="mitarbeiter-detail-textbox-alias" disabled="true" oninput="MitarbeiterDetailValueChange()"/>
@@ -857,6 +857,12 @@ function MitarbeiterSave()
return false;
}
if(!checkAlias(alias))
{
alert('Der Alias darf keine Sonderzeichen außer ._- enthalten.');
return false;
}
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
+36 -28
View File
@@ -455,42 +455,50 @@ function intersect($str1, $str2)
* Konvertiert Problematische Sonderzeichen in Strings fuer
* Accountnamen und EMail-Aliase
*
* @param $str
* @return bereinigter String
* @param string $str Inputparameter.
* @return string bereinigter String.
*/
function convertProblemChars($str)
{
$enc = 'UTF-8';
$acentos = array(
'A' => '/&Agrave;|&Aacute;|&Acirc;|&Atilde;|&Aring;/',
'Ae' => '/&Auml;/',
'a' => '/&agrave;|&aacute;|&acirc;|&atilde;|&aring;/',
'ae'=> '/&auml;/',
'C' => '/&Ccedil;/',
'c' => '/&ccedil;/',
'E' => '/&Egrave;|&Eacute;|&Ecirc;|&Euml;/',
'e' => '/&egrave;|&eacute;|&ecirc;|&euml;/',
'I' => '/&Igrave;|&Iacute;|&Icirc;|&Iuml;/',
'i' => '/&igrave;|&iacute;|&icirc;|&iuml;/',
'N' => '/&Ntilde;/',
'n' => '/&ntilde;/',
'O' => '/&Ograve;|&Oacute;|&Ocirc;|&Otilde;/',
'Oe' => '/&Ouml;/',
'o' => '/&ograve;|&oacute;|&ocirc;|&otilde;/',
'oe' => '/&ouml;/',
'U' => '/&Ugrave;|&Uacute;|&Ucirc;/',
'Ue' => '/&Uuml;/',
'u' => '/&ugrave;|&uacute;|&ucirc;/',
'ue' => '/&uuml;/',
'Y' => '/&Yacute;/',
'y' => '/&yacute;|&yuml;/',
'a.' => '/&ordf;/',
'o.' => '/&ordm;/',
'ss' => '/&szlig;/'
'A' => '/&Agrave;|&Aacute;|&Acirc;|&Atilde;|&Aring;|&Abreve;|Ǎ/',
'Ae' => '/&Auml;/',
'a' => '/&agrave;|&aacute;|&acirc;|&atilde;|&aring;|&abreve;|ǎ/',
'ae' => '/&auml;/',
'C' => '/&Ccedil;|&Ccaron;/',
'c' => '/&ccedil;|&ccaron;/',
'E' => '/&Egrave;|&Eacute;|&Ecirc;|&Euml;/',
'e' => '/&egrave;|&eacute;|&ecirc;|&euml;/',
'I' => '/&Igrave;|&Iacute;|&Icirc;|&Iuml;/',
'i' => '/&igrave;|&iacute;|&icirc;|&iuml;/',
'N' => '/&Ntilde;|&Ncaron;|&ncaron;/',
'n' => '/&ntilde;/',
'O' => '/&Ograve;|&Oacute;|&Ocirc;|&Otilde;/',
'Oe' => '/&Ouml;/',
'o' => '/&ograve;|&oacute;|&ocirc;|&otilde;/',
'oe' => '/&ouml;/',
'R' => '/&Rcaron;/',
'r' => '/&rcaron;/',
'S' => '/&Scaron;/',
's' => '/&scaron;/',
'T' => '/&Tcaron;/',
't' => '/&tcaron;/',
'U' => '/&Ugrave;|&Uacute;|&Ucirc;|&Ubreve;|Ǔ/',
'Ue' => '/&Uuml;/',
'u' => '/&ugrave;|&uacute;|&ucirc;|&ubreve;|ǔ/',
'ue' => '/&uuml;/',
'Y' => '/&Yacute;/',
'y' => '/&yacute;|&yuml;/',
'Z' => '/&Zcaron;/',
'z' => '/&zcaron;/',
'a.' => '/&ordf;/',
'o.' => '/&ordm;/',
'ss' => '/&szlig;/'
);
return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
}
//Ersetzt alle Problemzeichen in einem String bevor dieser als xml oder rdf ausgegeben wird
@@ -675,6 +675,17 @@ if(isset($_POST['save']))
$nachname_clean = str_replace(' ','_', $nachname_clean);
$vorname_clean = str_replace(' ','_', $vorname_clean);
if (!preg_match('/^[a-z0-9-_]{3,32}$/i', $vorname_clean))
{
$error = true;
$errormsg = 'Im Vornamen dürfen keine Trennzeichen außer - enthalten sein!';
}
if (!preg_match('/^[a-z0-9-_]{4,32}$/i', $nachname_clean))
{
$error = true;
$errormsg = 'Im Nachnamen dürfen keine Trennzeichen außer - enthalten sein!';
}
$bn = new benutzer();
if(!$bn->alias_exists($vorname_clean.'.'.$nachname_clean))