Changeset 6353 for n4dgtklogin


Ignore:
Timestamp:
Nov 20, 2017, 10:09:29 AM (21 months ago)
Author:
Juanma
Message:

add handler for socket exceptions

Location:
n4dgtklogin/trunk/fuentes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • n4dgtklogin/trunk/fuentes/README.md

    r6244 r6353  
    2727        Returns the rendered main box.
    2828###### after_validation_goto() 
    29         Sets the function that the loginComponent will launch after a correct user's validation 
     29        Sets the function that the loginComponent will launch after a correct user's validation. User, password and server will be passed as arguments to that function.
    3030 
    3131### Examples 
  • n4dgtklogin/trunk/fuentes/python-n4dgtklogin.install/edupals/ui/n4dgtklogin.py

    r6331 r6353  
    33#This class returns a HBox whith a standarized login form
    44###
    5 import os,sys
     5import os,sys,socket
    66import threading
    77import gi
     
    1919import time
    2020import gettext
    21 #import pam
    22 
    23 gettext.textdomain('edupals.ui')
     21
     22gettext.textdomain('nezumi.ui.common')
    2423_ = gettext.gettext
    2524GObject.threads_init()
     
    238237                        lbl_msg.set_markup(self.info_msg)
    239238                        hbox.pack_start(lbl_msg,True,True,0)
    240                 lbl_bg='#label {background-color:rgba(200,200,200,0.8);;}'
     239                lbl_bg='#label {background-color:rgba(200,200,200,0.5);;}'
    241240                lbl_msg.set_name("label")
    242241                css=eval('b"""#info {'+self.info_background+';;}'+lbl_bg+'"""')
     
    276275        def _t_validate(self,user,pwd,server):
    277276                ret=[False]
     277                self.lbl_error.set_text(_("Login failed"))
    278278                if self.sw_n4d:
    279                         self.n4dclient=self._n4d_connect(server)
    280279                        try:
    281                                 loginMethod='N4d'
     280                                self.n4dclient=self._n4d_connect(server)
    282281                                ret=self.n4dclient.validate_user(user,pwd)
    283                         except Exception as e:
     282                        except socket.error as e:
     283                                self.lbl_error.set_text(_("Unknown host"))
    284284                                ret=[False,str(e)]
    285 #               else:
    286 #                       loginMethod='PAM'
    287 #                       p=pam.pam()
    288 #                       if p.authenticate(user,pwd):
    289 #                               ret=[True]
    290285
    291286                self.spinner.stop()
    292287                if not ret[0]:
     288                        self.sta_info.show()
    293289                        self.lbl_error.show()
    294                         self.sta_info.show()
    295290                if ret[0]:
    296                         self.after_validate(loginMethod,user,pwd)
     291                        self.after_validate(user,pwd,server)
    297292                #local validation
    298293        #def _t_validate
     
    303298
    304299        def _n4d_connect(self,server):
     300                try:
     301                        socket.gethostbyname(server)
     302                except:
     303                        #It could be an ip
     304                        try:
     305                                socket.inet_aton(server)
     306                        except Exception as e:
     307                                print(e)
     308                                raise
    305309                c=n4d.ServerProxy("https://%s:9779"%server)
    306310                return c
  • n4dgtklogin/trunk/fuentes/python3-n4dgtklogin.install/edupals/ui/n4dgtklogin.py

    r6331 r6353  
    33#This class returns a HBox whith a standarized login form
    44###
    5 import os,sys
     5import os,sys,socket
    66import threading
    77import gi
     
    1919import time
    2020import gettext
    21 #import pam
    22 
    23 gettext.textdomain('edupals.ui')
     21
     22gettext.textdomain('nezumi.ui.common')
    2423_ = gettext.gettext
    2524GObject.threads_init()
     
    209208                self.btn_sign.set_margin_top(self.default_spacing)
    210209                hbox.attach(self.btn_sign,0,4,1,1)
    211 #               self.frame.add(hbox)
    212210                self.sta_info=Gtk.InfoBar()
    213211                self.sta_info.set_show_close_button(True)
     
    238236                        lbl_msg.set_markup(self.info_msg)
    239237                        hbox.pack_start(lbl_msg,True,True,0)
    240                 lbl_bg='#label {background-color:rgba(200,200,200,0.8);;}'
     238                lbl_bg='#label {background-color:rgba(200,200,200,0.5);;}'
    241239                lbl_msg.set_name("label")
    242240                css=eval('b"""#info {'+self.info_background+';;}'+lbl_bg+'"""')
     
    268266                if not server:
    269267                        server='server'
     268                        try:
     269                                socket.gethostbyname(server)
     270                        except:
     271                                server='localhost'
    270272                self.spinner.start()
    271273                self.frame.set_sensitive(False)
     
    276278        def _t_validate(self,user,pwd,server):
    277279                ret=[False]
     280                self.lbl_error.set_text(_("Login failed"))
    278281                if self.sw_n4d:
    279                         self.n4dclient=self._n4d_connect(server)
    280282                        try:
    281                                 loginMethod='N4d'
     283                                self.n4dclient=self._n4d_connect(server)
    282284                                ret=self.n4dclient.validate_user(user,pwd)
    283                         except Exception as e:
     285                        except socket.error as e:
     286                                self.lbl_error.set_text(_("Unknown host"))
    284287                                ret=[False,str(e)]
    285                 else:
    286                         loginMethod='PAM'
    287 #                       p=pam.pam()
    288 #                       if p.authenticate(user,pwd):
    289 #                               ret=[True]
    290288
    291289                self.spinner.stop()
    292290                if not ret[0]:
     291                        self.sta_info.show()
    293292                        self.lbl_error.show()
    294                         self.sta_info.show()
    295293                if ret[0]:
    296                         self.after_validate(loginMethod,user,pwd)
     294                        self.after_validate(user,pwd,server)
    297295                #local validation
    298296        #def _t_validate
     
    304302        def _n4d_connect(self,server):
    305303                context=ssl._create_unverified_context()
     304                try:
     305                        socket.gethostbyname(server)
     306                except:
     307                        #It could be an ip
     308                        try:
     309                                socket.inet_aton(server)
     310                        except Exception as e:
     311                                print(e)
     312                                raise
    306313                c = n4d.ServerProxy("https://"+server+":9779",context=context,allow_none=True)
    307314                return c
Note: See TracChangeset for help on using the changeset viewer.