Hallo Leute,
ich brauche mal ne Diskussion, wie man folgendes löst:
Wir haben INTRANET- und Internetseiten auf einem Server mit einer Typo3 Installation realisiert.
Jetzt wollen wir erkennen, ob ein Aufruf der INTRANETseiten von extern kommt (dann wird LogIn gefordert) oder von intern (kein LogIn erforderlich).
Meine Idee war mit $REMOTE_ADDR eine Selection zu machen. Funzt auch, denn der interne IP - Pool im Netzwerk ist ja festgelegt. Die Selection hab ich in die index.php eingebaut.
Jetzt muß ich nur noch zwischen den Aufruf INTRANET und Internet unterscheiden.
Hat jemand ne Idee?
ach ja der Code für die Selection bisher:
<?
/* Vorgaben in welchem Bereich die gültige IP Adresse liegen darf
Hier zwischen 182.10.01.01 biss 182.10.255.254
*/
$teil_0_max = 182;
$teil_0_min = 182;
$teil_1_max = 10;
$teil_1_min = 10;
$teil_2_max = 255;
$teil_2_min = 01;
$teil_3_max = 254;
$teil_3_min = 01;
//-------------------------------------------------------------------
/* Auslesen der IP Adresse des Aufrufers */
$string = $HTTP_SERVER_VARS['REMOTE_ADDR'];
//Test: $string = "182.10.01.01";
//---------------------------------------------------------------------
/* Zerlegen der IP Adresse in einzelne Strings, die in das Array $teil()
geschrieben werden. weil 0 als false interpretiert wird,
muß 0 erst in - gewandelt werden und später wieder zurück
*/
$string = str_replace(0,'-',$string);
$teil = array ();
$tok = strtok ($string,".");
while ($tok) {
$teil[] = str_replace('-','0',$tok);
$tok = strtok (".");
}
$wert = 0 ;
if (($teil[0] <= $teil_0_max) AND ($teil[0] >= $teil_0_min)){
$wert = $wert+1;
}
if (($teil[1] <= $teil_1_max) AND ($teil[1] >= $teil_1_min)){
$wert = $wert+1;
}
if (($teil[2] <= $teil_2_max) AND ($teil[2] >= $teil_2_min)){
$wert = $wert+1;
}
if (($teil[3] <= $teil_3_max) AND ($teil[3] >= $teil_3_min)){
$wert = $wert+1;
}
if ($wert!= 4){
if ($HTTP_GET_VARS['action'] != 'second'){
$go = 'go';
}
}
if (($GLOBALS['TSFE']->fe_user->user['usergroup'])>0){
$go = '--';
}
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<?php
if ($go == 'go'){
$url = 'Content="0; Url=index.php?id=41&action=second">'; //LogIn Seite = 41
echo '<META http-equiv=Refresh '.$url;
}
?>
<title>Title here!</title>
</head>
<body>
</body>
</html>
Gruß Fr@nk
WildFun schriebHallo Leute,
ich brauche mal ne Diskussion, wie man folgendes löst:
Wir haben INTRANET- und Internetseiten auf einem Server mit einer Typo3 Installation realisiert.
Jetzt wollen wir erkennen, ob ein Aufruf der INTRANETseiten von extern kommt (dann wird LogIn gefordert) oder von intern (kein LogIn erforderlich).
Meine Idee war mit $REMOTE_ADDR eine Selection zu machen. Funzt auch, denn der interne IP - Pool im Netzwerk ist ja festgelegt. Die Selection hab ich in die index.php eingebaut.
Jetzt muß ich nur noch zwischen den Aufruf INTRANET und Internet unterscheiden.
Hat jemand ne Idee?
hi
warum bearbeitest du denn das php script?????
das was du machen willst könnte man einfach mit conditions im ts lösen....
du weist die ip aus dem intranet!
also sagst du einfach das wenn mit der ip probiert wird zuzugreifen, dann lenk die seite auf eine loginbox um etc..........
weil wenn jemand von extern auf das intranet will, dann sollte er schon ne andere ip haben... #giggle#
dann brauchst du nicht das php script zu beackern....
denke ich mal! 😉
cu
thorsten
Hi!
Im Prinzip kannst Du das per Conditions unter Typo3 regeln. Siehe dazu https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html#condition-function-ip
Wenn Ihr z.B. den Adressraum 192.168.* benutzt:
[IP = 192.168.*.*]
# INTRANET
[else]
# EXTRANET
[end]
Ob diese Methode sicher ist weiss ich allerdings nicht, da mir nicht klar ist, wie Typo die IP ermittelt. Falls das über den Referrer passiert kann man das natürlich vergessen 😢
CU
maxhb
erstmal vielen Dank für den Tip.
als ich's gelesen haben, fiel es mir ein, dass ich das auch schon mal in der TSref gelesen hatte.
Aber, lieber Thorsten, wie leite ich um ?
[IP = 192.168.*.*]
???
[else]
???
[end]
gruß Fr@nk
habe ein andere Lösung gefunden bei der auch die gesamte fe_user Funktion erhalten bleibt.
Setup:
site.1 = TEMPLATE
site.1 {
template = FILE
template.file = fileadmin/templates/xyz.htm
workOnSubpart = DOKUMENT
.
.
.
}
[IP=127.0.0.10]
page.10 = TEMPLATE
page.10 < site.1
[else]
page.10=TEXT
page.10.value = No Entry without LogIn
page.10 < tt_content.login
[end]
[loginUser = *]
#page.10 = TEXT
#page.10.value = eingeloggt
page.10 = TEMPLATE
page.10 < site.1
[else]
#page.20 = TEXT
#page.20.value = nicht eingeloggt<br>
[end]
Auf die Reihenfolge kommts an!
Nicht vergessen auch die Einträge in die Conants:
plugin.feadmin.fe_users {
file.templateFile = yourTemp
email = .....
emailName = Name
pid = 44
usergroupOverride = 3
Wir haben auch ein änhliches Problem.
Nur möchte ich weiterhin die Benutzergruppen in Typo3 weiterverwenden.
Deswegen versuchen wir folgendes.
- legen alle Netzwerk User als FE User an (und weisen ihnen die passenden Gruppen zu)
- ändern die Loginbox so ab, dass vorher der Netzwerkuser ausgelesen wird und der dann mehr oder weniger automatisch weitergereicht wird. Sprich wir wollen nur den Login umgehen.
Habe gerade begonnen daran zu arbeiten - mal schauen ob es funktioniert..
lg,
Daniel
Hallo dan33 hast du bereits eine lösung dafür gefunden?
Also wenn ich dich korrekt verstanden habe willst du versuchen den User über den Windows-Usernamen einer Gruppe zu zuordnen, oder?
Das selbe benötige ich eben auch noch, von exernt greift mir ein PHP script auf dir AD (ActiveDirectory) auf unserm Server und man kann sich von extern mit dem Domänen User und Passwort authentiviezieren. Doch würde ich intern ebe auch gerne die Benützergruppen bestehen lassen, jedoch habe ich im moment nur ein provisorium ohne benutzergruppen....
Wäre auch intressiert an einer lösung 🙂
Greetz Andy
Hi!
Nein, noch habe ich keine Lösung.
Habe nicht einmal noch begonnen daran zu arbeiten 😉
Aber sobald ich etwas habe werde ich es posten. (wird aber sicher noch etwas dauern, da es nicht der einzige Punkt auf meiner Liste ist).
Schon mal an das LDAP-Plugin gedacht?
Das könnte dir evtl. auch behilflich sein.
Um was geht es beim LDAP-Plugin habe mich noch nicht damit befasst...
Wäre froh um infos...
Hi!
Ich habe mich damit auch noch nicht beschäftig, da wir zZ kein LDAP unterstützen.
Hier gibts mehr Infos:
http://typo3.org/documentation/document-library/eu_ldap/
Ansonsten könnt ihr ja eine eigene Extension schreiben,und session daten domainübergreifend behandeln. wäre das keine Idee?