def listMessageHistoryAjax(request): ''' show messages detail list input: request return: messages content object author: Kolin Hsu ''' postdata = getPostdata(request) messages_id = postdata.get('messages_id', None) if messages_id is not None: box_lst = list( request.user.messagebox_set.filter( messages_id=messages_id).values_list('id', flat=True)) result = list( MessageHistory.objects.filterformat( 'id', 'create_user__nick_name', 'create_group_name', 'createtime', 'messagebox__read', 'messagehistoryfiles__main_id', messagebox__id__in=box_lst, messagebox__omuser_id=request.user.id).distinct().order_by( '-createtime')) info('%s list message history success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('搜尋成功'), result).returnJSON() else: info('%s list message history error.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('請提供訊息編號')).returnJSON()
def syncLDAP(): ''' Get parameters to sync LDAP input: execute LDAP functions return: result message author: Kolin Hsu,Pei Lin ''' result = {} try: ldpadatastr = SystemSetting.objects.get(name='ldap_config').value ldpadata_json = json.loads(ldpadatastr) ldap_client_server = ldpadata_json['ldap_client_server'] ldap_client_server_port = ldpadata_json['ldap_client_server_port'] ldap_base_dn = ldpadata_json['ldap_base_dn'] ldap_bind_user = ldpadata_json['ldap_bind_user'] ldap_bind_user_password = ldpadata_json['ldap_bind_user_password'] if ldap_client_server != "" and ldap_client_server_port != "" and ldap_base_dn != "" and ldap_bind_user != "" and ldap_bind_user_password != "": info('LDAP integration start.') create_LDAP_user(ldap_client_server,ldap_client_server_port,ldap_base_dn,ldap_bind_user,ldap_bind_user_password) create_LDAP_group(ldap_client_server,ldap_client_server_port,ldap_base_dn,ldap_bind_user,ldap_bind_user_password) mapping_group_user(ldap_client_server,ldap_client_server_port,ldap_base_dn,ldap_bind_user,ldap_bind_user_password) info('LDAP integration finish.') result['status'] = 'success' result['message'] = _('LDAP 同步完成') else: result['status'] = 'fail' result['message'] = _('LDAP 設定值為空') except Exception as e: error("LDAP integration error:"+e.__str__()) result['status'] = 'fail' result['message'] = _('LDAP 同步失敗 ,')+e.__str__() finally: GlobalObject.__statusObj__["ldapRunning"] = False return result
def loadSidebarDesignAjax(request): ''' load left side bar design json input: request return: json author: Kolin Hsu ''' if request.user.is_superuser: #function variable result = {} count = 0 sidebar_design = GlobalObject.__sidebarDesignObj__['sidebar_design'] #get item id count for item in sidebar_design: flow_uuid = item['flow_uuid'] if flow_uuid == 'custom': item_id = int(item['id'][7:]) if item_id > count: count = item_id result['sidebar_design'] = sidebar_design result['count'] = count info('%s load SidebarDesign success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('讀取成功。'), result).returnJSON() else: info('%s has no permission.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()
def deleteMessageHistoryAjax(request): ''' create messages content input: request return: json author: Kolin Hsu ''' postdata = getPostdata(request) messagehistory_id_list = postdata.get('messagehistory_id', '') action = postdata.get('action', 'delete') if messagehistory_id_list: if action == 'delete': request.user.messagebox_set.filter( messagehistory_id__in=messagehistory_id_list).update( delete=True) info('%s delete message success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('刪除訊息成功')).returnJSON() else: request.user.messagebox_set.filter( messagehistory_id__in=messagehistory_id_list).update( delete=False) return ResponseAjax(statusEnum.success, _('訊息還原成功')).returnJSON() else: info('%s delete message success.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('找不到訊息資料')).returnJSON()
def permissionDenied(request): ''' return permission denied input: request return: json author: Kolin Hsu ''' info('%s has no permission.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()
def loadOrganizationAjax(request): ''' load organization input: request return: json author: Kolin Hsu ''' result = loadOrganization() info('%s load organization success.' % request.user.username,request) return ResponseAjax(statusEnum.success, _('讀取成功。'), result).returnJSON()
def composeMessageDetailAjax(request): ''' create messages input: request return: json author: Kolin Hsu ''' result = {} postdata = getPostdata(request) messagehistory_id = postdata.get('messagehsitory_id', '') reply_history = [] if messagehistory_id: display_field = [ 'messages_id__subject', 'content', 'createtime', 'messages_id', 'create_user_id', 'create_user__nick_name', 'create_group_id', 'create_group_name', 'delete_users_username', 'receive_groups_name' ] reply_history = list( MessageHistory.objects.filterformat(*display_field, id=messagehistory_id))[0] #取出history members的nick_name(給引用使用) receivers = list( HistoryMembers.objects.filter( messagehistory_id=messagehistory_id).values_list( 'user_id__nick_name', flat=True)) #取出history members的nick_name以及id(給回覆的選單使用) reply_users = list( HistoryMembers.objects.filter( messagehistory_id=messagehistory_id).values( 'user_id', 'user_id__nick_name')) #取出history groups的name以及id(給回覆的選單使用) reply_groups = list( HistoryGroups.objects.filter( messagehistory_id=messagehistory_id).values( 'group_id', 'group_id__name')) #把已刪除的使用者以及組織名稱放入陣列中 if reply_history['delete_users_username']: receivers.extend( literal_eval(reply_history['delete_users_username'])) if reply_history['receive_groups_name']: receivers.extend(literal_eval( reply_history['receive_groups_name'])) result['reply_users'] = reply_users result['reply_groups'] = reply_groups result['receivers'] = receivers request_user_group_list = list( request.user.groups.filter(omgroup__functional_flag=False).values( 'id', 'name')) result['reply_history'] = reply_history result['request_user_group_list'] = request_user_group_list info('%s load message success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('請求處理成功'), result).returnJSON()
def createPositionAjax(request): ''' create position input: request return: json author: Kolin Hsu ''' #get post data postdata = getPostdata(request) display_name = postdata.get('display_name','') description = postdata.get('description','') Position.objects.create(display_name=display_name,description=description) info('%s create position success.' % request.user.username,request) return ResponseAjax(statusEnum.success, _('建立成功。')).returnJSON()
def searchGroupUserAjax(request): ''' list sender input: request return: json author: Kolin Hsu ''' postdata = getPostdata(request) searchkey = postdata.get('searchkey', '') field_list = ['groups__id'] ordercolumn = 'nick_name' result = UserSearch(field_list, searchkey, ordercolumn) info('%s search users by group success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('請求處理成功'), result).returnJSON()
def ldapCheckConnect(param): ''' use ldap3 check connection input: use bind_user to connect LDAP return: connection status author: Jia Liu ''' return_result = {} try: from ldap3 import Server, Connection, ALL postdata = param.POST ldap_client_server = postdata.get('ldap_client_server', '') ldap_client_server_port = postdata.get('ldap_client_server_port', '') ldap_bind_user = postdata.get('ldap_bind_user', '') ldap_bind_user_password = postdata.get('ldap_bind_user_password', '') ldap_server = Server(host=ldap_client_server, port=int(ldap_client_server_port), use_ssl=False, get_info=ALL, connect_timeout=2) ldap_connection = Connection(ldap_server, user=ldap_bind_user, password=ldap_bind_user_password, auto_bind='NONE', version=3, authentication='SIMPLE', client_strategy='SYNC', auto_referrals=True, check_names=True, read_only=False, lazy=False, raise_exceptions=False, receive_timeout=2) ldap_connection.bind() result = ldap_connection.result if result['description'] == 'success': return_result["status"] = "success" return_result["message"] = _('LDAP連線成功') info('LDAP server connection is successful.') elif result['description'] == 'invalidCredentials': return_result["status"] = "invalidCredentials" return_result["message"] = _('LDAP帳號密碼錯誤') info('"%s" Wrong username or password.' % ldap_bind_user) ldap_connection.unbind() return return_result except Exception as e: error(e, param) return_result["status"] = "error" return_result["message"] = _('AD伺服器無法使用') return return_result
def ldapManualSyncAjax(request): ''' LDAP manual Sync input: execute LDAP functions return: messages author: Pei Lin ''' if check_app('omldap'): from omldap.views import ldapManualSync result = ldapManualSync(request) if result["status"] == "success": info('%s ldap Check Connect success.' % request.user.username, request) return ResponseAjax(statusEnum.success, result['message']).returnJSON() elif result["status"] == "fail": info('%s ldap Check Connect error.' % request.user.username, request) return ResponseAjax(statusEnum.not_found, result['message']).returnJSON() else: info('%s ldap Check Connect error.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, result['message']).returnJSON() else: info('%s ldap Check Connect error.' % request.user.username, request) return ResponseAjax(statusEnum.not_found, _('您尚未安裝omldap APP,請聯絡原廠。')).returnJSON()
def requestAjax(request): ''' send user's service request return: json author: Arthur ''' username = request.user.username postdata = request.POST.copy() files = request.FILES.getlist('files', '') result = {} #print(postdata) if username: require_field = ['api_path', 'service_id', 'formdata'] checker = DataChecker(postdata, require_field) if checker.get('status') == 'success': #判斷權限 postdata['flow_uuid'] = FlowActiveGlobalObject.APIgetUUID( postdata.get('api_path')) thisQuery = list( OmService.objects.filter( service_id=postdata.get('service_id'))) if len(thisQuery): service_obj = thisQuery[0] #print(service_obj.default_value) service_obj = json.loads(service_obj.default_value) postdata["formdata"] = json.loads(postdata["formdata"]) for default_col in service_obj: postdata["formdata"].append(default_col) postdata["formdata"] = json.dumps(postdata["formdata"]) else: info('%s update Service error' % username, request) return ResponseAjax(statusEnum.error, _('查無此服務。')).returnJSON() result = createOmData(postdata, request.user.username, files) if result['status']: return ResponseAjax(statusEnum.success, result['message']).returnJSON() else: return ResponseAjax(statusEnum.not_found, result['message']).returnJSON() else: return ResponseAjax(statusEnum.not_found, _('缺少必填欄位。')).returnJSON() else: error('%s request_service with no permission' % username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()
def exportServcieAjax(request): if OmServiceDesign.objects.all().count() > 0: max = OmServiceDesign.objects.all().aggregate(Max('id')).get('id__max') box_object = list( OmServiceDesign.objects.filter(id=max).values('content')) box_object = json.loads(box_object[0]["content"]) #翻譯語言 lan_package = FlowActiveGlobalObject.getSysLanDict('service') result = {"box_object": box_object, "lan_package": lan_package} info(request, '%s export language package success.' % request.user.username) return ResponseAjax(statusEnum.success, _('匯出成功。'), result).returnJSON()
def searchSendGroupAjax(request): ''' list sender input: request return: json author: Kolin Hsu ''' postdata = getPostdata(request) searchkey = postdata.get('searchkey', '') adGroup = postdata.get('adGroup', ['1', '0']) field_list = ['name__icontains'] ordercolumn = 'name' result = GroupSearch(field_list, searchkey, ordercolumn, adGroup) info('%s search send group success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('請求處理成功'), result).returnJSON()
def listSidebarDesignAjax(request): ''' list left side bar custom item input: request return: json author: Kolin Hsu ''' #function variable result = [] sidebar_design = GlobalObject.__sidebarDesignObj__['sidebar_design'] for item in sidebar_design: if item['flow_uuid'] == 'custom': result.append(item) info('%s list SidebarDesign success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('讀取成功。'), result).returnJSON()
def updateOrganizationAjax(request): ''' update organization input: request return: json author: Kolin Hsu ''' postdata = getPostdata(request) org_str = postdata.get('org','{}') o = Organization.objects.filter(name='organization') if o: o.update(value=org_str) else: Organization.objects.create(name='organization',value=org_str) setOrgToGlobal(org_str) info('%s update organization success.' % request.user.username,request) return ResponseAjax(statusEnum.success, _('更新成功。')).returnJSON()
def loadSystemConfigAjax(request): ''' show system log level input: request return: log level author: Kolin Hsu ''' if request.user.is_superuser: result = {} POOL_MAX_WORKER = SystemSetting.objects.get( name='pool_max_worker').value PI_agree = SystemSetting.objects.get(name='PI_agree').value SU_agree = SystemSetting.objects.get(name='SU_agree').value loglevel = logging.getLevelName( logging.getLogger('django').getEffectiveLevel()) ldapstr = SystemSetting.objects.get(name='ldap_config').value ldap_config = json.loads(ldapstr) settingsloglevel = settings.LOG_LEVEL result['LOG_LEVEL'] = loglevel result['POOL_MAX_WORKER'] = POOL_MAX_WORKER result[ 'settings_log_level'] = "Log level is already changed,settings LEVEL is " + settingsloglevel result['ldap_config'] = ldap_config result['PI_agree'] = PI_agree result['SU_agree'] = SU_agree try: with open( os.path.join(settings.BASE_DIR, 'omflow/syscom', 'license.bin'), 'rb') as file: license_file = file.read().decode('UTF-8') file.close() except: license_file = '' result['license'] = license_file #told front end which field has been modified if loglevel != settings.LOG_LEVEL: result['Level_Change'] = True else: result['Level_Change'] = False info('%s load SystemConfig success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('讀取成功。'), result).returnJSON() else: info('%s has no permission.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。'), result).returnJSON()
def getDiskStatusAjax(request): ''' check server disk space enough or not input: request return: boolean author: Kolin Hsu ''' postdata = getPostdata(request) file_size = int(postdata.get('file_size', '0')) disk_obj = shutil.disk_usage("/") disk_free = disk_obj.free // (2**20) if disk_free - file_size > 10: result = True else: result = False info('%s get disk status success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('查詢成功。'), result).returnJSON()
def importTranslationAjax(request): ''' import service language package input: request return: json author: Arthur ''' #function variable require_field = ['language'] #server side rule check postdata = getPostdata(request) language_str = postdata.get('language_list', '') language = postdata.get('language', '') checker = DataChecker(postdata, require_field) if checker.get('status') == 'success': #wa = WorkspaceApplication.objects.get(id=app_id) #language_dict = json.loads(wa.language_package) max = OmServiceDesign.objects.all().aggregate(Max('id')).get('id__max') this_service = OmServiceDesign.objects.get(id=max) language_dict = json.loads(this_service.language_package) temp_dict = {} language_list = language_str.split('\r\n') for line in language_list: if line: sp_index = line.find(':') if line[:sp_index] == 'original': key = line[sp_index + 1:] else: temp_dict[key] = line[sp_index + 1:] language_dict[language] = temp_dict language_str = json.dumps(language_dict) this_service.language_package = language_str this_service.save() #set global FlowActiveGlobalObject.setSysLanDict("service", language, temp_dict) info('%s import language package success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('匯入成功。')).returnJSON() else: info( '%s missing some require variable or the variable type error.' % request.user.username, request) return ResponseAjax(statusEnum.not_found, checker.get('message', ''), checker).returnJSON()
def listHistoryMissionAjax(request): ''' list my groups missions. input: request return: json author: Kolin Hsu ''' #get post data postdata = getPostdata(request) updatetime_str = postdata.get('updatetime', '') updatetime = updatetime_str.split(',') group_id = postdata.get('group_id', '') field_list = [ 'title__icontains', 'flow_name__icontains', 'status__icontains', 'create_user__nick_name__icontains' ] display_field = [ 'flow_name', 'flow_uuid', 'title', 'create_user_id__nick_name', 'data_id', 'data_no', 'updatetime', 'assign_group_id', 'assign_group_id__display_name', 'assignee_id__nick_name', 'attachment' ] if group_id: username_list = list( OmUser.objects.filter(groups__id=group_id, delete=False).values_list('username', flat=True)) query = Missions.objects.filter( Q(update_user_id__in=username_list) & Q(updatetime__range=updatetime) & Q(history=True) & Q(is_active=True) & Q(deploy_flag=True)).values(*display_field) else: query = Missions.objects.filter( Q(update_user_id=request.user.username) & Q(updatetime__range=updatetime) & Q(history=True) & Q(is_active=True) & Q(deploy_flag=True)).values(*display_field) result = DatatableBuilder(request, query, field_list) #載入語言包 language = get_language() result['data'] = Translator('datatable_multi_app', 'active', language, None, None).Do(result['data']) info('%s list MissionHistory success.' % request.user.username, request) return JsonResponse(result)
def listMessagesAjax(request): ''' show all messages list input: request return: messages object author: Kolin Hsu ''' mes_box = getPostdata(request).get('mes_box', 'Inbox') field_list = ['messages_id__subject__icontains'] if mes_box == 'Inbox': display_field = [ 'messages_id', 'messages_id__subject', 'createtime', 'id', 'create_group__name', 'create_user__nick_name', 'messagebox__read', 'messagehistoryfiles__main_id', 'content' ] messages_query = MessageHistory.objects.filterformat( *display_field, messagebox__omuser_id=request.user.id, messagebox__delete=False).exclude( create_user_id=request.user.id).distinct() elif mes_box == 'Sent': display_field = [ 'messages_id', 'messages_id__subject', 'createtime', 'id', 'create_group__name', 'create_user__nick_name', 'messagebox__read', 'messagehistoryfiles__main_id', 'content' ] messages_query = MessageHistory.objects.filterformat( *display_field, messagebox__omuser_id=request.user.id, create_user_id=request.user.id, messagebox__delete=False).distinct() elif mes_box == 'Trash': display_field = [ 'messages_id', 'messages_id__subject', 'createtime', 'id', 'create_group__name', 'create_user__nick_name', 'messagebox__read', 'messagehistoryfiles__main_id', 'content' ] messages_query = MessageHistory.objects.filterformat( *display_field, messagebox__omuser_id=request.user.id, messagebox__delete=True).distinct() result = DatatableBuilder(request, messages_query, field_list) info('%s list message success.' % request.user.username, request) return JsonResponse(result)
def createMessagesAjax(request): ''' create messages input: request return: json author: Kolin Hsu ''' #取得post資料 postdata = getPostdata(request) subject = postdata.get('subject', '') if subject: #建立一筆新的messages messages = Messages.objects.create(subject=subject) #建立MessageHistory info('%s create message success.' % request.user.username, request) return createMessageHistoryAjax(request, messages.id) else: info('%s create message error.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('提供資料格式有誤')).returnJSON()
def deletePositionAjax(request): ''' delete position input: request return: json author: Kolin Hsu ''' #function variable require_field = ['id'] #server side rule check postdata = getPostdata(request) checker = DataChecker(postdata, require_field) #get post data id_list = postdata.get('id','') if checker.get('status') == 'success': Position.objects.filter(id__in=id_list).delete() info('%s update position success.' % request.user.username,request) return ResponseAjax(statusEnum.success, _('刪除成功。')).returnJSON() else: info('%s missing some require variable or the variable type error.' % request.user.username,request) return ResponseAjax(statusEnum.not_found, checker.get('message'), checker).returnJSON()
def uploadLicenseFileAjax(request): ''' upload license file input: request return: list author: Kolin Hsu ''' if request.user.is_superuser: #function variable upload_file = request.FILES.get("file", None) if upload_file: license_file = open( os.path.join(settings.BASE_DIR, 'omflow/syscom/', 'license.bin'), 'wb+') for chunk in upload_file.chunks(): license_file.write(chunk) license_file.close() info('%s upload license file success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('上傳成功。')).returnJSON() else: info('%s upload license file error.' % request.user.username, request) return ResponseAjax(statusEnum.not_found, _('請選擇檔案。')).returnJSON() else: info('%s has no permission.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()
def saveDashboardAjax(request): ''' save user's omdashboard setting input: request return: json author: Arthur ''' #Server Side Rule Check username = request.user.username postdata = getPostdata(request) if username: require_field = ['content'] checker = DataChecker(postdata, require_field) if checker.get('status') == 'success': #static variable dashboard = OmDashboard.objects.get_or_create(user=request.user)[0] setattr(dashboard, "content", postdata.get('content', '')) dashboard.save() info('%s update Dashboard success' % username, request) return ResponseAjax(statusEnum.success, _('儲存成功')).returnJSON() else: info('%s update Dashboard error' % username, request) return ResponseAjax(statusEnum.not_found, checker.get('message'), checker).returnJSON() else: info('%s update Dashboard with no permission' % username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()
def listFilesAjax(request): ''' list files input: request return: list author: Kolin Hsu ''' if request.user.is_superuser: #function variable field_list = [] query = '' #server side rule check require_field = ['app_name'] postdata = getPostdata(request) checker = DataChecker(postdata, require_field) if checker.get('status') == 'success': #get post data app_name = postdata.get('app_name', '') createtime = postdata.get('createtime', '') if app_name == 'ommessage': field_list = ['file__icontains'] query = MessageHistoryFiles.objects.filter( delete=False, createtime__lte=createtime).values('file', 'size', 'createtime', 'main_id') if app_name == 'omformflow': field_list = ['file__icontains'] query = OmdataFiles.objects.filter( delete=False, createtime__lte=createtime).values('file', 'size', 'createtime') if field_list or query: result = DatatableBuilder(request, query, field_list) info('%s list file success.' % request.user.username, request) return JsonResponse(result) else: info('%s list file error.' % request.user.username, request) return ResponseAjax(statusEnum.not_found, _('請提供正確的APP名稱。')).returnJSON() else: info( '%s missing some require variable or the variable type error.' % request.user.username, request) return ResponseAjax(statusEnum.not_found, checker.get('message'), checker).returnJSON() else: info('%s has no permission.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()
def listPositionAjax(request): ''' list position input: request return: json author: Kolin Hsu ''' postdata = getPostdata(request) datatable = postdata.get('datatable',None) if datatable: #function variable field_list=['display_name__icontains','description__icontains'] query = '' #get post data postdata = getPostdata(request) query = Position.objects.all().values('id','display_name','description') result = DatatableBuilder(request, query, field_list) info('%s list position success.' % request.user.username,request) return JsonResponse(result) else: result = list(Position.objects.all().values('id','display_name','description')) info('%s list position success.' % request.user.username,request) return ResponseAjax(statusEnum.success, _('查詢成功'), result).returnJSON()
def updatePositionAjax(request): ''' update position input: request return: json author: Kolin Hsu ''' #function variable require_field = ['id'] #server side rule check postdata = getPostdata(request) checker = DataChecker(postdata, require_field) #get post data pos_id = postdata.get('id','') display_name = postdata.get('display_name','') description = postdata.get('description','') if checker.get('status') == 'success': Position.objects.filter(id=pos_id).update(display_name=display_name,description=description) info('%s update position success.' % request.user.username,request) return ResponseAjax(statusEnum.success, _('更新成功。')).returnJSON() else: info('%s missing some require variable or the variable type error.' % request.user.username,request) return ResponseAjax(statusEnum.not_found, checker.get('message'), checker).returnJSON()
def saveServiceAjax(request): ''' save manager's service setting input: request return: json author: Arthur ''' #Server Side Rule Check username = request.user.username postdata = getPostdata(request) if username: require_field = ['content'] checker = DataChecker(postdata, require_field) if checker.get('status') == 'success': #是否存入翻譯 lan_package = postdata.get('lan_package', None) if lan_package: FlowActiveGlobalObject.setSysLanDict("service", None, lan_package) #static variable box_object = json.loads(postdata.get('content', '')) OmServiceDesign.objects.create( content=json.dumps(box_object), language_package=json.dumps( FlowActiveGlobalObject.getSysLanDict('service'))) OmService.objects.all().delete() ServiceList = [] for key in box_object["list"]: thisSer = box_object["list"][key] if thisSer["type"] == "service": flow_uuid = FlowActiveGlobalObject.APIgetUUID( thisSer['api_path']) ser = OmService(service_id=thisSer['id'], flow_uuid=flow_uuid, role=thisSer['setting']['setRole'], default_value=json.dumps( thisSer['default_value'])) ServiceList.append(ser) OmService.objects.bulk_create(ServiceList) info('%s update Service success' % username, request) return ResponseAjax(statusEnum.success, _('儲存成功。')).returnJSON() else: info('%s update Service error' % username, request) return ResponseAjax(statusEnum.not_found, checker.get('message'), checker).returnJSON() else: info('%s update Service with no permission' % username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()
def deleteFilesAjax(request): ''' delete files input: request return: status author: Kolin Hsu ''' if request.user.is_superuser: #server side rule check require_field = ['app_name', 'path'] postdata = getPostdata(request) checker = DataChecker(postdata, require_field) if checker.get('status') == 'success': #get post data app_name = postdata.get('app_name', '') path_list = postdata.get('path', '') if app_name == 'ommessage': for path in path_list: file_path = os.path.join(settings.MEDIA_ROOT, path) if os.path.isfile(file_path): os.remove(file_path) messagehistoryfile = MessageHistoryFiles.objects.get( file=path) messagehistoryfile.delete = True messagehistoryfile.save() elif app_name == 'omformflow': for path in path_list: file_path = os.path.join(settings.MEDIA_ROOT, path) if os.path.isfile(file_path): os.remove(file_path) omdatafiles = OmdataFiles.objects.get(file=path) omdatafiles.delete = True omdatafiles.save() info('%s delete file success.' % request.user.username, request) return ResponseAjax(statusEnum.success, _('刪除成功。')).returnJSON() else: info( '%s missing some require variable or the variable type error.' % request.user.username, request) return ResponseAjax(statusEnum.not_found, checker.get('message'), checker).returnJSON() else: info('%s has no permission.' % request.user.username, request) return ResponseAjax(statusEnum.no_permission, _('您沒有權限進行此操作。')).returnJSON()