Example #1
0
 def authenticate(self, username=None, password=None):
     user = User.all().filter('username = '******'email =', username).get()
     if user and user.check_password(password):
         return user
     return None
Example #2
0
	def authenticate(self, token=None, req_token = None):
		if not token:
			return None
		if not req_token:
			return None
		token = oauth.OAuthToken.from_string(token)
		if token.key != req_token:
			return None
		token = exchange_request_token_for_access_token(CONSUMER,
			CONNECTION, token)

		# Actually login
		obj = is_authenticated(CONSUMER, CONNECTION, token)
		if obj is False:
			return None
		#try: user = User.objects.get(username=obj['screen_name'])
		#except: user = User(username=obj['screen_name'])
		#req.session['user_id'] = user.id
		#del req.session['token']
		user = User.all().filter('username = '******'screen_name']).get()
		if not user:
			user = User(key_name="usertw%s" % obj['screen_name'], username = "******" % (obj['screen_name']))
		user.oauth_token = token.key
		user.oauth_token_secret = token.secret
		user.save()
		return user
Example #3
0
def display(request, username='', friends=False):
    entries = Entry.objects.latest(username, friends)
    if friends:
        page_title = "Posts by %s and Friends" % username
        feed_title = "%s and Friends Feed" % username
        feed_url = '/feed/friends/'+username,
    else:
        if username:
            user = User.all().filter('username = '******'s Feed" % username
            feed_url = '/feed/'+username,
        else:
            page_title = "Home" 
            feed_title = "Everyone's Feed"
            feed_url = '/feed/'

    extra_context = dict(
        page_title = page_title,
        feed_title = feed_title,
        feed_url = feed_url,
        username = username,
    )
    return object_list(request, entries, paginate_by=10,
            extra_context=extra_context)
Example #4
0
    def test_registration_view(self):
        """
        Test that the registration view rejects invalid submissions,
        and creates a new user and redirects after a valid submission.
        
        """
        # Invalid data fails.
        alice = User.all().filter('username ='******'alice').get()
        alice.is_active = True
        alice.put()
        response = self.client.post(reverse('registration_register'),
                                    data={ 'username': '******', # Will fail on username uniqueness.
                                           'email': '*****@*****.**',
                                           'password1': 'foo',
                                           'password2': 'foo' })
        self.assertEqual(response.status_code, 200)
        self.failUnless(response.context[0]['form'])
        self.failUnless(response.context[0]['form'].errors)

        response = self.client.post(reverse('registration_register'),
                                    data={ 'username': '******',
                                           'email': '*****@*****.**',
                                           'password1': 'foo',
                                           'password2': 'foo' })
        self.assertEqual(response.status_code, 302)
        self.assertEqual(response['Location'], 'http://testserver%s' % reverse('registration_complete'))
        self.assertEqual(RegistrationProfile.all().count(), 3)
Example #5
0
def feed(request, username='', friends=False):
    host = 'http://%s' % request.get_host()
    entries = Entry.objects.latest(username, friends)[:MAX_FEED_ENTRIES]
    if friends:
        feed_title = "%s and Friends Feed" % username
        source = host+'/feed/friends/'+username
    else:
        if username:
            user = User.all().filter('username = '******'s Feed" % username
            source = host+'/feed/'+username
        else:
            feed_title = "Everyone's Feed"
            source = host+'/feed/'

    context = dict(
        hub = HUB,
        entries = entries,
        first_entry = entries[0] if entries else None,
        username = username if username else 'Everyone',
        feed_title = feed_title,
        userpage = host+'/'+username,
        source = source
    )
    return render_to_response('atom.xml', context, mimetype="application/atom+xml")
Example #6
0
    def test_registration_view(self):
        """
        Test that the registration view rejects invalid submissions,
        and creates a new user and redirects after a valid submission.
        
        """
        # Invalid data fails.
        alice = User.all().filter('username ='******'alice').get()
        alice.is_active = True
        alice.put()
        response = self.client.post(
            reverse('registration_register'),
            data={
                'username': '******',  # Will fail on username uniqueness.
                'email': '*****@*****.**',
                'password1': 'foo',
                'password2': 'foo'
            })
        self.assertEqual(response.status_code, 200)
        self.failUnless(response.context[0]['form'])
        self.failUnless(response.context[0]['form'].errors)

        response = self.client.post(reverse('registration_register'),
                                    data={
                                        'username': '******',
                                        'email': '*****@*****.**',
                                        'password1': 'foo',
                                        'password2': 'foo'
                                    })
        self.assertEqual(response.status_code, 302)
        self.assertEqual(
            response['Location'],
            'http://testserver%s' % reverse('registration_complete'))
        self.assertEqual(RegistrationProfile.all().count(), 3)
    def generate_internal_username(self, seed=False):
        """
        Eventually this should be looking at a base profile and pulling as much basic 
        information (first name, last name, email, etc) and parsing it accordingly.
        for now, it's some ugly thing like this.
        """
        username = ''
        username = self.real_name
        if not username:
            try:
                username = self.username
            except:
                pass
        if not username:
            username = self.email
        if not username:
            try:
                username = self.identity
            except:
                pass

        username = '******' % (username, seed) if seed else username

        try:
            username = User.all().filter('username = ', username)[0]
        except:
            return username
        else:
            seed = seed + 1 if seed else 1
            return self.generate_internal_username(seed=seed)
    def generate_internal_username(self, seed = False):
        """
        Eventually this should be looking at a base profile and pulling as much basic 
        information (first name, last name, email, etc) and parsing it accordingly.
        for now, it's some ugly thing like this.
        """
        username = ''
        username = self.real_name
        if not username:
            try:
                username = self.username
            except:
                pass
        if not username:
            username = self.email
        if not username:
            try:
                username = self.identity
            except:
                pass


        username = '******'%(username,seed) if seed else username

        try:
            username = User.all().filter('username = ', username)[0]
        except: 
            return username
        else:
            seed = seed + 1 if seed else 1
            return self.generate_internal_username(seed=seed)
    def clean_username(self):
        username = self.cleaned_data.get('username')
        user = User.all().filter('username ='******'This username is already in use.'))
        else:
            return username
Example #10
0
 def clean_email(self):
     """
     Validates that a user exists with the given e-mail address.
     """
     email = self.cleaned_data["email"].lower()
     self.users_cache = User.all().filter('email =', email).fetch(100)
     if len(self.users_cache) == 0:
         raise forms.ValidationError(_("That e-mail address doesn't have an associated user account. Are you sure you've registered?"))
Example #11
0
    def get_context_data(self, *args, **kwargs):

        ctx = super(self.__class__, self).get_context_data(*args, **kwargs)

        ctx.update({
            'object_list': User.all(),
        })

        return ctx
Example #12
0
 def testDeleteUser(self):
     """Tests RpxBackend.delete_user().
     
     Tests that both the user and the associated RPX data entries are deleted.
     
     """
     user, auth_info = self.__create_normal_user__()
     
     user_key = user.key()
     
     number_of_users_entries = User.all().count()
     number_of_rpx_entries = RpxData.all().count()
     
     RpxBackend.delete_user(self.backend, user)
     
     self.assert_(User.all().count() == number_of_users_entries - 1)
     self.assert_(RpxData.all().count() == number_of_rpx_entries - 1)
     self.assert_(RpxBackend.get_user(self.backend, user_key) == None)
Example #13
0
 def clean_email(self):
     """
     Validate that the supplied email address is unique for the
     site.
     
     """
     email = self.cleaned_data['email'].lower()
     if User.all().filter('email =', email).count(1):
         raise forms.ValidationError(_(u'This email address is already in use. Please supply a different email address.'))
     return email
Example #14
0
def set_all_user_orgs_to_maventy():
  '''Iterate over all the users in the DB and set org to "maventy".
  
  This was useful once, and may be useful if we modify User.all() to some
  other query'''
  org = 'maventy'
  for userobj in User.all():
    userobj.organization = org
    userobj.save()
    logging.info("Set %s organization to %s" % (userobj.username, org))
Example #15
0
 def clean_email(self):
     """
     Validate that the supplied email address is unique for the
     site.
     
     """
     email = self.cleaned_data['email'].lower()
     if User.all().filter('email =', email).filter(
         'is_active =', True).count(1):
         raise forms.ValidationError(__(u'This email address is already in use. Please supply a different email address.'))
     return email
Example #16
0
 def clean_username(self):
     username = self.cleaned_data.get('username')
     try:
         #user = User.objects.get(username=username)
         user = User.all()
         user.filter('username = '******'This username is already in use.'))
 def clean_username(self):
     username = self.cleaned_data.get('username')
     try:
         #user = User.objects.get(username=username)
         user = User.all()
         user.filter('username = '******'This username is already in use.'))
Example #18
0
def connect_users(request):
	payload = {}
	logging.info(request.POST)
	fb = Facebook(settings.FACEBOOK_API_KEY, settings.FACEBOOK_API_SECRET)
	fb.session_key = request.POST['fb_sig_session_key']
	user_info_response = fb.users.getInfo([request.POST['fb_sig_user']], ['email_hashes', 'first_name', 'last_name'])
	logging.info(user_info_response)
	for hash in user_info_response[0]['email_hashes']:
		user = User.all().filter('email_hash = ', hash).get()
		user.facebook_id = int(request.POST['fb_sig_user'])
		user.put()
	return render("standardpage.html", payload, request)
Example #19
0
 def clean_email(self):
     """
     Validate that the supplied email address is unique for the
     site.
     
     """
     email = self.cleaned_data["email"].lower()
     if User.all().filter("email =", email).filter("is_active =", True).count(1):
         raise forms.ValidationError(
             __(u"This email address is already in use. Please supply a different email address.")
         )
     return email
Example #20
0
def empty_datastore(request):

	query = User.all()
	while query.count() > 0:
		results = query.fetch(500)
		db.delete(results)
		query = User.all()

	query = Link.all()
	while query.count() > 0:
		results = query.fetch(500)
		db.delete(results)
		query = Link.all()

	query = Tag.all()
	while query.count() > 0:
		results = query.fetch(500)
		db.delete(results)
		query = Tag.all()
	
	return HttpResponseRedirect('/delvicious/')
