async def post(self, *args, **kwargs): post_json = self.get_post_body_dict() user_id = post_json.get('user_id', None) password = post_json.get('password', None) nickname = post_json.get('nickname', "默认昵称") if list_have_none_mem(*[user_id, password]) or user_id == 'admin': return ConstData.msg_args_wrong mongo_conn = self.get_async_mongo() mycol = mongo_conn['g_users'] res = await mycol.find_one({'user_id': user_id}) _id = None if res: if res['is_del'] is False: return ConstData.msg_exist _id = res['_id'] rand_salt = get_rand_salt() data = dict( nickname=nickname, user_id=user_id, passwd=hashlibmd5with_salt(password, rand_salt), salt=rand_salt, ) data = wrap_default_rc_tag(data) # 加上默认的标签 if _id: await mycol.update({'_id': _id}, {'$set': data}, upsert=True) else: _id = await mycol.insert(data) # todo: select orgnization user_org_col = mongo_conn['user_org_rel'] res = await user_org_col.find_one({'user': _id}) data = dict( user_name=nickname, user=_id, # organization=org_id, is_active=True, # org_name=org_name, is_default=False, is_owner=False, is_current=True) if res is None: org_col = mongo_conn['organization'] res = await org_col.find_one({ 'is_del': False, }) org_name = res['name'] org_id = res['_id'] else: org_name = res['org_name'] org_id = res['organization'] data['org_name'] = org_name data['organization'] = org_id data = wrap_default_rc_tag(data) # 加上默认的标签 await user_org_col.update({'user': _id}, {'$set': data}, upsert=True) return ConstData.msg_succeed
async def post(self, *args, **kwargs): post_json = self.get_post_body_dict() content_id = post_json.get('content_id', None) pro_id = post_json.get('pro_id', "5a7fb0cd47de9d5cf3d13a44") group = post_json.get('group', "test") time_stamp = post_json.get('date_time', None) content = post_json.get('content', None) if list_have_none_mem(*[pro_id, group, time_stamp, content]): return ConstData.msg_args_wrong mongo_conn = self.get_async_mongo() mycol = mongo_conn['dashboard_content'] timeArray = time.localtime(int(time_stamp) / 1000.0) date_time = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) data = dict( pro_id=ObjectId(pro_id), group=group, date_time=date_time, content=content, ) data = wrap_default_rc_tag(data) # 加上默认的标签 if content_id: await mycol.update({'_id': ObjectId(content_id)}, {'$set': data}, upsert=True) return ConstData.msg_succeed else: _id = await mycol.insert(data) msg_succeed = '{"code":%s,"msg":"%s","data":{"_id": "%s"}}' % (ResCode.ok, "success", _id) return msg_succeed
async def post(self): """ 客户端将整个报告上传到服务器 :return: """ req_dict = self.get_post_body_dict() # 做好字段的检查工作 pro_id = req_dict.get('pro_id', None) failures = req_dict.get('failures', None) errors = req_dict.get('errors', None) details = req_dict.get('details', None) skipped = req_dict.get('skipped', None) pro_version = req_dict.get('pro_version', None) run_time = req_dict.get('run_time', None) total = req_dict.get('total', None) was_successful = req_dict.get('was_successful', None) if list_have_none_mem(*[ pro_id, failures, errors, details, skipped, pro_version, run_time, total, was_successful, ]): return ConstData.msg_args_wrong if len(pro_version) > 32: # 如果版本号长度大于32,比如出现了没有标定版本号的情况 pro_version = '0.0.0.0.0' req_dict['pro_version'] = pro_version db = self.get_async_mongo() proj_col = db.test_project test_data_col = db.unit_test_data # project = await Project.objects.get(id=ObjectId(pro_id)) project = await proj_col.find_one({'_id': ObjectId(pro_id)}) """:type:Project""" app_org = await self.get_organization() """:type:Organization""" # if (project is None) or (project.organization is None): if project is None: return ConstData.msg_forbidden # 权限鉴定,不允许越权访问别人的组织的项目 pro_org_id = project['organization'] if pro_org_id != app_org: return ConstData.msg_forbidden # todo 后续的一些更细节的字段内在的约束检查 req_dict = wrap_project_tag(req_dict, project) # 加上项目标签 req_dict = wrap_default_rc_tag(req_dict) # 加上默认的标签 req_dict = wrap_org_tag(req_dict, str(pro_org_id)) # 加上组织的标签 insert_res = await test_data_col.insert(req_dict) return ConstData.msg_succeed
async def post(self): """ 客户端将整个报告上传到服务器 :return: """ token = self.get_argument('token', None) req_dict = self.get_post_body_dict() # 做好字段的检查工作 pro_id = req_dict.get('pro_id', None) failures = req_dict.get('failures', None) errors = req_dict.get('errors', None) details = req_dict.get('details', None) skipped = req_dict.get('skipped', None) pro_version = req_dict.get('pro_version', None) run_time = req_dict.get('run_time', None) total = req_dict.get('total', None) was_successful = req_dict.get('was_successful', None) tag = req_dict.get('tag', 'default') if list_have_none_mem(*[ pro_id, failures, errors, details, skipped, pro_version, run_time, total, was_successful, ]): return ConstData.msg_args_wrong if len(pro_version) > 32: # 如果版本号长度大于32,比如出现了没有标定版本号的情况 pro_version = '0.0.0.0.0' req_dict['pro_version'] = pro_version db = self.get_async_mongo() proj_col = db.test_project test_data_col = db.unit_test_data # project = await Project.objects.get(id=ObjectId(pro_id)) project = await proj_col.find_one({'_id': ObjectId(pro_id)}) """:type:Project""" app_org = await self.get_organization() """:type:Organization""" # if (project is None) or (project.organization is None): if project is None: return ConstData.msg_forbidden # 权限鉴定,不允许越权访问别人的组织的项目 pro_org_id = project['organization'] if pro_org_id != app_org: return ConstData.msg_forbidden # todo 后续的一些更细节的字段内在的约束检查 req_dict = wrap_project_tag(req_dict, project) # 加上项目标签 req_dict = wrap_default_rc_tag(req_dict) # 加上默认的标签 req_dict = wrap_org_tag(req_dict, str(pro_org_id)) # 加上组织的标签 insert_res = await test_data_col.insert(req_dict) if 'tags' in project.keys(): pro_tags = project['tags'] # if tag in pro_tags: # return ConstData.res_tpl % (ResCode.ok, 'success', '"' + str(insert_res) + '"') else: pro_tags = [] if tag not in pro_tags: pro_tags.append(tag) await proj_col.update({'_id': ObjectId(pro_id)}, {'$set': { 'tags': pro_tags }}) # return ConstData.res_tpl % (ResCode.ok, 'success', '"' + str(insert_res) + '"') self.redirect('/share/get-utest-share-link/?token={}&rep_id={}'.format( token, insert_res))