def addOperationLog(self, cmsOperationLog, operation_cd, object_id='', object_type='', note=''): cmsOperationLog.operation_date = datetime.now() cmsOperationLog.operation_cd = operation_cd cmsOperationLog.object_id = object_id cmsOperationLog.object_type = object_type cmsOperationLog.ip_addr = StrUtil.get_ip_addr() cmsOperationLog.note = note return db.session.add(cmsOperationLog)
def saveErrLog(self, error_cd, user_id, db_id='', note=''): ip_addr = StrUtil.get_ip_addr() url = StrUtil.get_current_url(error_cd) db.session.execute( 'begin ' + self.package_name + '.save_error_log' + '(:error_cd, :user_id, :db_id, :ip_addr, :url, :note); ' + 'end;', { 'error_cd': error_cd, 'user_id': user_id, 'db_id': db_id, 'ip_addr': ip_addr, 'url': url, 'note': note })
def saveOperationLog(self, user_id, db_id, operation_cd, object_id='', object_type='', note=''): ip_addr = StrUtil.get_ip_addr() db.session.execute( 'begin ' + self.package_name + '.save_operation_log' + '(:user_id, :operation_cd, :object_id, :object_type, :db_id, :note, :ip_addr); ' + 'end;', { 'user_id': user_id, 'operation_cd': operation_cd, 'object_id': object_id, 'object_type': object_type, 'db_id': db_id, 'note': note, 'ip_addr': ip_addr })
def wrapper(*args, **kwargs): logout_user() StrUtil.print_debug('login_required. func=[{}]'.format( str(func.__name__))) db_id = app.lib.cms_lib.session.get_db_id() if not db_id: flash('[db_id]パラメータが必要です') return redirect(url_for('login')) # データベースオブジェクトを取得する current_db = app.lib.cms_lib.session.get_current_db(db_id) # グローバル変数に設定する app.lib.cms_lib.session.current_db = current_db if not current_db: flash('[db_id:{}]情報を取得できません'.format(db_id)) return redirect(url_for('login', db_id=db_id)) StrUtil.print_debug('login_required. cur_db.db_id=[{}]'.format( str(current_db.db_id))) session_id = app.lib.cms_lib.session.get_session_id( current_db.session_cookie_name) if session_id: StrUtil.print_debug( 'login_required. session_cookie_name:{0} session_id:{1}'. format(current_db.session_cookie_name, session_id)) # セッションテーブルからユーザIDを取得する(有効期限:一週間) cst = CmsSessionTable.get_session_info( current_db.session_cookie_name, session_id) if cst is None: flash('invalid user_id or password') return redirect(url_for('login', db_id=db_id)) # 取得したユーザIDでユーザ情報を取得する user = User.query.filter_by(tuid=cst.user_id).first() if user is None: flash('invalid user_id or password') return redirect(url_for('login', db_id=db_id)) # アクセス権限チェック pkgIpAddrUtil = PkgIpAddrUtil() id_addr = StrUtil.get_ip_addr() if not id_addr or not pkgIpAddrUtil.isDbIpAddrVisible( db_id, id_addr): # ログ出力 DBの参照権限なし PkgCmsErrLog().saveErrLog(Const.IP_ADDRESS_ERROR, user.tuid, str(current_db.db_id)) db.session.commit() flash('利用権限がありません') return redirect(url_for('login', db_id=db_id)) # 参照権限チェック pkgCmsSecurity = PkgCmsSecurity() if not pkgCmsSecurity.isDbVisible(db_id, user.tuid): # ログ出力 DBの参照権限なし PkgCmsErrLog().saveErrLog(Const.DB_PRIVS_ERROR, user.tuid, str(current_db.db_id)) db.session.commit() flash('このDBを参照する権限がありません') return redirect(url_for('login', db_id=db_id)) StrUtil.print_debug('login_required. user_id=[{}]'.format( str(current_db.db_id))) login_user(user, False) session['db_id'] = db_id else: StrUtil.print_debug('login_required. no session id got.') return redirect( UserAuth._get_redirect_url( url_for('login', db_id=current_db.db_id))) return func(*args, **kwargs)