def addpu(self, user): userId = user.get('userId', 0) if not userId: return 4 user = User.query.filter_by(isDelete=False, id=userId).first() flag = True if user.power == 1 else False if not user: return 5 data = self.getjson() try: userid = int(data.get('id', 0)) projectid = int(data.get('projectid')) isAdmin = int(data.get('isAdmin', 0)) except: return 2 if not all([userid, projectid]): return 1 puadmin = ProjectUser.query.filter_by(isDelete=False, userid=user.id, projectid=projectid).first() if not puadmin and not flag: #判断权限 return 5 if not puadmin.isAdmin and not flag: #判断权限 return 5 pu = ProjectUser.query.filter_by(isDelete=False, userid=userid, projectid=projectid).first() if pu: return 3 pu = ProjectUser() pu.userid = userid pu.projectid = projectid pu.isAdmin = isAdmin self.create(pu) return 3
def update_project(project_id): new_project = request.get_json() try: project = Project.get(Project.id == project_id) except models.DoesNotExist: return jsonify({ 'message': 'Project not found' }), 400 if new_project['id'] != project.id: return jsonify({ 'message': 'Cannot update project at this url' }), 400 try: if new_project['markerOptions']: marker_options = new_project['markerOptions'] for marker_name in marker_options: try: marker_option = MarkerOption.get(MarkerOption.name == marker_name) ProjectMarkerOption.get(ProjectMarkerOption.project == project.id, ProjectMarkerOption.marker_option == marker_option.id) except models.DoesNotExist: ProjectMarkerOption.create(project = project, marker_option = marker_option) if new_project['users']: users = new_project['users'] for user in users: try: project_user = ProjectUser.get(ProjectUser.app_user == user['id'], ProjectUser.project == project) except models.DoesNotExist: ProjectUser.create(app_user = user['id'], project = project) if new_project['stacks']: stacks = new_project['stacks'] with db.atomic(): for stack in stacks: try: project_stack = ProjectStack.get(ProjectStack.stack == stack['id'], ProjectStack.project == project) except models.DoesNotExist: project_stack = ProjectStack.create(project=project, stack = stack['id']) probe_setting = stack['probeSettings'] probe_position = json.loads(probe_setting['position']) ProbeSetting.create(x_offset=int(probe_position['xOffset']), y_offset=int(probe_position['yOffset']), project_stack=project_stack, label=probe_position['label'] ) message = "Project updated" except Exception as ex: print ex project = Project.get(Project.id == project_id) return jsonify({ 'message': 'Project updated', 'project': project.deep_serialized() }), 200
def populate(): p1 = Person('Alice') p2 = Person('Anamika') p3 = Person('Annie') p4 = Person('Anson') p5 = Person('Bob') p6 = Person('Carol') p7 = Person('Don') p8 = Person('Evi') session.add_all([p1, p2, p3, p4, p5, p6, p7, p8]) orders = [(p1, 'veggies', 120), (p2, 'veggies', 20), (p3, 'veggies', 120), (p4, 'veggies', 10), (p5, 'veggies', 280), (p1, 'ketchup', 80), (p1, 'spices', 220), (p1, 'tissues', 50), (p1, 'notebooks', 90), (p5, 'ketchup', 80)] for person, name, price in orders: order = Order(person, name, price) session.add(order) p1 = Project('BSNL billing', 'alice') p2 = Project('BSNL payroll', 'bob') p3 = Project('ABC Institute', 'bob') pu1 = ProjectUser(p1, 'alice') pu2 = ProjectUser(p1, 'carol') pu3 = ProjectUser(p1, 'don') pu4 = ProjectUser(p2, 'alice') pu5 = ProjectUser(p2, 'carol') pu6 = ProjectUser(p3, 'don') pu7 = ProjectUser(p3, 'carol') session.add_all([p1, p2, p3, pu1, pu2, pu3, pu4, pu5, pu6, pu7]) session.commit()
def process_view(self, request, view_func, view_args, view_kwargs): project = view_kwargs.get('project', None) if project is not None: project = get_object_or_404(Project, name=project) if project.public: return None else: if not request.user.is_authenticated(): return HttpResponseForbidden() elif not ProjectUser.can_read(request.user, project): return HttpResponseForbidden() return None
def add_new(request): user = request.user if request.method == "POST": form = AddProjectForm(request.POST) if (form.is_valid()): name = form.cleaned_data['name'] project = Project() project.name = name project.user = user project.save() project_user = ProjectUser() project_user.project = project project_user.user = user project_user.save() tag = Tag() tag.name = '#' + name tag.user = user tag.type = 'project' tag.save() return HttpResponseRedirect('/project/' + name) return render(request, 'project/add_new.html', { 'form': AddProjectForm(), })
def projects(): req = request.get_json() message = "" try: page = req['page'] page_size = req['pageSize'] except (TypeError, KeyError): page = 1 page_size = 20 if request.method == 'POST': try: request_error = False title = req['title'] comments = req['comments'] stacks = req['stacks'] probe_type = req['probeType'] except KeyError: request_error = True if request_error: return jsonify({ 'message': 'Insufficient information to create project' }), 400 try: project = Project.create(title=title, comments=comments, probe_type=probe_type) if req['markerOptions']: marker_options = req['markerOptions'] for marker_name in marker_options: try: marker_option = MarkerOption.get(MarkerOption.name == marker_name) ProjectMarkerOption.create(project = project, marker_option = marker_option) except Exception as ex: print("line 74") print ex if req['users']: users = req['users'] for user in users: try: ProjectUser.create(app_user = user['id'], project = project) except Exception as ex: print ex for stack in stacks: try: project_stack = ProjectStack.create(project=project, stack = stack['stackId']) probe_setting = stack['probeSettings'] probe_position = json.loads(probe_setting['position']) ProbeSetting.create(x_offset=int(probe_position['xOffset']), y_offset=int(probe_position['yOffset']), project_stack=project_stack, label=probe_position['label'] ) except Exception as ex: print ex message = "Project created" except Exception as ex: print ex projects = (Project.select() .order_by(Project.created_date.desc())) # .paginate(page, page_size)) return jsonify({ 'message': message, 'projects': [project.serialized for project in projects], 'projectCount': SelectQuery(models.Project).count() }), 201
def addproject(self, user): body = self.getjson() name = body.get('name', '') pname = body.get('pname', '') token = body.get('token', []) isGit = body.get('isGit', 0) groupId = body.get('groupId', 0) groupName = body.get('groupName', '') if type(token) is str: token = [token] res = [ i for i in pname if not (97 <= ord(i) <= 122 or 65 <= ord(i) <= 90) ] if res: return 2 repos_url = body.get('repos_url', '') ip = body.get('ip', '') # startip = body.get('startip', '')备用 统一更新启动 # flag = self.verip(ip) # if not flag or not ip: # return 5 # flag = self.verip(startip) # if not flag or not startip: # return 5 msg = body.get('msg', '') if not all([name, repos_url, token]): return 1 project = Project.query.filter( or_(Project.repos_url == repos_url, Project.pname == pname), Project.isDelete == False).first() userId = user.get('userId', 0) if not userId: return 4 if project: return 3 pobj = Project() pobj.name = name pobj.pname = pname pobj.repos_url = repos_url pobj.ip = ip # pobj.startip = startip pobj.msg = msg pobj.token = json.dumps(token) pobj.groupId = 0 self.create(pobj) if isGit: pobj.groupId = pobj.id if groupId: pobj.groupId = groupId if groupName: pobj.groupName = groupName self.update(pobj) pu = ProjectUser() pu.projectid = pobj.id pu.userid = userId pu.isAdmin = 1 self.create(pu) data = { "name": name, "id": pobj.id, "pname": pname, "repos_url": repos_url, "ip": ip, "msg": msg, "token": token } return data