Example #1
0
  def __init__(self, mobile):
    self.gladefile = "ui/edakia.glade"
    self.wTree =  gtk.glade.XML(self.gladefile,"pypassword")
    self.mobile = mobile
    self.password = ""
    dic = { "on_pypassword_destroy" : gtk.main_quit,
            "on_login_clicked" : self.password_entered,
            "on_field_sender_password_key_press_event" : self.pypassword_password_key_press_event,
            "on_password_cancel_clicked" : gtk.main_quit,
            "destroy" : gtk.main_quit
          }

    self.wTree.signal_autoconnect(dic)
    self.wTree.get_widget("pypassword").show()
    self.loading = ProcessWindow()
Example #2
0
class Password:

  def __init__(self, mobile):
    self.gladefile = "ui/edakia.glade"
    self.wTree =  gtk.glade.XML(self.gladefile,"pypassword")
    self.mobile = mobile
    self.password = ""
    dic = { "on_pypassword_destroy" : gtk.main_quit,
            "on_login_clicked" : self.password_entered,
            "on_field_sender_password_key_press_event" : self.pypassword_password_key_press_event,
            "on_password_cancel_clicked" : gtk.main_quit,
            "destroy" : gtk.main_quit
          }

    self.wTree.signal_autoconnect(dic)
    self.wTree.get_widget("pypassword").show()
    self.loading = ProcessWindow()

  def password_entered(self, widget, data=None):
    self.password = self.wTree.get_widget("field_sender_password").get_text()
    print self.password
    status, message = self.validate_password()
    if status:
      #ps = Processing(self)
      #ps.start()
      self.display_process_window()
      login_response, login_message = self.authenticate_user()
      #ps.quit = True
      if login_response:
        self.wTree.get_widget("pypassword").hide()
        self.loading.hide()
        ReceiverMobile(self.mobile, self.password)
      else:
        self.hide_process_window(login_message)
     
    else:
      self.password = ""
      self.wTree.get_widget("field_sender_password").set_text("")
      self.wTree.get_widget("pypasswordError").show()
  
  def validate_password(self):
    p = re.compile('(^[0-9]{4,12}$)')
    if p.match(self.password)!= None :
      return True, "Given Password is Valid"
    else:
      return False, "Given Password is not Valid"
  
  def display_process_window(self):
    self.wTree.get_widget("pypasswordError").hide()
    self.wTree.get_widget("pypassword").hide()
    self.loading.show()
      
  def hide_process_window(self, message):
    self.wTree.get_widget("field_sender_password").set_text("")
    status = self.wTree.get_widget("password_status")
    status.set_text(message)
    self.wTree.get_widget("pypasswordError").show()
    self.loading.hide()
    self.wTree.get_widget("pypassword").show()

  def authenticate_user(self):
    buf = cStringIO.StringIO()
    p = pycurl.Curl()
    p.setopt(p.WRITEFUNCTION, buf.write)
    p.setopt(pycurl.URL, PROTOCOL + self.mobile + ":" + self.password +"@" + USER_LOGIN_URL)
    p.perform()
    result = eval(buf.getvalue())
    buf.close()
    p.close()
    if result.has_key('user'):
      print "Successful login"
      return True, "Login Successful"
    elif result.has_key('error'):
      print "Login Failed"
      return False, result['error']
    else:
      print "reading error" 
      return False, "Network not reachable"

  def pypassword_password_key_press_event(self, widget, event):
    keyname = gtk.gdk.keyval_name(event.keyval)
    #print "Key %s (%d) was pressed" % (keyname, event.keyval)
    if keyname == "Return":
      print "Return is pressed"
      self.password_entered(widget)