+ Antworten
Ergebnis 1 bis 7 von 7

Thema: Joomla Intranet mit Windows Benutzernamen - Lösung zu Joomla 1.6

  1. #1
    Neu an Board
    Registriert seit
    09.06.2011
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard Joomla Intranet mit Windows Benutzernamen - Lösung zu Joomla 1.6

    Hallo liebe Community,
    ich habe mich 2 Tage durchs Internet gewühlt um folgendes hinzukriegen:

    Wir haben ein Intranet, welches über LDAP mit einer Active Directory verbunden ist.
    Unsere Benutzer haben alle den Benutzernamen bei Joomla, wie auch ihr Windows Benutzername ist. Da dies jeder weiß, sollte ich den Benutzernamen automatisch ins Loginfeld schreiben, ohne das der Benutzer einen anderen Namen eingeben kann.

    Hier nun meine Lösung, falls jemand von euch ein ähnliches Problem hat

    In der Datei libraries\joomla\html\behavior.php folgendes hinzufügen:
    PHP-Code:
    640    $document JFactory::getDocument();
    641    $script2  '</script>**********';
    642    $script2 .= 'function usershownamelogin() {';
    643    $script2 .=  '    var WshNetwork = new ActiveXObject("WScript.Network"); document.loginformtest.username.value=WshNetwork.UserName; document.loginformtest.usershow.value=WshNetwork.UserName;';
    644    $script2 .=  '}';
    645    $document->addScriptDeclaration($script2);
    646    $loaded true;
    647    return; 
    Bei #641 fügt der Forumcleaner Sternchen ein, es muss aber </script>< s c r i p t> eingefügt werden!(ohne Leerzeichen)

    Dadurch wird ein neues ActiveX Script hinzugefügt, welches den Windows Benutzernamen auslesen kann.

    als nächstes in der Datei index.php des templates (bei mir templates\beez_20\index.php) folgendes ändern (bei <body>)

    PHP-Code:
    109    <?php $user JFactory::getUser();
    110    $status $user->guest;
    111    ?>
    112    <?php if ($status=="1") : ?>
    113    <body onload="usershownamelogin();">
    114    <?php else : ?>
    115    <body>
    116    <?php endif;  ?>
    als drittes muss die Loginform in der Datei modules\mod_login\tmpl\default.php geändert werden:

    PHP-Code:
    34 <form action="<?php echo JRoute::_('index.php'true$params->get('usesecure')); ?>" method="post" id="login-form" name="loginformtest">
    41    <?php $browser =$_SERVER['HTTP_USER_AGENT'];
    42    if(preg_match('/MSIE/i',$browser)) : ?>
    43       <p id="form-login-username">    
    44    <label for="modlgn-username"><?php echo JText::_('MOD_LOGIN_VALUE_USERNAME'?></label>    
    45    <input id="modlgn-username" type="text" name="usershow" class="inputbox"  size="18" disabled />    
    46    <input id="" type="hidden" name="username" class="inputbox"  size="18" />
    47    </p>
    48    <?php else : ?>
    49    <p id="form-login-username">
    50    <label for="modlgn-username"><?php echo JText::_('MOD_LOGIN_VALUE_USERNAME'?></label>
    51    <input id="modlgn-username" type="text" name="username" class="inputbox"  size="18" />
    52    </p>
    53    <?php endif; ?>
    Das ganze funktioniert durch ActiveX nur beim IE, desshalb wird auf den Browser geprüft.

    Als letztes dann noch den Redirekt bei einem falschen Passwort in der Datei components\com_users\controllers\user.php
    PHP-Code:
    65    //$app->redirect(JRoute::_('index.php?option=com_users&view=login', false));
    66    $app->redirect(JRoute::_('index.php'false)); 
    Dann wird automatisch der Windows Benutzername eingetragen.
    Geändert von TheLuBu (17.06.2011 um 09:01 Uhr)

  2. Erhielt Danksagungen von:


  3. #2
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Zitat Zitat von TheLuBu Beitrag anzeigen
    Dadurch wird ein neues ActiveX Script hinzugefügt, welches den Windows Benutzernamen auslesen kann.
    Igittigitt wie scheußlich... Da schüttelt es einem eingefleischten Pinguin ja wirklich alle Flossen.

    Nein, das war natürlich nur ein Scherz Ich find die Lösung wirklich äusserst interessant (erstaunlich was so alles mit ActiveX geht..). Dürfte die usability in einem Windows Intranet bestimmt verbessern.

    Hier gibt's so eine Rubrik die heisst Tipps, Tricks und Kurzanleitungen, da würde das glaube ich besser hinpassen.

    Alternativ (oder zusätzlich) darfst Du es auch gerne ins http://wiki.joomla-nafu.de/ schreiben

    EDITH: in Deinem ersten PHP code #641 hat bestimmt der Forum "cleaner" mit ein Paar ***'s zugeschlagen ?
    Geändert von elkuku (17.06.2011 um 00:38 Uhr)
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

  4. #3
    Neu an Board
    Registriert seit
    09.06.2011
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    Ich hätte auch lieber auf ActiveX verzichtet, aber leider gibt es mit reinem PC nicht die Möglichkeit, den Benutzernamen anders auszulesen (es gibt noch win32std.dll, eine php_extension, aber an der wurde wohl für PHP4 gearbeitet und dann nicht mehr weiterentwickelt.

    Danke für den Hinweis mit den Sternchen, hatte ich jetzt komplett übersehen ^^ Habe einen Hinweis darunter geschrieben wie es sein muss.

  5. #4
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Also ich hab das mal probiert - geht wirklich - windows ist schon toll

    Allerdings würde ich statt der Core Häcks lieber Overrides einsetzen.. Ich hab mir mal erlaubt das zu kommentieren: http://wiki.joomla-nafu.de/joomla-do..._Benutzernamen
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

  6. #5
    War schon öfter hier
    Registriert seit
    23.09.2009
    Beiträge
    235
    Bedankte sich
    0
    Erhielt 62 Danksagungen
    in 59 Beiträgen

    Standard

    Ich gehe davon aus, dass Passwörter bzw. Login-Daten bei der ersten Anmeldung für den jeweiligen Benutzer im Browser gespeichert werden. Ein kontinuierliches Auslesen/Ausfüllen des Input-Felds wäre demnach nicht weiter notwendig.

    Alternativ zu der hier vorgestellten Methode kann der Aufruf zur Applikation, ob als Lesezeichen oder Desktopverknüpfung um die Windows Umgebungsvariable %USERNAME% ergänzt werden.

    HTML-Code:
    IE/FF.exe http://intranet.route/index.php?username=%USERNAME%
    Anschließend stünde der Benutzername im Override zur Verfügung.
    Tell 'em what they want to hear. That will keep them coming back for more. I 've got some for everyone.

  7. #6
    Neu an Board
    Registriert seit
    09.06.2011
    Beiträge
    8
    Bedankte sich
    0
    Erhielt 2 Danksagungen
    in 2 Beiträgen

    Standard

    So, ich hab jetzt den Artikel etwas bearbeitet, (jetzt mit Overrides) wenn ihr wollt könnt ihr ihn nochmal durchsehen

  8. #7
    Neu an Board
    Registriert seit
    14.06.2008
    Beiträge
    15
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Intranet

    Hallo,

    Also das übersteigt nun auch meine Kenntnisse.
    Versteh ich das richtig? jeder der das Intranet öffnet ist somit über die Windows Active Directory an Joomla angemeldet???

    Welches Modul oder Plugin Brauch ich da sonnst noch?

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein