def _deco(): try: token = request.headers.get( 'token', default='').decode('utf-8').encode('utf-8') except Exception as msg: retdict = request_result(601, ret={'msg': msg.message}) return retdict if token == '': retdict = request_result(706) return retdict ret = get_payload(token=token) if ret['status'] != 0: return ret try: payload = ret['result']['payload'] tokenid = json.loads(payload)['tokenid'] except Exception as msg: return request_result(202, ret=msg.message) checkret = system_check_token(tokenid, token) if 'status' in checkret and checkret['status'] == 0: return func(payload=payload) else: print 'token error' return request_result(202, ret=checkret)
def user_get_org_msg(kwargs): # 普通用户获取组织信息 try: orgs_user = g.db_session.query(OrgsUser).filter( OrgsUser.org_id == kwargs['orga_uuid_arg'], OrgsUser.uid == kwargs['uid'], OrgsUser.is_delete == '0').first() if orgs_user is None: return request_result(806) orga_msg = dict() orga_msg['role'] = orgs_user.role orgs_b = g.db_session.query(OrgsBase).filter( OrgsBase.org_id == kwargs['orga_uuid_arg'], OrgsBase.is_delete == '0').first() if orgs_b is None: return request_result(100, ret='no org msg , this is error') orga_msg['orga_name'] = orgs_b.org_name orga_msg['orga_detail'] = orgs_b.org_detail orga_msg['is_public'] = orgs_b.is_public orga_msg['creation_time'] = orgs_b.creation_time orga_msg['delete_time'] = orgs_b.delete_time return request_result(0, ret=orga_msg) except Exception as msg: return request_result(403, ret=msg.message)
def _deco(kwargs=dict()): try: token = request.headers.get( 'token', default='').decode('utf-8').encode('utf-8') except Exception as msg: return request_result(601, ret={'msg': msg.message}) if token == '': return request_result(706) try: ret = get_payload(token=token) if ret['status'] != 0: return ret payload = ret['result']['payload'] tokenid = json.loads(payload)['tokenid'] checkret = system_check_token(tokenid, token) if 'status' in checkret and checkret['status'] == 0: kwargs['payload'] = payload return func(kwargs=kwargs) else: return request_result(202, ret=payload) except Exception as msg: return request_result(202, ret=msg.message)
def publicImage(kwargs): # 平台公开镜像 try: offset = (kwargs['page'] - 1) * kwargs['page_size'] limit = kwargs['page_size'] if offset < 0 or limit <= 0: return request_result(706, "page or page_size is error") from sqlalchemy import func count = g.db_session.query(ImageRepository).filter( ImageRepository.deleted == '0', ImageRepository.is_public == '1').count() print "dfdfsfd" print count print "count" image_repo = g.db_session.query(ImageRepository).filter( ImageRepository.deleted == '0', ImageRepository.is_public == '1').offset(offset).limit(limit) except Exception as msg: print msg.message return request_result(404, ret=msg.message) return retImageRepo(page=kwargs['page'], page_size=kwargs['page_size'], count=count, repolist=image_repo)
def GetOauthInfo(uid, src_type): """ 由用户名 和 代码源 获取 oauth 认证信息 """ ret = g.db_session.query(GitHubOauth).filter( GitHubOauth.uid == uid, GitHubOauth.src_type == src_type).first() if ret is None: return False, request_result(103) access_token = ret.access_token if access_token is None or '' == access_token: return False, request_result(104) git_name = ret.git_name git_uid = ret.git_uid # 还没有获取用户信息,需要获取用户信息并更新到数据表 # if git_name is None or ret.git_emain is None or git_uid is None: if git_name is None or git_uid is None: # 对于不显示email的用户设置,无法得到用户邮箱 from authServer.oauth.github import update_git_hub_oauth ret_user = update_git_hub_oauth(uid=uid, token=access_token, src_type=src_type) if ret_user['status'] != 0: return False, ret_user git_name = ret_user['result']['git_name'] git_uid = ret_user['result']['git_uid'] return True, (access_token, git_name, uid, git_uid)
def modify_org(kwargs): try: data = request.data data_json = json.loads(data) org_detail = data_json.get('orga_detail', '') #.decode('utf-8').encode('utf-8') is_public = data_json.get('is_public', '').decode('utf-8').encode('utf-8') if org_detail == '' or is_public not in Mask_Public: return request_result(706) except Exception as msg: return request_result(710, ret=msg.message) try: print 'ssssss' print kwargs['orga_uuid'] print kwargs['uid'] orgs_user = g.db_session.query(OrgsUser).filter( OrgsUser.org_id == kwargs['orga_uuid'], OrgsUser.role == OrgaRole.OrgaMaster.value, OrgsUser.uid == kwargs['uid']).first() if orgs_user is None: return request_result(806) g.db_session.query(OrgsBase).filter(OrgsBase.org_id == kwargs['orga_uuid']).update( {"org_detail": org_detail, "is_public": is_public}) g.db_session.commit() return request_result(0) except Exception as msg: return request_result(403, ret=msg.message)
def _deco(kwargs=dict()): try: if kwargs['orga_uuid_arg'] != kwargs['orga_uuid']: return request_result(806) except Exception as msg: return request_result(100, ret=msg.message) return func(kwargs)
def _deco(kwargs): try: data = request.data data_json = json.loads(data) username = data_json.get('user_name', '').decode('utf-8').encode('utf-8') password = data_json.get('pass_word', '').decode('utf-8').encode('utf-8') email = data_json.get('email', '').decode('utf-8').encode('utf-8') code_id = data_json.get('code_id', '').decode('utf-8').encode('utf-8') code_str = data_json.get('code_str', '').decode('utf-8').encode('utf-8') if username == '' or password == '' or email == '': return request_result(706) kwargs['username'] = username kwargs['password'] = password kwargs['email'] = email kwargs['code_id'] = code_id kwargs['code_str'] = code_str except Exception as msg: return request_result(710, ret=msg.message) return func(kwargs)
def get_user_orgas(kwargs): print kwargs['uid'] try: orgs_all = g.db_session.query(OrgsUser).filter( OrgsUser.uid == kwargs['uid'], OrgsUser.is_delete == '0').all() if orgs_all is None: return request_result(809) orga_list = list() for organode in orgs_all: orgs_d = dict() orgs_d['org_id'] = organode.org_id orgs_d['role'] = organode.role orgs_d['creation_time'] = organode.creation_time orgs_d['update_time'] = organode.update_time orgs_base = g.db_session.query(OrgsBase).filter( OrgsBase.org_id == organode.org_id).first() if orgs_base is not None: orgs_d['orga_name'] = orgs_base.org_name orgs_d['orga_detail'] = orgs_base.org_detail orgs_d['is_public'] = orgs_base.is_public orga_list.append(orgs_d) return request_result(0, ret=orga_list) except Exception as msg: return request_result(403)
def verify_token(key, token): """ token验证 :param token: base64 str :return: dict type """ retdict = dict() retdict['status_code'] = 0 try: decoded_token = decode_token_bytes(str(token)) except Exception as msg: return request_result(602, ret={"msg": str(msg)}) payload = decoded_token[:-16] sig = decoded_token[-16:] # 生成签名 expected_sig = _get_signature(key=key, value=payload) if sig != expected_sig: # 伪造的签名 return request_result(203) data = json.loads(payload.decode('utf8')) if data.get('expires') >= time.time(): return request_result(0, ret={"msg": data}) else: # 签名过期 x = time.localtime(data.get('expires')) time_str = time.strftime('%Y-%m-%d %H:%M:%S', x) return request_result(204, ret={"Expired_Time": time_str})
def GenerateConfirmUrl(email, secret_key, timeout=None): """ 根据邮箱和url前缀生成邮箱确认连接 :param host_prefix: :param email: :param secret_key: :param timeout: :return: """ dk = dict() print 'emis' print email dk['email'] = email if timeout is not None and isinstance(timeout, (int, float)) is False: return request_result(707, 'timeout not is int or float') retToken = GenerateConfirmToken(dk, secret_key=secret_key) if 'status' in retToken and 0 == retToken['status']: confirmUrl = retToken['result']['token'] return request_result(0, ret=confirmUrl) return request_result(100, ret='is eoor')
def get_orga_owner(kwargs): # 不是管理员 或 要操作的组织和token不符 if kwargs['role_uuid'] != '1' or kwargs['orga_uuid_arg'] != kwargs[ 'orga_uuid']: return request_result(806) try: orgs_u = g.db_session.query(OrgsUser).filter( OrgsUser.org_id == kwargs['orga_uuid'], OrgsUser.uid == kwargs['uid']).first() if orgs_u is None: return request_result(806) user = g.db_session.query(UserBase).filter( UserBase.user_id == kwargs['uid']).first() if user is None: return request_result(808) user_msg = dict() user_msg['username'] = user.username user_msg['email'] = user.email user_msg['logo'] = user.logo user_msg['orga_role'] = orgs_u.role return request_result(0, ret=user_msg) except Exception as msg: return request_result(403)
def modify_orga_owner(kwargs): # 不是拥有者 或 要操作的组织和token不符 if kwargs['role_uuid'] != str( OrgaRole.OrgaMaster.value ) or kwargs['orga_uuid_arg'] != kwargs['orga_uuid']: return request_result(806) try: # 新拥有者,并赋予管理员权限 g.db_session.query(OrgsUser).filter( OrgsUser.org_id == kwargs['orga_uuid'], OrgsUser.uid == kwargs['user_uuid_arg']).update( {"role": OrgaRole.OrgaMaster.value}) # 解除拥有者权限 g.db_session.query(OrgsUser).filter( OrgsUser.org_id == kwargs['orga_uuid'], OrgsUser.uid == kwargs['uid']).update( {"role": OrgaRole.OrgaAdmin.value}) g.db_session.commit() from authServer.common.usercenter.token import get_login_token return get_login_token(kwargs['user_name']) # 返回用户token # return request_result(0) except Exception as msg: return request_result(403)
def change_password(self, new_pwd): """ 修改密码, 修改密码时同时把 密码干扰种子 更新一次 :type new_pwd: 新密码 """ # self.get_user_base() # if self.login_username(old_p) is False: # return request_result(705) self.salt = self.get_salt() self.save_password = self.get_save_password(new_pwd, self.salt) try: g.db_session.query(UserBase).filter( UserBase.username == self.user_name).update({ "password": self.save_password, 'salt': self.salt }) g.db_session.commit() ret = request_result(0) except Exception as msg: ret = request_result(403, ret=msg.message) finally: return ret
def get_orga_user_list(orga_uuid): """ 得到一个组织的用户列表 """ try: orga_users = g.db_session.query(OrgsUser).filter( OrgsUser.org_id == orga_uuid, OrgsUser.is_delete == '0').all() if orga_users is None: return request_result(808) orga_user_list = list() for orga_user_n in orga_users: orga_user = dict() orga_user['uid'] = orga_user_n.uid orga_user['role'] = orga_user_n.role orga_user['creation_time'] = orga_user_n.creation_time orga_user['update_time'] = orga_user_n.update_time user_base = g.db_session.query(UserBase).filter( UserBase.user_id == orga_user_n.uid).first() if user_base is not None: orga_user['user_name'] = user_base.username orga_user['email'] = user_base.email # orga_user['logo'] = user_base.logo from authServer.conf.conf import OssHost if user_base.logo is None or user_base.logo == '': orga_user[ 'logo'] = OssHost + os.sep + 'repository/default.png' else: orga_user['logo'] = OssHost + os.sep + user_base.logo orga_user_list.append(orga_user) return request_result(0, ret=orga_user_list) except Exception as msg: return request_result(403, ret=msg.message)
def myselfImage(kwargs): # 平台公开镜像 try: offset = (kwargs['page'] - 1) * kwargs['page_size'] limit = kwargs['page_size'] if offset < 0 or limit <= 0: return request_result(706, "page or page_size is error") from sqlalchemy import func count = g.db_session.query(ImageRepository).filter( ImageRepository.deleted == '0', ImageRepository.uid == kwargs['orga_uuid']).count() image_repo = g.db_session.query(ImageRepository).filter( ImageRepository.deleted == '0', ImageRepository.uid == kwargs['orga_uuid']).offset(offset).limit( limit) # 组织id区分镜像 # ImageRepository.uid == kwargs['uid']).offset(offset).limit(limit) except Exception as msg: print msg.message return request_result(404, ret=msg.message) return retImageRepo(page=kwargs['page'], page_size=kwargs['page_size'], count=count, repolist=image_repo)
def put(self): """ @apiGroup User @apiDescription 用户账号切换到组织账号下的token切换 @apiVersion 1.0.0 @apiHeader {String} token 请求API的token @api {put} /api/v1.0/usercenter/tokens 身份切换 @apiExample {post} Example usage: post http://auth.boxlinker.com/api/v1.0/usercenter/tokens Example: { "orga_uuid": "8425b6eb-eb77-382f-9acb-385d85eab70c" } @apiParam {String} orga_uuid 组织id """ try: data = request.data data_json = json.loads(data) orga_uuid = data_json.get('orga_uuid', '').decode('utf-8').encode('utf-8') if orga_uuid == '': return request_result(706) except Exception as msg: return request_result(710, ret=msg.message) k = dict() k['orga_uuid_arg'] = orga_uuid return jsonify(self.change_token(k))
def DelOauth(kwargs): """ 1. github_oauth 得到 access_token 等信息 2. code_repo 得到 repo 3. image_repository_build repo_id :param kwargs: :return: """ if kwargs['user_uuid_arg'] != kwargs['uid']: return request_result(806) # 获取该用户,对应平台下的所有代码项目 codeRepos = g.db_session.query(CodeRepo).filter( CodeRepo.uid == kwargs['user_uuid_arg'], CodeRepo.src_type == kwargs['src_type_arg']).all() # 删除关联代码自动构建项目的配置信息 ImageRepositoryBuild for code_repo in codeRepos: print code_repo.repo_id image_build = ImageRepositoryBuild(code_repo_id=code_repo.repo_id) g.db_session.query(ImageRepositoryBuild).filter(ImageRepositoryBuild.code_repo_id == code_repo.repo_id).delete() g.db_session.commit() # 删除所有代码记录 g.db_session.query(CodeRepo).filter(CodeRepo.uid == kwargs['user_uuid_arg'], CodeRepo.src_type == kwargs['src_type_arg']).delete() g.db_session.commit() # 标记所有与该平台相关的镜像全部是 非自动构建项目 g.db_session.query(ImageRepository).filter( ImageRepository.uid == kwargs['user_uuid_arg'], ImageRepository.src_type == kwargs['src_type_arg'] ).update({'src_type': '', 'is_code': '0'}) g.db_session.commit() # 删除webhook记录; 遍历 oauth = g.db_session.query(GitHubOauth).filter(GitHubOauth.uid == kwargs['user_uuid_arg'], GitHubOauth.src_type == kwargs['src_type_arg']).first() # 该步骤;需要单独开启一个进程处理; 时间比较长 if oauth is not None: if 'github' == kwargs['src_type_arg']: from authServer.common.oauthclient.HubApi import DelGithubAllWebHooks DelGithubAllWebHooks(username=oauth.git_name, token=oauth.access_token, del_hooks_url=OAUTH_WEBHOOKS) print 'githu' elif 'coding' == kwargs['src_type_arg']: from authServer.common.oauthclient.CodingApi import DellAllWebHooks DellAllWebHooks(user_name=oauth.git_name, access_token=oauth.access_token, hook_url_del=OAUTH_WEBHOOKS) # 删除授权记录 g.db_session.query(GitHubOauth).filter(GitHubOauth.uid == kwargs['user_uuid_arg'], GitHubOauth.src_type == kwargs['src_type_arg']).delete() g.db_session.commit() return request_result(0)
def _deco(kwargs): if username_exist(kwargs['username']): return request_result(702) if email_exist(kwargs['email']): return request_result(704) return func(kwargs)
def siggup_init(self, user_name, email, password): # 注册初始化 self.user_name = user_name self.email = email self.salt = self.get_salt() self.save_password = self.get_save_password(password, self.salt) print "------000---" print self.user_name print self.salt print self.save_password self.uuid = uuid.uuid3(uuid.NAMESPACE_DNS, self.user_name).__str__() now_time = get_now_time() try: user_base = UserBase(user_id=self.uuid, username=self.user_name, email=self.email, password=self.save_password, creation_time=now_time, update_time=now_time, salt=self.salt) g.db_session.add(user_base) g.db_session.commit() except Exception as msg: return request_result(401, ret=msg.message) from authServer.v1.usercenter.passwordFind import SendFindEmail from authServer.conf.conf import callback_url if CONFIRM_EMAIL: print 'callback_url' print callback_url sendret = SendFindEmail(self.user_name, action='ConfirmEmail', callback_url=callback_url, email_template='email_confirm.html') print 'sendret' print sendret try: ret = make_orgs(uid=self.uuid, user_name=self.user_name, org_name=self.user_name) if 'status' in ret and ret['status'] == 0: return ret except Exception as msg: print 'error' print msg.message user_b = UserBase(user_id=self.uuid) g.db_session.delete(user_b) g.db_session.commit() return request_result(401, ret=msg.message)
def get(self, opcode, action): """ @apiGroup UserSignup @apiDescription 用户注册, 邮件确认 @apiVersion 1.0.0 @api {get} /api/v1.0/usercenter/users/email/<string:opcode>/<string:action> 邮件确认 @apiParam {String} opcode 操作码 @apiParam {String} action 动作 """ ac_opt = g.db_session.query(ActionCode).filter( ActionCode.opcode == opcode, ActionCode.action == action).first() if ac_opt is None: return jsonify( request_result( 806, ret='The confirmation code is invalid or is already in use' )) try: g.db_session.query(UserBase).filter( UserBase.user_id == ac_opt.user_id).update({"is_active": '1'}) g.db_session.query(ActionCode).filter( ActionCode.opcode == opcode, ActionCode.action == action).delete() g.db_session.commit() ret = request_result(0) except Exception as msg: ret = request_result(403, ret=msg.message) finally: # 处理初始化余额 # from authServer.common.usercenter.token import get_login_token # # from authServer.conf.conf import INITBILLING # # retdict = get_login_token(username=ac_opt.user_id, isuuid=True) # # print "EmailConfirm - get_login_token" # print "EmailConfirm : " + retdict # # try: # headers = { # 'token': retdict['result']['token'] # } # bolret = requests.post(url=INITBILLING, headers=headers, timeout=5) # except Exception as msg: # print "EmailConfirm :" + msg.message # return request_result(100, ret=bolret) # # print "EmailConfirm : " + bolret return redirect('/login')
def github_repo_list(kwargs): uid = kwargs['uid'] ret = g.db_session.query(GitHubOauth).filter(GitHubOauth.uid == kwargs['uid']).first() if ret is None: ret = request_result(103) return ret access_token = ret.access_token if access_token is None or '' == access_token: ret = request_result(104) return ret git_name = ret.git_name git_uid = ret.git_uid # 还没有获取用户信息,需要获取用户信息并更新到数据表 # if git_name is None or ret.git_emain is None or git_uid is None: if git_name is None or git_uid is None: # 对于不显示email的用户设置,无法得到用户邮箱 src_type = "github" # 暂时这样 ret_user = update_git_hub_oauth(uid=uid, token=access_token, src_type=src_type) if ret_user['status'] != 0: return ret_user git_name = ret_user['result']['git_name'] git_uid = ret_user['result']['git_uid'] from authServer.common.oauthclient.repolist import refresh_repo_list # 是否强制刷新 try: refresh_c = request.args.get('refresh', '').decode('utf-8').encode('utf-8').lower() except Exception as msg: return request_result(706, ret=msg.message) if refresh_c == 'true': # 执行强制刷新操作 refresh_repo_list(access_token, git_name, uid, git_uid) # 用户的 uid, 获取 github_repo 数据 github 项目列表 ret_github_repo = g.db_session.query(CodeRepo).filter(CodeRepo.uid == str(uid)).all() if ret_github_repo is None or len(ret_github_repo) <= 0: # 如果数据不存在,强制刷新(从github请求) refresh_repo_list(access_token, git_name, uid, git_uid) ret_github_repo = g.db_session.query(CodeRepo).filter(CodeRepo.uid == str(uid)).all() repo_list = list() for node in ret_github_repo: repo_list.append( {'repo_name': node.repo_name, 'git_uid': node.repo_uid, 'is_hook': node.is_hook, 'id': node.id, 'html_url': node.html_url, 'ssh_url': node.ssh_url, 'url': node.url, 'description': node.description}) return request_result(0, ret=repo_list)
def create_org_user(kwargs): # 不是管理员 或 要操作的组织和token不符 print kwargs['role_uuid'] print type(kwargs['role_uuid']) print OrgaRole.OrgaMaster.value print OrgaRole.OrgaDevelop.value if kwargs['role_uuid'] != str( OrgaRole.OrgaMaster.value) and kwargs['role_uuid'] != str( OrgaRole.OrgaDevelop.value): return request_result(806) try: now_time = get_now_time() # 已经是组织成员 orgs_u = g.db_session.query(OrgsUser).filter( OrgsUser.org_id == kwargs['orga_uuid'], OrgsUser.uid == kwargs['user_uuid_arg']).first() # print "----create_org_user----" if orgs_u is not None: # print "----create_org_user---- orgs_u is not None" # print orgs_u.is_delete # print type(orgs_u.is_delete) if str(orgs_u.is_delete) == '0': # 已经是组织成员 return request_result(807, ret=kwargs['user_name']) elif str(orgs_u.is_delete) == '1': # 删除的用户,冲洗标记 g.db_session.query(OrgsUser).filter( OrgsUser.org_id == kwargs['orga_uuid'], OrgsUser.uid == kwargs['user_uuid_arg']).update({ "is_delete": '0', "update_time": now_time, "role": OrgaRole.OrgaDevelop.value }) g.db_session.commit() return request_result(0) org_user = OrgsUser(org_id=kwargs['orga_uuid'], uid=kwargs['user_uuid_arg'], role=OrgaRole.OrgaDevelop.value, creation_time=now_time, update_time=now_time) g.db_session.add(org_user) g.db_session.commit() return request_result(0) except Exception as msg: return request_result(401, ret=msg.message)
def GithubWebHookInfo(): request_headers = dict(request.headers) for kk in request_headers: print "kk: " + str(kk) print "kk: " + str(kk) + " value: " + str(request_headers[kk]) x_hub_signature = request_headers['X-Hub-Signature'] sha_name, signature = x_hub_signature.split('=') if sha_name != 'sha1': print 'error sha_name type' return {'msg': 'error sha_name type'} x_github_delivery = request_headers['X-Github-Delivery'] x_github_event = request_headers['X-Github-Event'] if x_github_event == 'ping': return {'msg': 'pong'} if x_github_event != 'push': return {'msg': 'no do somethings'} try: payload = json.loads(request.data) print '-----plyload----' print type(payload) repo_id = payload['repository']['id'] # github中的项目id repo_name = payload['repository']['name'] ssh_url = payload['repository']['ssh_url'] print payload except Exception as msg: print msg.message return request_result(100, ret=msg.message) try: code_repo = g.db_session.query(CodeRepo).filter( CodeRepo.repo_id == str(repo_id), CodeRepo.src_type == 'github').first() if code_repo is None: return request_result(405) secret = code_repo.repo_hook_token except Exception as msg: print 'Webhooks g.db_session.query(GitHubRepo) is error' print msg.message return request_result(404, ret=msg.message) mac = hmac.new(str(secret), msg=request.data, digestmod=sha1).hexdigest() if mac != signature: print 'mac != signature' return {'msg': 'error signature'} print 'mac == signature' from authServer.oauth.send_build_msg import github_Webhooks ret = github_Webhooks(repo_id) return ret
def _deco(payload): try: payload_d = json.loads(payload) except Exception as msg: return request_result(206, ret=msg.message) # payload 中没有需要的信息 if 'user_name' in payload_d and 'uid' in payload_d: return func(user_name=payload_d['user_name'].decode( 'utf-8').encode('utf-8'), uid=payload_d['uid'].decode('utf-8').encode('utf-8')) return request_result(206) # payload 中没有需要的信息
def put(self, orga_uuid, user_uuid): """ @apiGroup OrganizationUserHandle @apiDescription 修改组织成员属性,只有组织拥有者可以修改其他成员的属性 @apiVersion 1.0.0 @apiHeader {String} token 请求接口的token,放在请求头中 @api {put} /api/v1.0/usercenter/orgs/<string:orga_uuid>/users/<string:user_uuid> 修改组织成员属性 @apiParamExample {json} Request-Param-Example: { "role_uuid": "1" } 1: 管理员 2: 开发者 SystemGod = 100 # 系统管理员 OrgaMaster = 200 # 群主;组织拥有者 OrgaAdmin = 210 # 群管理员 OrgaDevelop = 400 # 群开发者 @apiSuccessExample {json} 修改组织用户属性: { "status": 0, "msg": "OK", "result": "some msg" } @apiParam {String} orga_uuid 组织id @apiParam {String} user_uuid 用户id @apiParam {String} role_uuid 修改用户权限, 添加成员时该参数可以为空 """ try: data = request.data data_json = json.loads(data) role_uuid_arg = data_json.get('role_uuid', '').decode('utf-8').encode('utf-8') print role_uuid_arg if role_uuid_arg == '' or role_uuid_arg not in [ str(OrgaRole.OrgaAdmin.value), str(OrgaRole.OrgaMaster.value), str(OrgaRole.OrgaDevelop.value) ]: return jsonify(request_result(706)) kwargs = dict() kwargs['role_uuid_arg'] = role_uuid_arg kwargs['user_uuid_arg'] = user_uuid kwargs['orga_uuid_arg'] = orga_uuid except Exception as msg: return jsonify(request_result(710, ret=msg.message)) return jsonify(self.modify_org_user(kwargs=kwargs))
def change_logo(self, new_logo): try: g.db_session.query(UserBase).filter( UserBase.username == self.user_name).update({"logo": new_logo}) g.db_session.commit() self.logo = new_logo ret = request_result(0) except Exception as msg: ret = request_result(403, ret=msg.message) finally: return ret
def github_rightaway_build(kwargs): try: image_repo = g.db_session.query(ImageRepository).filter( ImageRepository.uuid == kwargs['repository_uuid_arg'], ImageRepository.uid == kwargs['uid']).first() if image_repo is None: return request_result( 809, "uid->.repository_uuid_arg != repository_uuid_arg") except Exception as msg: return request_result(404, ret=msg.message) from authServer.oauth.send_build_msg import send_build_rabbit_by_repouuid return send_build_rabbit_by_repouuid(kwargs['repository_uuid_arg'])
def _deco(payload): try: print 'sdsdsdsds' var_box = request.headers.get( 'varbox', default='').decode('utf-8').encode('utf-8') except Exception as msg: retdict = request_result(601, ret={'msg': msg.message}) return retdict print 'var_box :' + str(var_box) if var_box == '': retdict = request_result(706, ret='no var_box') return retdict return func(payload, var_box)
def AutoSetLogo(repositoryname): try: print 'logo AutoSetLogo :' + repositoryname dd = setRepoLogo(repositoryname) if dd is False: return request_result(403) g.db_session.query(ImageRepository).filter( ImageRepository.repository == repositoryname).update({'logo': dd}) g.db_session.commit() return request_result(0) except Exception as msg: return request_result(403)