Example #21
0
def index(request):
    """
    Display the current system status.
    """
    # Simple form to add new suggestions.
    suggestion_form = SuggestionForm(request.POST or None)
    if suggestion_form.is_valid():
        return submit_suggestion(request, suggestion_form)

    # Recent time intervals.
    day = datetime.now() - timedelta(hours=24)
    week = datetime.now() - timedelta(days=7)

    # Show newest suggestions.
    suggestion_count = Reminder.all().filter('owner', None).count()
    suggestion_count_24h = (Reminder.all().filter('owner', None)
                            .filter('created >', day).count())
    suggestion_count_7d = (Reminder.all().filter('owner', None)
                           .filter('created >', week).count())
    suggestion_list = (Reminder.all().filter('owner', None)
                       .order('-created').fetch(RECENT_LIMIT))

    # Show newest tags.
    tag_count = Tag.all().count()
    tag_count_24h = Tag.all().filter('created >', day).count()
    tag_count_7d = Tag.all().filter('created >', week).count()
    tag_list = Tag.all().order('-created').fetch(RECENT_LIMIT * 4)

    # Registered user accounts.
    user_count = User.all().count()
    user_count_24h = User.all().filter('date_joined >', day).count()
    user_count_7d = User.all().filter('date_joined >', week).count()
    user_list = User.all().order('-date_joined').fetch(RECENT_LIMIT)

    # Show newest feedback.
    # feedback_count = Feedback.all().count()
    # feedback_count_24h = Feedback.all().filter('submitted >', day).count()
    # feedback_count_7d = Feedback.all().filter('submitted >', week).count()
    # feedback_list = Feedback.all().order('-submitted').fetch(RECENT_LIMIT)
    return render_to_response(request, 'dashboard/index.html', locals())
Example #22
0
 def clean_username(self):
     username = self.cleaned_data.get('username')
     try:
         # GAE implementation
         user = User.all().filter('username ='******'This username is already in use.'))
Example #23
0
def create_user(request):

    try:
        u = User.all().filter("username = "******"admin").fetch(1)[0]
    except IndexError:
        u = None

    if not u:
        u = User(username="******")
        u.set_password('password')
        u.put()

    return HttpResponse(u"Created")
Example #24
0
def locations(request):

    paginate = Paginate()
    users = User.all()

    c = {}
    c.update(csrf(request))
    page = {}
    page.update(message.get_flash_message(request))
    page.update(paginate.paginate(0, 1))
    c["page"] = page
    c["users"] = users
    return render_to_response('locations/index.jinja', c)
Example #25
0
    def login(self, request):
        """
        Displays the login form for the given HttpRequest.
        """
        from django.contrib.auth.models import User

        # If this isn't already the login page, display it.
        if not request.POST.has_key(LOGIN_FORM_KEY):
            if request.POST:
                message = _("Please log in again, because your session has expired.")
            else:
                message = ""
            return self.display_login_form(request, message)

        # Check that the user accepts cookies.
        if not request.session.test_cookie_worked():
            message = _("Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.")
            return self.display_login_form(request, message)
        else:
            request.session.delete_test_cookie()

        # Check the password.
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        user = authenticate(username=username, password=password)
        if user is None:
            message = ERROR_MESSAGE
            if u'@' in username:
                # Mistakenly entered e-mail address instead of username? Look it up.
                users = User.all().filter('email =', username).fetch(2)
                if not users or len(users) > 1:
                    message = _("Usernames cannot contain the '@' character.")
                else:
                    user = users[0]
                    if user.check_password(password):
                        message = _("Your e-mail address is not your username."
                                    " Try '%s' instead.") % user.username
                    else:
                        message = _("Usernames cannot contain the '@' character.")
            return self.display_login_form(request, message)

        # The user data is correct; log in the user in and continue.
        else:
            if user.is_active and user.is_staff:
                login(request, user)
                return http.HttpResponseRedirect(request.get_full_path())
            else:
                return self.display_login_form(request, ERROR_MESSAGE)
Example #26
0
def send_connect_users(request):
	payload = {}
	users = User.all().filter('username > ', request.GET['name']).fetch(100)
	hashes = []
	fb = Facebook(settings.FACEBOOK_API_KEY, settings.FACEBOOK_API_SECRET)
	for user in users:
		#logging.debug(user)
		user.email_hash = fb.hash_email(user.email)
		hashes.append({"email_hash": user.email_hash})
		username = user.username
		user.put()
	logging.info(hashes)
	logging.info(username)
	user_info_response = fb.connect.registerUsers(hashes)
	logging.info(user_info_response)
	payload['text'] = "<a href='/send_connect?name=%s'>%s</a>" % (username, username)
	return render("standardpage.html", payload, request)
Example #27
0
    def _checklogin(request, *args, **kwargs):
        if request.user.is_authenticated() and request.user.is_staff:
            # The user is valid. Continue to the admin page.
            return view_func(request, *args, **kwargs)

        assert hasattr(request, 'session'), "The Django admin requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'."

        # If this isn't already the login page, display it.
        if LOGIN_FORM_KEY not in request.POST:
            if request.POST:
                message = _("Please log in again, because your session has expired.")
            else:
                message = ""
            return _display_login_form(request, message)

        # Check that the user accepts cookies.
        if not request.session.test_cookie_worked():
            message = _("Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.")
            return _display_login_form(request, message)
        else:
            request.session.delete_test_cookie()

        # Check the password.
        username = request.POST.get('username', None)
        password = request.POST.get('password', None)
        user = authenticate(username=username, password=password)
        if user is None:
            message = ERROR_MESSAGE
            if '@' in username:
                # Mistakenly entered e-mail address instead of username? Look it up.
                users = list(User.all().filter('email =', username))
                if len(users) == 1 and users[0].check_password(password):
                    message = _("Your e-mail address is not your username. Try '%s' instead.") % users[0].username
                else:
                    # Either we cannot find the user, or if more than 1
                    # we cannot guess which user is the correct one.
                    message = _("Usernames cannot contain the '@' character.")
            return _display_login_form(request, message)

        # The user data is correct; log in the user in and continue.
        else:
            if user.is_active and user.is_staff:
                login(request, user)
                return http.HttpResponseRedirect(request.get_full_path())
            else:
                return _display_login_form(request, ERROR_MESSAGE)
