Advertisement
stuppid_bot

Untitled

Dec 29th, 2014
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.21 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from ui.login import Ui_LoginDialog
  3. from PyQt4.QtGui import QApplication, QDialog
  4.  
  5. class Model:    
  6.     users = [{"id": 1, "username": "Admin", "password": "1", "role": "admin"},
  7.              {"id": 2, "username": "tester", "password": "test", "role": "user"}]
  8.    
  9.     def __init__(self, controller):
  10.         self.controller = controller
  11.    
  12.     def login(self, username, password):
  13.         for user in self.users:
  14.             if user['username'] == username and user['password'] == password:
  15.                 return {"id": user['id'], "username": user['username'], "role": user['role']}
  16.            
  17.         return {"error": "Invalid username or password."}
  18.  
  19. class View(QDialog, Ui_LoginDialog):
  20.     def __init__(self, controller):
  21.         QDialog.__init__(self)
  22.         self.setupUi(self)
  23.         self.controller = controller
  24.         self.errorLabel.setStyleSheet("color: red")
  25.         self.errorLabel.hide()
  26.         self.loginButton.clicked.connect(self.onLogin)
  27.        
  28.     def onLogin(self):
  29.         self.errorLabel.hide()
  30.         username = unicode(self.usernameEdit.text())
  31.         password = unicode(self.passwordEdit.text())
  32.         self.controller.login(username, password)
  33.    
  34.     def showError(self, text):
  35.         self.errorLabel.show()
  36.         self.errorLabel.setText(text)
  37.        
  38. class Controller:
  39.     def __init__(self):
  40.         self.model = Model(self)
  41.         self.view = View(self)
  42.         self.view.show()
  43.        
  44.     def login(self, username, password):
  45.         username = username.strip()
  46.         password = password.strip()
  47.        
  48.         if not username:
  49.             self.view.showError(u"Введите имя пользователя.")
  50.         elif not password:  
  51.             self.view.showError(u"Введите пароль.")
  52.         else:
  53.             result = self.model.login(username, password)
  54.            
  55.             if 'error' in result:
  56.                 self.view.showError(result['error'])
  57.             else:
  58.                 print u"Вы авторизовались как {username}.".format(**result)
  59.                 self.view.close()
  60.        
  61. if __name__ == '__main__':
  62.     a = QApplication([])
  63.     c = Controller()
  64.     a.exec_()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement