def restore_object(self, attrs, instance=None): def _get_first_last_names(name): name_split = name.split() first_name = name_split[0] last_name = u'' if len(name_split) > 1: last_name = u' '.join(name_split[1:]) return first_name, last_name params = copy.deepcopy(attrs) username = attrs.get('user.username', None) password = attrs.get('user.password', None) name = attrs.get('name', None) email = attrs.get('user.email', None) if username: params['username'] = username if email: params['email'] = email if password: params.update({'password1': password, 'password2': password}) if instance: form = UserProfileForm(params, instance=instance) # form.is_valid affects instance object for partial updates [PATCH] # so only use it for full updates [PUT], i.e shallow copy effect if not self.partial and form.is_valid(): instance = form.save() # get user if email: instance.user.email = form.cleaned_data['email'] if name: first_name, last_name = _get_first_last_names(name) instance.user.first_name = first_name instance.user.last_name = last_name if email or name: instance.user.save() return super(UserProfileSerializer, self).restore_object(attrs, instance) #return instance # TODO: updates form = RegistrationFormUserProfile(params) if form.is_valid(): first_name, last_name = _get_first_last_names(name) new_user = User(username=username, first_name=first_name, last_name=last_name, email=email) new_user.set_password(password) new_user.save() created_by = self.context['request'].user profile = UserProfile(user=new_user, name=attrs.get('name', u''), created_by=created_by, city=attrs.get('city', u''), country=attrs.get('country', u''), organization=attrs.get('organization', u''), home_page=attrs.get('home_page', u''), twitter=attrs.get('twitter', u'')) return profile else: self.errors.update(form.errors) return attrs
def registerUser(request): username = request.POST['username'] password = request.POST['password'] #retyped_password = request.POST['rpassword'] email = request.POST['email'] #check to see that username doesn't already exist if User.objects.filter(username=username).exists(): error = "username already exists" return render(request, 'homepage/registration.html', {"error":error}) # check that passwords match and are >= 5 characters if len(password) < 7: error = "password must be at least 7 characters long" return render(request, 'homepage/registration.html', {"error": error}) else: #create a user and log them in #User Profile Object newUser = UserProfile(username=username, points=0) newUser.save() #django user User.objects.create_user(username, email, password) user = authenticate(username=username, password=password) login(request, user) return redirect('main/')
def subscribe(request,email,lesson_id,token): from django.shortcuts import redirect from django.contrib.auth import authenticate, login from django.http import HttpResponseRedirect uname = email.replace('--att--','@') uname = uname.replace('--dot--','.') lesson = Lesson.objects.get(pk=lesson_id) try: user = UserProfile.objects.get(username=uname) except: user = UserProfile() user.username = uname user.set_password('123') user.is_active = True user.email = uname user.save() user.backend = 'main.auth.ProfileUserModelBackend' login(request, user) try: Subscriber2Lesson.objects.get(lesson=lesson, user=user) except: u2l = Subscriber2Lesson() u2l.user = user u2l.lesson = lesson u2l.save() return redirect('my_profile')
def request_database_add_personal_details(request): constraint = helpers.constraint(request, "POST"); data = constraint.safe({ "first_name": True, "last_name": True, "department": False }); request.user.first_name = data['first_name']; request.user.last_name = data['last_name']; request.user.full_clean(); request.user.clean(); request.user.save(); try: of_department = Department.objects.get(id=data['department']); of_user_profile = UserProfile( user=request.user, department= of_department ); of_user_profile.full_clean(); of_user_profile.clean(); of_user_profile.save(); return redirect("/"); except Department.DoesNotExist: raise Department.DoesNotExist("Index id of department object does not exists"); pass;
def setUp(self) -> None: user = User.objects.create_user(username='******', email='*****@*****.**', password='******') user_profile = UserProfile() user_profile.user = user user_profile.save() user2 = User.objects.create_user(username='******', email='*****@*****.**', password='******') user_profile2 = UserProfile() user_profile2.user = user2 user_profile2.save() self.user_profile = user_profile self.user_profile2 = user_profile2
def createNewUserProfile(user): profile = UserProfile() profile.user = user profile.username = user.username profile.first_name = user.first_name profile.last_name = user.last_name profile.save() return profile
def create(self, validated_data): user = User(email=validated_data['email'], username=validated_data['username']) user.set_password(validated_data['password']) user.save() user_profile = UserProfile(user=user) user_profile.save() return user
def setUp(self): user = User.objects.create_user(username='******', email='*****@*****.**', password='******') user_profile = UserProfile() user_profile.user = user user_profile.save() self.user_profile = user_profile
def save(self, new_user): new_profile = \ UserProfile(user=new_user, name=self.cleaned_data['name'], city=self.cleaned_data['city'], country=self.cleaned_data['country'], organization=self.cleaned_data['organization'], home_page=self.cleaned_data['home_page'], twitter=self.cleaned_data['twitter']) new_profile.save() return new_profile
def setUp(self) -> None: self.user = User.objects.create_user(username='******', email='*****@*****.**', password='******') self.user_profile = UserProfile() self.user_profile.user = self.user self.user_profile.save() self.team = Team(name='Kitchen', description='Cook stuff') self.team.save()
def createNewUserProfile(user): try: profile = UserProfile.objects.get(user=user) except UserProfile.DoesNotExist: profile = UserProfile() profile.user = user profile.username = user.username profile.first_name = user.first_name profile.last_name = user.last_name profile.save() return profile return None
def save_user(self, request, sociallogin, form=None): user = DefaultSocialAccountAdapter.save_user(self, request, sociallogin, form=form) if UserProfile.objects.filter(user=user).exists(): pass else: new_user = UserProfile(user=user, name=user.get_full_name()) new_user.save() # print("Inside the adapter") return redirect('/')
def add_user_task(sid, data): try: user = UserProfile.objects.get(login=data['login']) except ObjectDoesNotExist: print('No user') user = UserProfile() user.login = data['login'] user.save() con = UserConnection() con.user = user con.sid = sid con.save() UserConnection.check_online(user)
def populate(): print "Creating Ramya" contact1 = Contacts(addr_line1="18570 NE 58th Ct, #K3084", city="Redmond", state="WA", country="USA", zipcode=98052, email="*****@*****.**") contact1.save() user1 = UserProfile(first_name="Ramya", contact=contact1) user1.save() print "Creating Sanath" contact2 = Contacts(addr_line1="2 Arundel Road, #2", city="Burlingame", state="CA", country="USA", zipcode=94010, email="*****@*****.**") contact2.save() user2 = UserProfile(first_name="Sanath", contact=contact2) user2.save()
def test_saving_and_retrieving_profiles(self): from django.contrib.auth.models import User u1 = User.objects.create(username='******') u2 = User.objects.create(username='******') profile1 = UserProfile() profile1.user = u1 profile1.email = '*****@*****.**' profile1.save() profile2 = UserProfile() profile2.user = u2 profile2.email = '*****@*****.**' profile2.save() saved_profiles = UserProfile.objects.all() self.assertEqual(saved_profiles.count(), 2) first_saved_profile = saved_profiles[0] second_saved_profile = saved_profiles[1] self.assertEqual(first_saved_profile.email, '*****@*****.**') self.assertEqual(second_saved_profile.email, '*****@*****.**')
def register(request): serializer = RegistrationSerializer(data=request.data) if serializer.is_valid(): new_user = User.objects.create( username=serializer.validated_data.get('username'), password=make_password(serializer.validated_data.get('password')), first_name=serializer.validated_data.get('first_name'), last_name=serializer.validated_data.get('last_name'), email=serializer.validated_data.get('email')) new_user_profile = UserProfile(account=new_user) new_user_profile.save() return Response(status=status.HTTP_200_OK) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def handle(self, *args, **options): count = options["users"] users = [] waiters = [] managers = [] _usernames = [] # generate users for i in range(count): n = gen_unique_name(_usernames, ("user_" + "".join(random.sample(string.lowercase, 3)),)) print "generate %d. user (%s)" % (i + 1, n) u = User() u.username = n u.password1 = "".join(random.sample(string.lowercase + string.digits, 10)) u.password2 = u.password1 users.append(u) u.save() # generate user roles # waiters if i % 20 == 1: ur = UserRole() ur.user = u ur.role = _roles[1] ur.restaurant = random.choice(Restaurant.objects.all()) ur.save() print "marking %s as waiter" % u.username waiters.append(u) if u in users: users.remove(u) # managers if i % 40 == 1: ur = UserRole() ur.user = u ur.role = _roles[0] ur.restaurant = random.choice(Restaurant.objects.all()) ur.save() print "marking %s as manager" % u.username managers.append(u) if u in users: users.remove(u) # every 2nd user a profile if i % 2 == 0: print "Adding user profile" profile = UserProfile() profile.user = u profile.save() self.stdout.write('Successfully added %d users' % count)
def post(self, request): form = SignUpForm(request.POST) if form.is_valid(): checkuser=User.objects.filter(username=form.cleaned_data.get('username')).first() if checkuser: return redirect('/login/') userdata=dict(form.cleaned_data) profiledata=dict(form.cleaned_data) userdata.pop('phno') userdata.pop('dob') # user = User.objects.create_user(**form.cleaned_data) user = User.objects.create_user(**userdata) profiledata.pop('username') profiledata.pop('password') profiledata.pop('email') obj = User.objects.latest('id') profiledata['user_id']=obj.id profile=UserProfile(dob=profiledata['dob'],phno=profiledata['phno'],user_id=profiledata['user_id']) profile.save() user = authenticate( request, username = form.cleaned_data['username'], password = form.cleaned_data['password'] ) if user is not None: login(request, user) return redirect('/menu_index/') else: messages.error(request, 'Invalid Credentials') return redirect('/login/')
def post(request: HttpRequest) -> HttpResponse: if request.method != 'POST': return redirect('signup') if settings.REGISTRATION_CLOSED: return redirect('registration-closed') form = SignUpForm(data=request.POST) if not form.is_valid(): return render(request, 'registration/signup.html', context={ 'form': form, }) with transaction.atomic(): try: User.objects.create_user( username=form.cleaned_data['email'], email=form.cleaned_data['email'], password=form.cleaned_data['password'], first_name=form.cleaned_data['first_name'], last_name=form.cleaned_data['last_name']) except IntegrityError as e: if str(e) == 'UNIQUE constraint failed: auth_user.username': return HttpResponseBadRequest('User already exists.') raise user = authenticate(username=form.cleaned_data['email'], password=form.cleaned_data['password']) assert user is not None user_profile = UserProfile() user_profile.years_on_playa = form.cleaned_data['years_on_playa'] user_profile.invited_by = form.cleaned_data['invited_by'] user_profile.phone_number = form.cleaned_data['phone'] user_profile.zipcode = form.cleaned_data['zipcode'] user_profile.user = user user_profile.save() membership = TeamMembership(member=user, team=form.cleaned_data['interested_team']) membership.save() login(request, user) return redirect(user_profile)
def enter(request,email,token): from django.shortcuts import redirect from django.contrib.auth import authenticate, login from django.http import HttpResponseRedirect uname = email.replace('--att--','@') uname = uname.replace('--dot--','.') try: user = User.objects.get(username=uname) except: user = UserProfile() user.username = uname user.set_password('123') user.is_active = True user.email = uname user.save() user = User.objects.get(username=uname) user.backend = 'main.auth.ProfileUserModelBackend' login(request, user) return redirect('lesson_for_student', id=1)
def test_details(self): alice = User.objects.create_user('alice', '*****@*****.**', 'passwd') alice.save() profile = UserProfile(user=alice, biography='Just a small-town girl...', playa_name='Yoshi') profile.save() self.assertEqual(alice.profile, profile) self.assertEqual(set(alice.profile.food_restrictions.all()), set()) vegan = FoodRestriction(name='Vegan', description='No animal products.') vegan.save() alice.profile.food_restrictions.add(vegan) alice.save() self.assertEqual(set(alice.profile.food_restrictions.all()), {vegan})
def register_view(request): password = request.POST.get('newpassword') if password != request.POST.get('passcheck'): password = None return HttpResponse('passwords dont match! auth failed!') user = User() user.email = request.POST.get('email') user.username = user.email user.set_password(password) user.first_name = request.POST.get('first') user.last_name = request.POST.get('last') user.save() userProfile = UserProfile() userProfile.user = user userProfile.state = request.POST.get('state') userProfile.city = request.POST.get('city') userProfile.phone = request.POST.get('phone') userProfile.save() return redirect('/')
def test_phone_number_parsing(self): alice = User.objects.create_user('alice', '*****@*****.**', 'passwd') alice.save() profile = UserProfile(user=alice, biography='Just a small-town girl...', playa_name='Yoshi') profile.save() test_cases = [ '5555555555', '555-555-5555', '15555555555', '1-555-555-5555', '+15555555555', '+1-555-555-5555', ] for phone_number in test_cases: parsed_number = UserProfile.parse_phone_number(phone_number) assert len(parsed_number) == 12 self.assertTrue(True)
def register(self, request, **cleaned_data): def _get_first_last_names(name): name_split = name.split() first_name = name_split[0] last_name = u'' if len(name_split) > 1: last_name = u' '.join(name_split[1:]) return first_name, last_name new_user = \ super(FHRegistrationView, self).register(request, **cleaned_data) new_profile = \ UserProfile(user=new_user, name=cleaned_data['name'], city=cleaned_data['city'], country=cleaned_data['country'], organization=cleaned_data['organization'], home_page=cleaned_data['home_page'], twitter=cleaned_data['twitter']) new_profile.save() if cleaned_data['name']: fn, ln = _get_first_last_names(cleaned_data['name']) new_user.first_name = fn new_user.last_name = ln new_user.save() return new_user
def run(): User = get_user_model() # Update the users in this list. # Each tuple represents the username, password, email, firstname and lastname of a user. users = [ ('alexanderbouma', '123qweasdzxc', '-'), ('student', '123qweasdzxc', '-'), ('teacher', '123qweasdzxc', '-'), ] for username, password, email in users: try: print('Creating user: '******'User ', username, ' successfully created.') except: print('There was a problem creating the user:'******'. Error: ', sys.exc_info()[1]) data_user = [ ['bramlap', 'Bram', 'Lap'], ['alexanderbouma', 'Alexander', 'Bouma'], ['student', 'Student', 'Student'], ['teacher', 'Teacher', 'Teacher'], ] user_all = User.objects.all() userprofile_all = UserProfile.objects.all() for i in range(len(user_all)): does_exist = False for j in userprofile_all: if user_all[i] == j: does_exist = True if does_exist == False: for j in range(len(data_user)): if str(user_all[i]) == str(data_user[j][0]): if str(user_all[i]) == 'teacher': p = UserProfile( user=user_all[i], firstname=str(data_user[j][1]), lastname=str(data_user[j][2]), is_student=False, is_teacher=True, ) p.save() else: p = UserProfile( user=user_all[i], firstname=str(data_user[j][1]), lastname=str(data_user[j][2]), ) p.save() print('OK')
def handle(self, *args, **options): conn = sqlite3.connect(options['userdb_path'][0]) """ CREATE TABLE users ( 0 login TEXT PRIMARY KEY, 1 firstname TEXT, 2 lastname TEXT, 3 email TEXT, 4 password TEXT, 5 path TEXT, 6 token TEXT, 7 accepted INTEGER, 8 project TEXT, 9 affiliation TEXT, 10 ip TEXT, 11 clearance TEXT, 12 date TEXT, 13 visit TEXT) """ print("Migrating users table...") user_paths = {} for row in conn.execute('SELECT * FROM users;'): username = sanitize_username(row[0]) password = "******" + row[4] email = row[3] is_active = True is_superuser = True if row[11] == 'admin' else False user_paths[row[5]] = username date_joined = datetime.strptime( row[12], "%Y-%m-%d").replace(tzinfo=timezone.utc) newuser = User(username=username, password=password, email=email, is_active=is_active, is_superuser=is_superuser, is_staff=is_superuser, date_joined=date_joined) newuser.save() fullname = "%s %s" % (row[1], row[2]) institution = row[9] if len(fullname) < 2: fullname = None newuser_profile = UserProfile(user=newuser, fullname=fullname, orcid=None, institution=institution) newuser_profile.save() print(" - Successful.") print("Moving project files... ") for path in user_paths: username = user_paths[path] # old user project dir src = os.path.join(options['userfiles_path'][0], path) #new user project dir dst = os.path.join(settings.USER_DATA_DIR, username) try: shutil.copytree(src, dst) except FileNotFoundError: # if user path does not exists create empty dir for user os.makedirs(dst) print(" - Successful") print("Migratins project table... ") """ CREATE TABLE projects ( 0 name TEXT PRIMARY KEY, 1 path TEXT, 2 user TEXT, 3 description TEXT) """ for row in conn.execute('SELECT * FROM projects;'): name = row[0] slug = slugify(name).replace('-', '_') path = row[1] username = sanitize_username(row[2]) description = row[3] #rename project files fileTypes_old = [ 'treeFile', 'dataFile', 'fastaFile', 'samplesOrderFile', 'samplesInformationFile' ] fileTypes_new = [ 'tree.txt', 'data.txt', 'fasta.fa', 'samples-order.txt', 'samples-info.txt' ] for i in range(5): try: os.rename( os.path.join(settings.USER_DATA_DIR, username, path, fileTypes_old[i]), os.path.join(settings.USER_DATA_DIR, username, path, fileTypes_new[i])) except: pass try: if not description or not len(description) > 0: description = "" project = Project(name=name, slug=slug, user=User.objects.get(username=username), secret=path) samples_info = project.get_file_path('samples-order.txt', default=None) samples_order = project.get_file_path('samples-info.txt', default=None) if (samples_info or samples_order) and not project.get_file_path( 'samples.db', default=None): s = dbops.SamplesInformationDatabase(project.get_file_path( 'samples.db', dont_check_exists=True), quiet=True) s.create(samples_order, samples_info) interactive = project.get_interactive() # try to get number of leaves try: leaves = get_names_order_from_newick_tree( project.get_file_path('tree.txt', default=None)) project.num_leaves = len(leaves) if leaves != [''] else 0 except: project.num_leaves = 0 # try to get number of layers try: project.num_layers = len( interactive.views['single'] [0]) - 1 # <- -1 because first column is contigs except: project.num_layers = 0 # store description dbops.update_description_in_db( project.get_file_path('profile.db', default=None), description or '') project.synchronize_num_states() project.synchronize_num_collections() project.save() # try to migrate old links. for row_links in conn.execute( 'SELECT * FROM views WHERE project LIKE \'%s\';' % (name)): old_link = OldLinks( name=row_links[0], user=sanitize_username(row_links[1]), project=Project.objects.filter( name=row_links[2], user__username=sanitize_username(row_links[1]))[0], is_public=True if row_links[3] == 1 else False, token=row_links[4]) old_link.save() project_link = ProjectLink(project=old_link.project, link=old_link.token) project_link.save() except Exception as e: print(username + " " + name + " " + path + " failed to create project, here is the exception " + str(e)) shutil.rmtree( os.path.join(settings.USER_DATA_DIR, username, path)) print(" - Successful")
def add_event(request): ''' The view that will be called when DA will add events from the WebPortal. ''' if request.method == 'POST': try: user_id = str(request.META['HTTP_X_USER_ID']) except KeyError: return JsonResponse({ "message": "Header missing: X-USER-ID", "status": 2 }) try: user_profile = UserProfile.objects.get(uuid=user_id) if not user_profile: raise Exception except Exception: return JsonResponse( {"message": "The given UserId doesnt correspond to any user."}) ''' Add the below 2 lines on every page where DA functionalities are there. ''' if not user_profile.is_da: return JsonResponse({ "message": "You must be logged in as a DA to add events.", "status": 0 }) try: # just to decode JSON properly data = json.loads(request.body.decode('utf8').replace("'", '"')) except: return JsonResponse({ "message": "Please check syntax of JSON data passed.", 'status': 4 }) try: event_name = data['name'] description = data['description'] fund_goal = data['fund_goal'] phone = data['phone'] email = data['email'] except KeyError as missing_data: return JsonResponse({ "message": "Missing the following field: {}".format(missing_data), 'status': 2 }) try: int(data['fund_goal']) except: #phone numbers should be an integer or string only of numbers return JsonResponse({ 'status': 0, 'message': 'Fund Goal has to be a positive integer.' }) try: int(data['phone']) except: #phone numbers should be an integer or string only of numbers return JsonResponse({ 'status': 0, 'message': 'Please enter a valid phone number.' }) if len(phone) != 10: return JsonResponse({ 'status': 0, 'message': 'Please enter a valid Phone Number.' }) if not re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email): return JsonResponse({ 'status': 0, 'message': 'Please enter a valid Email address.' }) try: UserProfile.objects.get(email=email) return JsonResponse({ 'status': 0, 'message': 'This Email has already been registered. PLease try some other email.' }) except: pass try: profile = UserProfile() event_name = ' '.join(str(event_name).strip().split()) name = 'Admin for Event: ' + event_name profile.name = name profile.email = str(email) profile.phone = int(phone) profile.emergency_phone = int(phone) profile.save() username = profile.name.split(':')[1] + str(profile.id) password = ''.join(choice(chars) for i in range(8)) user = User.objects.create_user(username=username, password=password) profile.user = user profile.save() event = Event.objects.create(name=event_name, description=description, admin=profile, fund_goal=fund_goal) event.save() message = 'Event added Successfully!' return JsonResponse({'message': message, 'status': 1}) except Exception as e: print(e) return JsonResponse({ 'message': 'Event could not be added. Please try again.', 'status': 0 }) if request.method == 'GET': return JsonResponse({"message": "API for DA to add events."})
def register(request): if request.method == 'GET': return JsonResponse({ 'status': 3, 'message': 'The API where new users can register themselves on the app.' }) if request.method == 'POST': try: # just to decode JSON properly data = json.loads(request.body.decode('utf8').replace("'", '"')) except: return JsonResponse({ "message": "Please check syntax of JSON data passed.", 'status': 4 }) try: # see whether all fields passed in JSON or not data['name'] data['email'] data['phone'] data['emergency_phone'] except KeyError as missing_data: return JsonResponse({ "message": "Missing the following field: {}".format(missing_data), 'status': 2 }) try: int(data['phone']) except: #phone numbers should be an integer or string only of numbers return JsonResponse({ 'status': 0, 'message': 'Please enter a valid Phone Number.' }) try: int(data['emergency_phone']) except: #phone numbers should be an integer or string only of numbers return JsonResponse({ 'status': 0, 'message': 'Please enter a valid Emergency Phone Number.' }) if len(data['phone']) != 10: return JsonResponse({ 'status': 0, 'message': 'Please enter a valid Phone Number.' }) if len(data['emergency_phone']) != 10: return JsonResponse({ 'status': 0, 'message': 'Please enter a valid Emergency Phone Number.' }) email = data['email'] if not re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email): return JsonResponse({ 'status': 0, 'message': 'Please enter a valid Email address.' }) try: UserProfile.objects.get(email=email) return JsonResponse({ 'status': 0, 'message': 'This Email has already been registered. Try some other email.' }) except: pass try: profile = UserProfile() name = ' '.join(str(data['name']).strip().split()) profile.name = name profile.email = str(data['email']) profile.phone = int(data['phone']) profile.emergency_phone = int(data['emergency_phone']) profile.save() #verify email send_to = profile.email body = email_body.register() email_token = utils.generate_email_token(profile) body = body % ( name, str(request.build_absolute_uri(reverse("main:nill"))) + 'email_confirm/' + email_token + '/') sg = sendgrid.SendGridAPIClient(apikey=SENDGRID_API_KEY) from_email = Email('*****@*****.**') to_email = Email(send_to) subject = "Email Confirmation for your account on Alertify app" content = Content('text/html', body) try: mail = Mail(from_email, subject, to_email, content) response = sg.client.mail.send.post(request_body=mail.get()) except Exception: profile.delete() return JsonResponse({ 'message': 'Error sending email. Please try again.', 'status': 0 }) message = "Registration successful! A confirmation link has been sent to %s. Kindly click on it to verify your email address." % ( send_to) return JsonResponse({'message': message, 'status': 1}) except Exception: return JsonResponse({ 'message': 'Registration failed due to unknown reasons.', 'status': 0 })