def resolve_activate_user_create_person(self, args, *rargs): token = args.get('user_token', None) username = args.get('username', None) name = args.get('name', None) image = args.get('image', None) phone = args.get('phone', None) if token is None: raise ValidationError("Invalid token.") if username is None: raise ValidationError("Invalid username.") if name is None: raise ValidationError("Name is required.") user = User.objects.get(username=username) if user is None: raise ValidationError("Invalid username.") from valuenetwork.tokens import signup_confirmation_token if signup_confirmation_token.check_token(user, token): user.is_active = True user.save() else: raise ValidationError("Invalid token.") at_person = AgentType.objects.get(party_type="individual") agent = EconomicAgent( nick=name, name=name, photo_url=image, phone_primary=phone, agent_type=at_person, email=user.email, created_by=user, ) agent.save() au = AgentUser(agent=agent, user=user) au.save() return "User " + username + " activated, Agent and AgentUser created."
def mutate(cls, root, args, context, info): #import pdb; pdb.set_trace() name = args.get('name') image = args.get('image') note = args.get('note') primary_location_id = args.get('primary_location_id') primary_phone = args.get('primary_phone') email = args.get('email') type = args.get('type') if not note: note = "" if not image: image = "" if primary_location_id: location = Location.objects.get(pk=primary_location_id) else: location = None get_type = None if type: get_type = AgentType.objects.get(name=type) if not type: get_types = AgentType.objects.get(party_type="org") if get_types: get_type = get_types[0] agent = EconomicAgent( name=name, nick=name, agent_type=get_type, photo_url=image, description=note, primary_location=location, phone_primary=primary_phone, email=email, created_by=context.user, ) user_agent = AgentUser.objects.get(user=context.user).agent is_authorized = user_agent.is_authorized(object_to_mutate=agent) if is_authorized: agent.save() else: raise PermissionDenied( 'User not authorized to perform this action.') return CreateOrganization(organization=formatAgent(agent))
def mutate(cls, root, args, context, info): #import pdb; pdb.set_trace() name = args.get('name') image = args.get('image') note = args.get('note') primary_location_id = args.get('primary_location_id') primary_phone = args.get('primary_phone') email = args.get('email') type = args.get('type') if not note: note = "" if not image: image = "" if primary_location_id: location = Location.objects.get(pk=primary_location_id) else: location = None get_type = None if type: get_type = AgentType.objects.get(name=type) if not type: get_types = AgentType.objects.get(party_type="org") if get_types: get_type = get_types[0] agent = EconomicAgent( name = name, nick = name, agent_type = get_type, photo_url = image, description = note, primary_location = location, phone_primary = primary_phone, email = email, created_by=context.user, ) user_agent = AgentUser.objects.get(user=context.user).agent is_authorized = user_agent.is_authorized(object_to_mutate=agent) if is_authorized: agent.save() else: raise PermissionDenied('User not authorized to perform this action.') return CreateOrganization(organization=formatAgent(agent))
def resolve_create_user_person(self, args, *rargs): username = args.get('username', None) email = args.get('email', None) pswd = args.get('pswd', None) name = args.get('name', None) image = args.get('image', None) phone = args.get('phone', None) if username is None: raise ValidationError("Username is required.") if name is None: raise ValidationError("Name is required.") if email is None: raise ValidationError("Email is required.") if pswd is None: raise ValidationError("Password is required.") user = User.objects.create_user(username=username, email=email, password=pswd) user.is_active = True user.save() at_person = AgentType.objects.get(party_type="individual") agent = EconomicAgent( nick=name, name=name, photo_url=image, phone_primary=phone, agent_type=at_person, email=user.email, created_by=user, ) agent.save() au = AgentUser(agent=agent, user=user) au.save() return "User " + username + " created, Agent and AgentUser created."
class NoQuantityTest(WebTest): fixtures = ['verdun'] def setUp(self): self.rt = EconomicResourceType( name='Spam', slug='test-rt-spam' ) self.rt.save() self.the_best_user = User.objects.create_user('david', '*****@*****.**', 'my actual secret password in real life') self.the_best_user.save() self.mi6 = AgentType( name='MI6 Spy', party_type='org', #is_context=True ) self.mi6.save() self.secret_agent = EconomicAgent( name='bond, james bond', nick='007', agent_type=self.mi6, #is_context=True, slug='bond-james-bond' ) self.secret_agent.save() self.queen = AgentUser( agent=self.secret_agent, user=self.the_best_user ) self.queen.save() self.app.set_user(self.the_best_user) def tearDown(self): self.rt.delete() self.queen.delete() self.secret_agent.delete() self.mi6.delete() self.the_best_user.delete() self.app.set_user(None) def test_form_fields(self): form = CreateUnquantifiedResourceForm(initial={}) bad_field = None all_fields = form.fields try: bad_field = all_fields['quantity'] except: pass self.assertIsNone(bad_field, msg="found quantity field in form object; fields: \n %s" % (all_fields,)) def test_no_quantity(self): """Resource Type creation form should not take a quantity """ resp = self.app.get( '/accounting/resource-type/%s/' % (self.rt.id,) )#.follow()#again if resp requires a redirect some day. self.assertIn('agent', resp.context, msg='agent is not in context') self.assertEqual(self.the_best_user.agent.agent, self.secret_agent, msg="This is not the agent we're looking for, it's %s" % (resp.context['agent'],) ) res_form = None field = None try: res_form = resp.forms['resourceForm'] except: pass self.assertIsNotNone(res_form, msg='form#resourceForm not found') try: field = res_form.fields['quantity'] except: pass self.assertIsNone(field, msg='found (form#resourceForm).quantity')