Example #28
0
def detail(request, key_name):
    """
    Show details for a public suggestion, and a button to create a
    reminder from it.
    """
    suggestion = get_object_or_404(Reminder, key_name=key_name)
    logging.debug(request.method)
    email_form = EmailForm(request.POST)
    if request.method == "POST":
        user = request.user
        if user.is_anonymous() and email_form.is_valid():
            email = email_form.cleaned_data['email']
            existing = User.all().filter('email', email).fetch(1)
            if len(existing):
                return HttpResponseRedirect(
                    '/accounts/login/?email=%s&next=%s' %
                    (email, request.path))
            user = create_user(request, email)
        return create_reminder(request, user, suggestion)
    return render_to_response(
        request, 'suggestions/detail.html', locals())
Example #29
0
    def latest(self, username='', friends=False):
        """
        get entries ordered by update date.
        username = '' => all entries
        username != '' and not Friends = > entries by username
        username != '' and Friends = > entries by username and friends

        """
        if friends:
            entries =  Entry.all().filter('subscribers_usernames = ',
                username).order('-updated')
        else:
            if username:
                user = User.all().filter('username = '******'owner = ', user).\
                            order('-updated')
            else:
                entries =  Entry.all().order('-updated')
        return entries
Example #30
0
def connect_users(request):
	#<QueryDict: {u'fb_sig_time': [u'1230351016.3299'], 
	#			u'fb_sig_authorize': [u'1'], 
	#			u'fb_sig_locale': [u'en_US'], 
	#			u'fb_sig_session_key': [u'2.oYf3yaL9PnROgLyp5cBg9A__.86400.1230440400-1144902201'], 
	#			u'fb_sig_in_new_facebook': [u'1'], 
	#			u'fb_sig_profile_update_time': [u'0'], 
	#			u'fb_sig_user': [u'1144902201'], 
	#			u'fb_sig_expires': [u'1230440400'], 
	#			u'fb_sig': [u'807f94cba0b3a26f359cd5a7c16cdcd6'], 
	#			u'fb_sig_api_key': [u'9669d802ca3cdcc15172ccd7b4636646'], 
	#			u'fb_sig_added': [u'1']}>
	payload = {}
	logging.info(request.POST)
	fb = Facebook(settings.FACEBOOK_API_KEY, settings.FACEBOOK_API_SECRET)
	fb.session_key = request.POST['fb_sig_session_key']
	user_info_response = fb.users.getInfo([request.POST['fb_sig_user']], ['email_hashes', 'first_name', 'last_name'])
	logging.info(user_info_response)
	for hash in user_info_response[0]['email_hashes']:
		user = User.all().filter('email_hash = ', hash).get()
		user.facebook_id = int(request.POST['fb_sig_user'])
		user.put()
	return render("standardpage.html", payload, request)
def show_person():
    from myapp.models import Person 
    from django.contrib.auth.models import User
    person = None
    u = User.all().filter('username ='******'admin').get()
    return { 'person': person, 'u': u}
Example #32
0
 def testFindByUserAndMonthReturnsNoneOnNoStats(self):
   u = User.all().filter('username ='******'joe').get()
   assert(u)
   s = models.MonthlyUserStats.find_by_user_and_month_offset(u, 0)
   self.assertEqual(s, None)
Example #33
0
 def testFindByUserAndMonthReturnsRightMonthsStats(self):
   u = User.all().filter('username ='******'admin').get()
   assert(u)
   s = models.MonthlyUserStats.find_by_user_and_month_offset(u, 0)
   self.failIf(s is None)
Example #34
0
 def recent_users(self, request):
     recent_users = User.all().order_by('date_joined')
     serializer = self.get_serializer(recent_users, many=True)
     return Response(serializer.data)
Example #35
0
 def tearDown(self):
   for u in User.all():
     u.delete()