def signup_user(self, validated_data): oid = validated_data['oid'] oid = oid.lower() username = validated_data['username'] access_token = validated_data['access_token'] try: phone = get_phone(access_token) except Exception as e: raise ValidationError(detail='Invalid phone token!') if check_oid_exists(oid): raise PermissionDenied(detail='Organization exists!') if check_username_exists(oid=oid, username=username): raise PermissionDenied(detail='Username exists!') org = Organization.objects.create(oid=oid) usage = Usage(org=org, exp_date=trial_cycle()) usage.save() subscription = Subscription(org=org, current_usage=usage, _is_trial=True) subscription.save() user = User( username=create_username(oid=oid, username=username), phone=phone, is_active=True, role=ROLE_DICT['Organizer'], org=org, ) user.set_unusable_password() user.save() userstate = UserState.objects.create(user=user) jwt_token = jwt_encode_handler(jwt_payload_handler(user)) return user, jwt_token
def create_organizer(username, oid='org1'): org = create_org(oid) organizer = User( username=create_username(oid, username), is_active=True, role=ROLE_DICT['Organizer'], org=org, full_name='Organizer', ) organizer.set_unusable_password() organizer.save() state = UserState.objects.create(user=organizer) return organizer
def create_agent(username, parent, is_present=True): oid = parent.org.oid org = parent.org agent = User( username=create_username(oid, username), is_active=True, org=org, role=ROLE_DICT['Employee'], parent=parent, is_present=is_present, full_name='Agent', ) agent.set_unusable_password() agent.save() org.subscription.added_agents += 1 org.subscription.save() state = UserState.objects.create(user=agent) return agent
def create_manager(username, parent, org): manager = User( username=create_username(org.oid, username), is_active=True, role=ROLE_DICT['Manager'], org=org, parent=parent, full_name='Manager', ) manager.set_unusable_password() manager.save() manager.org.subscription.added_agents += 1 manager.org.subscription.save() state = UserState.objects.create(user=manager) return manager