def next_page(self, load_page_callback):
        if self.method == 'ad':
            retval = serverconf.auth_dialog(_('Authentication Required'),
                _('Please, provide administration credentials for the Active Directory.'))
            self.server_conf.get_ad_conf().set_user(retval[0])
            self.server_conf.get_ad_conf().set_passwd(retval[1])

        messages = []

        if self.method == 'ad':
            if not self.server_conf.get_ad_conf().validate():
                messages.append({'type': 'error', 'message': 'Please, check the Active Directory parameters.'})

        else:
            if not self.server_conf.get_ldap_conf().validate():
                messages.append({'type': 'error', 'message': 'Please, check the LDAP parameters.'})

        result = len(messages) == 0
        if result == True:
            result, messages = serverconf.setup_server(
                server_conf=self.server_conf,
                link_ldap=self.link_ldap,
                link_ad=self.link_ad
            )

        load_page_callback(LinkToServerResultsPage, {
            'result': result,
            'server_conf': self.server_conf,
            'messages': messages
         })
Exemple #2
0
    def next_page(self, load_page_callback):
        auth_conf = self.server_conf.get_auth_conf()
        auth_conf.set_auth_type(self.method)
        auth_conf.set_auth_link(True)
        messages = []
        result = True
        if self.method == 'ad':
            retval = serverconf.auth_dialog(
                _('Authentication Required'),
                _('Please, provide administration credentials for the Active Directory.'
                  ))

            if self.server_conf.get_auth_conf().get_auth_type() == 'ldap':
                self.server_conf.get_auth_conf().set_auth_type('ad')
            ad_conf = self.server_conf.get_auth_conf().get_auth_properties()
            ad_conf.get_ad_properties().set_user_ad(retval[0])
            ad_conf.get_ad_properties().set_passwd_ad(retval[1])
            ad_conf.set_specific_conf(False)
            ad_conf.get_ad_properties().set_domain(
                self.ui.txtDomain.get_text())
            ad_conf.get_ad_properties().set_workgroup(
                self.ui.txtWorkgroup.get_text())
            if not auth_conf.get_auth_properties().validate():
                messages.append({
                    'type':
                    'error',
                    'message':
                    'Please, check the Active Directory parameters.'
                })
                result = False

        else:
            if self.server_conf.get_auth_conf().get_auth_type() == 'ad':
                self.server_conf.get_auth_conf().set_auth_type('ldap')

            ldap_conf = self.server_conf.get_auth_conf().get_auth_properties()
            ldap_conf.set_url(self.ui.txtUrlLDAP.get_text())
            ldap_conf.set_basedn(self.ui.txtBaseDN.get_text())
            ldap_conf.set_basedngroup(self.ui.txtBaseDNGroup.get_text())
            ldap_conf.set_binddn(self.ui.txtBindDN.get_text())
            ldap_conf.set_password(self.ui.txtPassword.get_text())

            if not ldap_conf.validate():
                messages.append({
                    'type': 'error',
                    'message': 'Please, check the LDAP parameters.'
                })
                result = False

        load_page_callback(LinkToServerResultsPage, {
            'result': result,
            'messages': messages
        })
    def next_page(self, load_page_callback):
        auth_conf = self.server_conf.get_auth_conf()
        auth_conf.set_auth_type(self.method)
        auth_conf.set_auth_link(True)
        messages = []
        result = True
        if self.method == 'ad':
            retval = serverconf.auth_dialog(_('Authentication Required'),
                _('Please, provide administration credentials for the Active Directory.'))
            
            if self.server_conf.get_auth_conf().get_auth_type() == 'ldap':
                self.server_conf.get_auth_conf().set_auth_type('ad')
            ad_conf = self.server_conf.get_auth_conf().get_auth_properties()
            ad_conf.get_ad_properties().set_user_ad(retval[0])
            ad_conf.get_ad_properties().set_passwd_ad(retval[1])
            ad_conf.set_specific_conf(False)
            ad_conf.get_ad_properties().set_domain(self.ui.txtDomain.get_text())
            ad_conf.get_ad_properties().set_workgroup(self.ui.txtWorkgroup.get_text())
            if not auth_conf.get_auth_properties().validate():
                messages.append({'type': 'error', 'message': 'Please, check the Active Directory parameters.'})
                result = False
            
        else:
            if self.server_conf.get_auth_conf().get_auth_type() == 'ad':
                self.server_conf.get_auth_conf().set_auth_type('ldap')

            ldap_conf = self.server_conf.get_auth_conf().get_auth_properties()
            ldap_conf.set_url(self.ui.txtUrlLDAP.get_text())
            ldap_conf.set_basedn(self.ui.txtBaseDN.get_text())
            ldap_conf.set_basedngroup(self.ui.txtBaseDNGroup.get_text())
            ldap_conf.set_binddn(self.ui.txtBindDN.get_text())
            ldap_conf.set_password(self.ui.txtPassword.get_text())

            if not ldap_conf.validate():
                messages.append({'type': 'error', 'message': 'Please, check the LDAP parameters.'})
                result = False

        load_page_callback(LinkToServerResultsPage, {
            'result': result,
            'messages': messages
         })
    def next_page(self, load_page_callback):

        if self.unlink_ldap == True or self.unlink_ad == True:
            messages = []

            auth_flag = open(__AUTH_FLAG__, 'r')
            content = auth_flag.read()
            auth_flag.close()
            auth_flag_json = json.loads(content)
            server_conf = serverconf.get_server_conf(None)
            server_conf.get_auth_conf().set_auth_type(
                auth_flag_json['auth_type'])
            if auth_flag_json['auth_type'] == 'ad':
                retval = serverconf.auth_dialog(
                    _('Authentication Required'),
                    _('Please, provide administration credentials for the Active Directory.'
                      ))
                ad_conf = server_conf.get_auth_conf().get_auth_properties()
                ad_conf.get_ad_properties().set_user_ad(retval[0])
                ad_conf.get_ad_properties().set_passwd_ad(retval[1])
                messages += serverconf.unlink_from_sssd()

            result = len(messages) == 0
            if result:
                server_conf = serverconf.get_server_conf(None)
                auth_conf = server_conf.get_auth_conf()
                content = serverconf.get_json_content()
                if content != None:
                    auth_conf_cached = AuthConf.AuthConf()
                    auth_conf_cached.load_data(content['auth'])
                    server_conf.set_auth_conf(auth_conf_cached)
                else:
                    server_conf.set_auth_conf(AuthConf.AuthConf())

                if self.unlink_ldap:
                    auth_conf.set_auth_type('ldap')
                    #os.remove(__LDAP_FLAG__)
                else:
                    auth_conf.set_auth_type('ad')
                    #os.remove(__AD_FLAG__)

            auth_conf.set_auth_link(False)
            load_page_callback(LinkToServerResultsPage, {
                'result': True,
                'messages': None
            })
            return

        if self.ui.radioNone.get_active() or (self.ldap_is_configured
                                              or self.ad_is_configured):
            if self.ui.radioNone.get_active():
                server_conf = serverconf.get_server_conf(None)
                server_conf.set_auth_conf(AuthConf.AuthConf())
            self.emit('status-changed', 'linkToServer', True)
            load_page_callback(firstboot.pages.localUsers)
            return

        self.show_status()

        try:
            if len(socket.gethostname()) > 15:
                raise Exception(
                    _("The hostname can't not be longer than 15 characters"))
            server_conf = serverconf.get_server_conf(None)

            load_page_callback(
                LinkToServerConfEditorPage, {
                    'ldap_is_configured': self.ldap_is_configured,
                    'auth_method': self.get_auth_method(),
                    'ad_is_configured': self.ad_is_configured,
                })

        except serverconf.ServerConfException as e:
            self.show_status(__STATUS_ERROR__, e)

        except Exception as e:
            self.show_status(__STATUS_ERROR__, e)