Пример #1
0
def create_user():
    """
    Creating new User
    :return: the new user json, or 404 if user exist
    """
    user_json = request.json

    try:
        if UserService.is_username_unique(user_json[UserKeys.USERNAME_KEY]):
            UserService.add_user(user_json[UserKeys.USERNAME_KEY],
                                 user_json[UserKeys.HASHED_PASSWORD])
        else:
            return abort(406)
    except KeyError:
        abort(400)

    return {}
Пример #2
0
class AdminWidget(QTabWidget):
    def __init__(self, parent=None):
        self.__users = None

        self.user_service = UserService(self)

        super(AdminWidget, self).__init__(parent)
        self.button_add_user = QPushButton('Add user')
        self.button_remove_user = QPushButton('Remove user')
        self.user_search_input = QLineEdit()
        self.user_list = QListWidget()
        self.button_logout = QPushButton('Logout')

        self.user_search_input.setPlaceholderText('Search users')
        self.user_list.setMinimumWidth(400)

        left_column = QVBoxLayout()
        left_column.addWidget(self.button_add_user)
        left_column.addWidget(self.button_remove_user)
        left_column.addStretch()
        left_column.addWidget(self.button_logout)

        right_column = QVBoxLayout()
        right_column.addWidget(self.user_search_input)
        right_column.addWidget(self.user_list)

        layout = QHBoxLayout()
        layout.addLayout(left_column)
        layout.addLayout(right_column)

        widget = QWidget()
        widget.setLayout(layout)

        self.addTab(widget, 'Users manager')
        self.addTab(UserWidget(parent), 'Books manager')

        self.button_add_user.clicked.connect(self.add_user)
        self.button_remove_user.clicked.connect(
            lambda: self.user_service.delete_user(
                self.__users[self.user_list.currentRow()]
            )
        )
        self.user_search_input.textChanged.connect(self.refresh)
        self.user_list.currentRowChanged.connect(self.user_choice)
        self.button_logout.clicked.connect(parent.request_logout)

    @pyqtSlot()
    def refresh(self):
        self.user_list.clear()
        self.search()
        self.user_list.addItems([user['username'] for user in self.__users])

    def search(self):
        self.__users = self.user_service.users
        search = self.user_search_input.text().lower()
        if search is not None:
            self.__users = filter(lambda x: True if x['username'].lower().find(search) > -1 else False, self.__users)
        self.__users = list(self.__users)

    def user_choice(self, index):
        if self.__users[index]['username'] == UserService.username:
            self.button_remove_user.setEnabled(False)
        else:
            self.button_remove_user.setEnabled(True)

    def add_user(self):
        ok, user = AddUserDialog().get_result(self)
        if not ok:
            return
        self.user_service.add_user(user)