예제 #1
0
class icMemberRole(icRole):
    """
    Пользователь.
    """
    id = 'Member'
    permissions = icprotector.readonly((icpermission.view_permission,
                                        ))
예제 #2
0
class icRootUser(icBaseUser):
    """
    Root системы.
    """
    roles = icprotector.readonly((icrole.icAdminRole(), ))

    def __init__(self, user=None, passw=None, *arg, **kwarg):
        """
        Конструктор.
        """
        # Списоск ролей пользователя
        icBaseUser.__init__(self)
        if user:
            self.Login(user, passw)

    def __is_valid(self, user, passw):
        """
        Проверка соответствия пароля.
        """
        return user == 'root'

    def Login(self, user, passw=None, *arg, **kwarg):
        """
        Вход в систему.
        """
        if not self.__is_valid(user, passw):
            raise icexceptions.LoginInvalidException(
                (coderror.IC_LOGIN_ERROR, 'root login error'))

        self.username = user
        return True
예제 #3
0
class icEditorRole(icRole):
    """
    Редактор.
    """
    id = 'Editor'
    permissions = icprotector.readonly((icpermission.view_permission,
                                        icpermission.edit_permission,
                                        ))
예제 #4
0
class icContributorRole(icRole):
    """
    Пользователь с правами расширения системы.
    """
    id = 'Contributor'
    permissions = icprotector.readonly((icpermission.view_permission,
                                        icpermission.add_permission,
                                        icpermission.delete_permission
                                        ))
예제 #5
0
class icAdminRole(icRole):
    """
    Администратор системы.
    """
    id = 'Admin'
    permissions = icprotector.readonly((icpermission.view_permission,
                                        icpermission.edit_permission,
                                        icpermission.add_permission,
                                        icpermission.delete_permission,
                                        ))
예제 #6
0
class icBaseUser(object):
    """
    Базовый класс пользователя системы.
    """
    roles = icprotector.readonly([])

    def __init__(self, *arg, **kwarg):
        """
        Конструктор.
        """
        # Списоск ролей пользователя
        self.username = None

    def Login(self, user, passw=None, *arg, **kwarg):
        """
        Вход в систему.
        """
        pass

    def Logout(self):
        """
        Выход из системы.
        """
        pass

    def getRoles(self):
        """
        Возвращает список ролей.
        """
        return self.roles

    def getPermissions(self):
        """
        Возвращает список разрешений для данной роли.
        """
        lst = []
        for role in self.roles:
            lst = lst + list(role.getPermissions())
        return lst
예제 #7
0
    def __init__(self,
                 parent,
                 id=-1,
                 component=None,
                 logType=0,
                 evalSpace=None,
                 bCounter=False,
                 progressDlg=None):
        """
        Конструктор.

        @type parent: C{wx.Window}
        @param parent: Указатель на родителя
        @type id: C{int}
        @param id: Идентификатор
        @type component: C{dictionary}
        @param component: Словарь описания компонента
        @type logType: C{int}
        @param logType: Тип лога (0 - консоль, 1- файл, 2- окно лога)
        @param evalSpace: Пространство имен, необходимых для вычисления внешних выражений
        @type evalSpace: C{dictionary}
        @type bCounter: C{bool}
        @param bCounter: Признак отображения в ProgressBar-е. Иногда это не нужно -
            для создания объектов полученных по ссылки. Т. к. они не учтены при подсчете
            общего количества объектов.
        @type progressDlg: C{wx.ProgressDialog}
        @param progressDlg: Указатель на идикатор создания формы.
        """
        component = util.icSpcDefStruct(self.component_spc, component)
        icwidget.icSimple.__init__(self, parent, id, component, logType,
                                   evalSpace)

        icrole.icRole.__init__(self, self.name, self.description)
        # Установить идентификатор роли как имя объекта
        self.id = self.name

        icRole.permissions = icprotector.readonly(self._createPermissions())
예제 #8
0
    def __init__(self,
                 parent,
                 id=-1,
                 component=None,
                 logType=0,
                 evalSpace=None,
                 bCounter=False,
                 progressDlg=None):
        """
        Конструктор.

        @type parent: C{wx.Window}
        @param parent: Указатель на родителя
        @type id: C{int}
        @param id: Идентификатор
        @type component: C{dictionary}
        @param component: Словарь описания компонента
        @type logType: C{int}
        @param logType: Тип лога (0 - консоль, 1- файл, 2- окно лога)
        @param evalSpace: Пространство имен, необходимых для вычисления внешних выражений
        @type evalSpace: C{dictionary}
        @type bCounter: C{bool}
        @param bCounter: Признак отображения в ProgressBar-е. Иногда это не нужно -
            для создания объектов полученных по ссылки. Т. к. они не учтены при подсчете
            общего количества объектов.
        @type progressDlg: C{wx.ProgressDialog}
        @param progressDlg: Указатель на идикатор создания формы.
        """
        component = util.icSpcDefStruct(self.component_spc, component)
        icwidget.icSimple.__init__(self, parent, id, component, logType,
                                   evalSpace)
        icuser.icUser.__init__(
            self,
            ic_file.PathFile(ic_user.icGet('SYS_RES'),
                             icuser.DEFAULT_USERS_RES_FILE))

        icUser.roles = icprotector.readonly(self._createRoles())