--- ucs/management/univention-directory-manager/uniconf/modrelogin.py +++ ucs/management/univention-directory-manager/uniconf/modrelogin.py @@ -283,15 +283,19 @@ class modrelogin(unimodule.unimodule): self.save.put("authfail","1") return - self.save.put("relogin_username",self.usernamein.xvars.get("usertext","")) - self.save.put("relogin_password",self.passwdin.xvars.get("usertext","")) + pre_session_login = self.req and self.req.meta and self.req.meta.get('Pre_session_username') and self.req.meta.get('Pre_session_password') + if pre_session_login: + self.save.put("relogin_username",self.req.meta.get('Pre_session_username')) + self.save.put("relogin_password",self.req.meta.get('Pre_session_password')) + else: + self.save.put("relogin_username",self.usernamein.xvars.get("usertext","")) + self.save.put("relogin_password",self.passwdin.xvars.get("usertext","")) mu=0 - if self.cabut.pressed(): self.save.put("logout",1) - if self.okbut.pressed() or mu and self.input: + if self.okbut.pressed() or mu and self.input or pre_session_login: self.save.put("user",self.save.get("relogin_username")) self.save.put("pass",self.save.get("relogin_password")) @@ -304,6 +308,9 @@ class modrelogin(unimodule.unimodule): else: domain=position.getBase() + if not domain: + domain=position.getBase() + position.setLoginDomain(domain) position.setDn(domain) self.save.put('ldap_position', position) @@ -311,6 +318,8 @@ class modrelogin(unimodule.unimodule): language = None if hasattr(self, 'chooselang'): language = self.chooselang.getselected() + if self.req.meta.get('Pre_session_language'): + language = self.req.meta.get('Pre_session_language') if language: if language == 'de': --- ucs/management/univention-management-console/modules/frontend/modconsole.py +++ ucs/management/univention-management-console/modules/frontend/modconsole.py @@ -536,16 +536,23 @@ class modconsole(unimodule.unimodule): self.save.put('about','1') return + pre_session_login = self.req and self.req.meta and self.req.meta.get('Pre_session_username') and self.req.meta.get('Pre_session_password') + univention.debug.debug(univention.debug.ADMIN, univention.debug.INFO, 'Function: UMC: pre_session_login = %s' % pre_session_login ) + if self.save.get('consolemode') == 'login': - self.save.put("relogin_username",self.usernamein.xvars.get("usertext","")) - self.save.put("relogin_password",self.passwdin.xvars.get("usertext","")) + if pre_session_login: + self.save.put("relogin_username",self.req.meta.get('Pre_session_username')) + self.save.put("relogin_password",self.req.meta.get('Pre_session_password')) + else: + self.save.put("relogin_username",self.usernamein.xvars.get("usertext","")) + self.save.put("relogin_password",self.passwdin.xvars.get("usertext","")) if self.cabut.pressed(): self.save.put( 'auth_ok', False ) # just to be sure - if self.okbut.pressed(): - authUsername = self.usernamein.xvars.get("usertext","") - authPassword = self.passwdin.xvars.get("usertext","") + if self.okbut.pressed() or pre_session_login: + authUsername = self.save.gut("relogin_username",'') + authPassword = self.save.gut("relogin_password",'') #if not authUsername or not authPassword: # return @@ -577,6 +584,9 @@ class modconsole(unimodule.unimodule): language = None if hasattr(self, 'chooselang'): language = self.chooselang.getselected() + if self.req.meta.get('Pre_session_language'): + language = self.req.meta.get('Pre_session_language') + if language: if language == 'de': --- ucs/management/univention-webui/webui/index.php +++ ucs/management/univention-webui/webui/index.php @@ -129,6 +129,19 @@ if(!isset($logout)) { fwrite($pipe, "Unsupportedbrowser: 1\n"); $container->set_body_class("login"); } + if (isset($_POST['Pre_session_username']) && isset($_POST['Pre_session_password'])) { + if($config->layout_type && $config->layout_type=='menuless') { + $container->set_body_class("component-menuless"); + } else { + $container->set_body_class("component"); + } + + fwrite($pipe, "Pre_session_username: ".$_POST['Pre_session_username']."\n"); + fwrite($pipe, "Pre_session_password: ".$_POST['Pre_session_password']."\n"); + if (isset($_POST['Pre_session_language'])) { + fwrite($pipe, "Pre_session_language: ".$_POST['Pre_session_language']."\n"); + } + } fwrite($pipe, "SessionId: ".$config->session_id."\n"); fwrite($pipe, "Number: -1\n\n\0");