def canAuthent(Permit_, ResName_, ResType_, ShowMsg_=True): """ Функция определяет ограничения на запрашиваемый ресурс. @param Permit_: символ или группа символов, определяющий право доступа на действие. 'u' - использование (ACCESS_USE). 'v' - отображение (ACCESS_VIEW). 'r' - чтение (ACCESS_READ). 'w' - редактирование (ACCESS_EDIT). 'a' - добавление (ACCESS_APPEND). 'd' - удаление (ACCESS_DELETE). @param ResName_: имя ресурса. @param ResType_: тип ресурса. @param ShowMsg_: флаг, описывающий разрешение на отображения сообщения о заблокированном ресурсе для данного пользователя. Параметр необязателен. По умолчанию сообщение показывается. @return: Возвращает True, если ресурс не ограничен, запрашиваемыми правами доступа, False - ресурс ограничен. """ # ВНИМАНИЕ!!! Проверка осуществляется только в режиме выполнения if ic_mode.isRuntimeMode(): app = ic_user.icGetRunner() if app: return app.getUser().CanAuthent(Permit_, ResName_, ResType_, ShowMsg_) return True
def getMainWin(self): """ Определить главное окно системы. """ if ic_mode.isRuntimeMode(): return self.kernel.GetMainWin() return None
def OnClose(self, event): """ Обработчик закрытия главного окна. """ # Если в режиме редактирования, # то при закрытии окно не закрывать приложение if not ic_mode.isRuntimeMode(): event.Skip() return try: ok = True if not ic.utils.ic_exec.IsEmptyMethod(self._OnClose): ok = ic.utils.ic_exec.ExecuteMethod(self._OnClose, self) if ok: # Обычное закрытие окна if self._MainNotebook: self.DelOrg() self._destroyAreaSplitter() # Остановить основной цикл выполнения приложения if self._RunnerApp: if issubclass(self._RunnerApp.__class__, wx.App): self._RunnerApp.ExitMainLoop() event.Skip() else: event.Continue = False except: io_prnt.outErr(u'Ошибка закрытия главного окна') event.Skip()
def RegisterJournal(self, UserName_, DBMode_): """ Прописать юзеря в журнале регистрации. @param UserName_: Имя пользователя. """ prj_name = ic_user.icGet('PrjName') return self._reg_user_journal.register(UserName_, prj_name, DBMode_, ic_mode.isRuntimeMode())
def createKernel(): """ Создать ядро. """ from ic.utils import ic_mode if ic_mode.isRuntimeMode(): return createRuntimeKernel() else: return createEditorKernel()
def _checkLoginUser(self, UserName_): """ Проверка зарегистрированного пользователя. @param UserName_: Имя пользователя. """ if not ic_mode.isRuntimeMode(): # Если режим конфигурирования, то обязательно # проверять уникальность регистрации # чтобы проблем с блокировками не было if self._login_manager: return self._login_manager.isRegUserName(UserName_) return False
def getUserRequisit(UserName_): """ Получить реквизиты пользователя. @param UserName_: Имя пользователя. Если UserName_ не определено, тогда возвращается описание прав доступа текущего пользователя. Если UserName определен, тогда возвращается описание прав доступа указанного пользователя. @return: Функция возвращает реквизиты текущего пользователя. """ if ic_mode.isRuntimeMode(): # Режим исполнения app = ic_user.icGetRunner() return app.getUser().GetUserRequisit(UserName_) else: # Режим редактирования return copy.deepcopy(SPC_IC_USER)
def getAuthent(ResName_, ResType_, ShowMsg_=True): """ Функция возвращает права доступа к ресурсу для текущего пользователя в виде 8-символьной строки. @param ResName_: имя ресурса. @param ResType_: тип ресурса. @param ShowMsg_: флаг, описывающий разрешение на отображение сообщения о заблокированном ресурсе для данного пользователя. Параметр необязателен. По умолчанию сообщение показывается. @return: Возвращает права доступа к ресурсу для текущего пользователя в виде 8-символьной строки. Например '----dawr' """ if ic_mode.isRuntimeMode(): # Режим исполнения app = ic_user.icGetRunner() return app.getUser().GetAuthent(ResName_, ResType_, ShowMsg_) else: # Режим редактирования return FULL_ACCESS_PERMIT
def OnOpen(self, event): """ Обработчик открытия главного окна. """ # Если в режиме редактирования... if not ic_mode.isRuntimeMode(): event.Skip() return try: ok = True if not ic.utils.ic_exec.IsEmptyMethod(self._OnOpen) and \ not self._is_opened: ok = ic.utils.ic_exec.ExecuteMethod(self._OnOpen, self) self._is_opened = True if ok: # Обычное открытие окна event.Skip() else: event.Continue = False except: io_prnt.outErr(u'Ошибка открытия главного окна') event.Skip()
def _exec_on_logout(self, Code_): """ Выполнить при успешном логауте. """ if ic_mode.isRuntimeMode(): ic_exec.ExecuteMethod(Code_, self)