Esempio n. 1
0
 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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 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()
Esempio n. 4
0
    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()
Esempio n. 5
0
    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)
Esempio n. 6
0
    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()
Esempio n. 7
0
 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)
Esempio n. 8
0
 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)
Esempio n. 9
0
    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)
Esempio n. 10
0
    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)
Esempio n. 11
0
 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)