def clickLogin(self, widget, data=None): ''' Callback when the user clicks the login button. @param widget: Button that was clicked @param data: ''' username = util.getUnicode(self.username.get_text()) password = util.hashPassword( self.password.get_text() ) if (self.hostname.get_child().get_text().find(':') == -1): self.error(util.ErrorMessage(_("Hostname value must be hostname:port."))) return (host, port) = self.hostname.get_child().get_text().split(':') try: port = int(port) except ValueError: self.error(util.ErrorMessage(_("Port must be a number."))) return self.client = ScrabbleClient(host, port, self) self.client.login( username, password, VERSION ) widget.set_sensitive(False)
def clickLogin(self, widget, data=None): ''' Callback when the user clicks the login button. @param widget: Button that was clicked @param data: ''' username = util.getUnicode(self.username.get_text()) password = util.hashPassword(self.password.get_text()) if (self.hostname.get_child().get_text().find(':') == -1): self.error( util.ErrorMessage(_("Hostname value must be hostname:port."))) return (host, port) = self.hostname.get_child().get_text().split(':') try: port = int(port) except ValueError: self.error(util.ErrorMessage(_("Port must be a number."))) return self.client = ScrabbleClient(host, port, self) self.client.login(username, password, VERSION) widget.set_sensitive(False)
def changePassword(self, button, oldpassword, password1, password2, dialog): ''' Ask server to change password @param button: Widget that was clicked to activate this handler @param oldpassword: Old password widget @param password1: New Password widget @param password2: New Password Confirmation widget @param dialog: Change Password dialog widget ''' if password1.get_text() != password2.get_text(): self.error(util.ErrorMessage(_("Passwords don't match."))) return self.client.changePassword(util.hashPassword(oldpassword.get_text()), util.hashPassword(password1.get_text())) dialog.destroy()
def changePassword(self, button, oldpassword, password1, password2, dialog): ''' Ask server to change password @param button: Widget that was clicked to activate this handler @param oldpassword: Old password widget @param password1: New Password widget @param password2: New Password Confirmation widget @param dialog: Change Password dialog widget ''' if password1.get_text() != password2.get_text(): self.error(util.ErrorMessage(_("Passwords don't match."))) return self.client.changePassword(util.hashPassword(oldpassword.get_text()), util.hashPassword(password1.get_text())) dialog.destroy()
def clickLogin(self, widget, data=None): ''' Callback when the user clicks the login button. @param widget: Button that was clicked @param data: ''' username = self.username.get_text() password = util.hashPassword(self.password.get_text()) ReactiveManager.txn_execute(self.clickLoginHelper, username, password)
def createNewUser_cb(self, widget, username, password1, password2, dialog): ''' @param widget: @param username: @param password1: @param password2: @param dialog: ''' uname = username.get_text() pw1 = password1.get_text() pw2 = password2.get_text() if len(uname) == 0: self.error(util.ErrorMessage(_("You must enter a username")),dialog) return if len(pw1) == 0: self.error(util.ErrorMessage(_("You must enter a password")),dialog) return if pw1 != pw2: self.error(util.ErrorMessage(_("Passwords do not match")),dialog) return server = gtkutil.getSelectedItem(self.serverView, 0) if server is None: server = self.servers[0][0] for h,g,w,l in self.servers: if h == server: g_port = g w_port = w try: loc = 'http://%s:%s/xmlrpc' % (server,w_port) s = xmlrpclib.ServerProxy(loc) val,msg = s.createNewUser(uname, util.hashPassword(pw1)) except socket.error: self.error(util.ErrorMessage(_('Could not connect to server')),dialog) return if not val: self.error(util.ErrorMessage(lookup.SERVER_MESSAGE_LOOKUP[msg]),dialog) return dialog.destroy() g_loc = '%s:%s' % (server,g_port) self.loginWindow.populateFields_cb(uname, pw1, g_loc) self.destroy()
def renderHTTP(self, ctx): request = inevow.IRequest(ctx) username, password = request.getUser(), request.getPassword() # First make sure we have users defined if (self.factory.hasUsers()): # Make sure that the user/password match and the user is an admin if not (self.factory.authenticate(username, util.hashPassword(password)) and self.factory.isUserAdmin(username)): request.setHeader('WWW-Authenticate', 'Basic realm="PyScrabble Server"') request.setResponseCode(http.UNAUTHORIZED) return "Authentication Required." return rend.Page.renderHTTP(self, ctx)
def modifyUser(self, ctx, oldPassword, password, isAdministrator): user = self.factory.getUser(self.username) if password is not None: pw = util.hashPassword(password) self.factory.doChangePassword(self.username, pw) user.setPassword( pw ) if isAdministrator == "Yes": user.setIsAdmin(True) else: user.setIsAdmin(False) self.factory.updateUser(user)
def modifyUser(self, ctx, oldPassword, password, isAdministrator): user = self.factory.getUser(self.username) if password is not None: pw = util.hashPassword(password) self.factory.doChangePassword(self.username, pw) user.setPassword(pw) if isAdministrator == "Yes": user.setIsAdmin(True) else: user.setIsAdmin(False) self.factory.updateUser(user)
def renderHTTP(self, ctx): request = inevow.IRequest(ctx) username, password = request.getUser(), request.getPassword() # First make sure we have users defined if (self.factory.hasUsers()): # Make sure that the user/password match and the user is an admin if not (self.factory.authenticate(username, util.hashPassword(password)) and self.factory.isUserAdmin(username)): request.setHeader('WWW-Authenticate', 'Basic realm="PyScrabble Server"') request.setResponseCode(http.UNAUTHORIZED) return "Authentication Required." return rend.Page.renderHTTP(self, ctx)
def createNewUserHelper(self, username, password): hashedPassword = util.hashPassword(password) users = DStringList(); DStringList.Map(users, "global:users") if username.upper() in map(upper, users.Members()): self.error(util.ErrorMessage(ServerMessage([USER_ALREADY_EXISTS]))) if username in constants.RESERVED_NAMES: self.error(util.ErrorMessage(ServerMessage([USERNAME_NOT_ALLOWED]))) if (len(username) > constants.MAX_NAME_LENGTH): self.error(util.ErrorMessage(ServerMessage([USERNAME_MUST_BE_LESS_THAN]))) users.Append(username) pwString = DString() DString.Map(pwString, "user:"******":hashedpw") pwString.Set(hashedPassword) gobject.idle_add(self.loginWindow.populateFields_cb, username, password, "DEBUG") gobject.idle_add(self.destroy)