本文整理汇总了Python中zkpylons.model.Person类的典型用法代码示例。如果您正苦于以下问题:Python Person类的具体用法?Python Person怎么用?Python Person使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Person类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_create_duplicate_person
def test_create_duplicate_person(self):
Dummy_smtplib.install()
# create a fake user
p = Person(email_address='[email protected]')
p.activated = True
self.dbsession.save(p)
self.dbsession.flush()
pid = p.id
resp = self.app.get('/person/new')
f = resp.form
f['person.email_address'] = '[email protected]'
f['person.firstname'] = 'Testguy'
f['person.lastname'] = 'McTest'
f['person.password'] = 'test'
f['person.password_confirm'] = 'test'
f['person.phone'] = '1234'
f['person.mobile'] = '1234'
f['person.address1'] = 'Moo St'
f['person.city'] = 'Tassie'
f['person.country'] = 'Australia'
f['person.postcode'] = '2000'
resp = f.submit()
resp.mustcontain('A person with this email already exists.')
resp.click('recover your password')
self.dbsession.delete(self.dbsession.query(Person).get(pid))
self.dbsession.flush()
开发者ID:Ivoz,项目名称:zookeepr,代码行数:31,代码来源:test_account.py
示例2: check
def check(self, app, environ, start_response):
if not environ.get('REMOTE_USER'):
set_redirect()
raise NotAuthenticatedError('Not Authenticated')
person = Person.find_by_email(environ['REMOTE_USER'])
if person is None:
environ['auth_failure'] = 'NO_USER'
raise NotAuthorizedError(
'You are not one of the users allowed to access this resource.'
)
proposal = Proposal.find_by_id(self.proposal_id)
if proposal is None:
raise NotAuthorizedError(
"Proposal doesn't exist"
)
if person not in proposal.people:
set_role("User doesn't have any of the specified roles")
raise NotAuthorizedError(
"User doesn't have any of the specified roles"
)
return app(environ, start_response)
开发者ID:Ivoz,项目名称:zookeepr,代码行数:26,代码来源:auth.py
示例3: _forgotten_password
def _forgotten_password(self):
"""Action to let the user request a password change.
GET returns a form for emailing them the password change
confirmation.
POST checks the form and then creates a confirmation record:
date, email_address, and a url_hash that is a hash of a
combination of date, email_address, and a random nonce.
The email address must exist in the person database.
The second half of the password change operation happens in
the ``confirm`` action.
"""
c.email = self.form_result['email_address']
c.person = Person.find_by_email(c.email)
if c.person is not None:
# Check if there is already a password recovery in progress
reset = PasswordResetConfirmation.find_by_email(c.email)
if reset is not None:
return render('person/in_progress.mako')
# Ok kick one off
c.conf_rec = PasswordResetConfirmation(email_address=c.email)
meta.Session.add(c.conf_rec)
meta.Session.commit()
email(c.email, render('person/confirmation_email.mako'))
return render('person/password_confirmation_sent.mako')
开发者ID:iseppi,项目名称:zookeepr,代码行数:32,代码来源:person.py
示例4: validate_python
def validate_python(self, values, state):
assertion = values['assertion']
audience = h.url_for(qualified=True, controller='home').strip("/")
page = urllib2.urlopen('https://verifier.login.persona.org/verify',
urllib.urlencode({ "assertion": assertion,
"audience": audience}))
data = json.load(page)
if data['status'] == 'okay':
c.email = data['email']
c.person = Person.find_by_email(c.email)
if c.person is None:
if not Config.get('account_creation'):
error_message = "Your sign-in details are incorrect; try the 'Forgotten your password' link below."
message = "Login failed"
error_dict = {'email_address': error_message}
raise Invalid(message, values, state, error_dict=error_dict)
# Create a new account for this email address
c.person = Person()
c.person.email_address = data['email']
c.person.activated = True
meta.Session.add(c.person)
meta.Session.commit()
if not c.person.activated:
# Persona returns verified emails only, so might as well confirm this one...
c.person.activated = True
meta.Session.commit()
开发者ID:iseppi,项目名称:zookeepr,代码行数:30,代码来源:person.py
示例5: signed_in_person
def signed_in_person():
email_address = request.environ.get("REMOTE_USER")
if email_address is None:
return None
person = Person.find_by_email(email_address, True)
return person
开发者ID:steven-ellis,项目名称:zookeepr,代码行数:7,代码来源:helpers.py
示例6: view
def view(self, id):
# We need to recheck auth in here so we can pass in the id
if not h.auth.authorized(h.auth.Or(h.auth.is_same_zkpylons_user(id), h.auth.has_reviewer_role, h.auth.has_organiser_role)):
# Raise a no_auth error
h.auth.no_role()
c.registration_status = h.config['app_conf'].get('registration_status')
c.person = Person.find_by_id(id)
return render('person/view.mako')
开发者ID:iseppi,项目名称:zookeepr,代码行数:10,代码来源:person.py
示例7: _edit
def _edit(self, id):
"""UPDATE PERSON"""
# We need to recheck auth in here so we can pass in the id
if not h.auth.authorized(h.auth.Or(h.auth.is_same_zkpylons_user(id), h.auth.has_organiser_role)):
# Raise a no_auth error
h.auth.no_role()
c.person = Person.find_by_id(id)
self.finish_edit(c.person)
redirect_to(action='view', id=id)
开发者ID:iseppi,项目名称:zookeepr,代码行数:11,代码来源:person.py
示例8: roles
def roles(self, id):
c.person = Person.find_by_id(id)
c.roles = Role.find_all()
if not c.person.activated:
h.flash(
"NOTICE: This user hasn't confirmed their email address yet."
" Please get them to visit"
" %s" % h.full_url_for('person/activate'),
category='warning')
return render('person/roles.mako')
开发者ID:iseppi,项目名称:zookeepr,代码行数:11,代码来源:person.py
示例9: user_exists
def user_exists(self, username):
"""
Returns ``True`` if the user exists, ``False`` otherwise. Users are
case insensitive.
"""
person = Person.find_by_email(username)
if person is not None:
return True
return False
开发者ID:Ivoz,项目名称:zookeepr,代码行数:11,代码来源:auth.py
示例10: index
def index(self):
c.DAYS_OPEN = DAYS_OPEN
c.open_date = lca_info.lca_info['date']
days_open = (datetime.date.today() - c.open_date.date()).days
photo_db = PhotoCompEntry.read_db()
photos = [
photo
for days in photo_db.values()
for entries in days
for photo in entries
if photo is not None and photo.day < days_open]
c.no_photos = not photos
day_filter = request.GET.get('day', 'All')
if day_filter and day_filter != 'All':
photos = [p for p in photos if str(p.day) == day_filter]
person_filter = request.GET.get('person', 'All')
if person_filter and person_filter != 'All':
photos = [p for p in photos if str(p.person_id) == person_filter]
submitted = request.GET.get('s', None)
randomise = not submitted or 'randomise' in request.GET
if randomise:
random.shuffle(photos)
else:
photos.sort(key=lambda p: (p.day, p.person_id, p.entry_id))
person_map = {}
for photo in photos:
photo.write_scaled()
person_map[photo.person_id] = None
c.all_person = []
for person_id in person_map:
person = Person.find_by_id(person_id)
person_map[person_id] = person
c.all_person.append(person)
c.all_person.sort(key=lambda person: (person.firstname + " " + person.lastname).lower())
c.photos = photos
def photo_title(photo):
return "%s %s, %s entry %s, %s" % (
person_map[photo.person_id].firstname,
person_map[photo.person_id].lastname,
(c.open_date + datetime.timedelta(photo.day)).strftime('%A'),
ENTRY_NAMES[photo.entry_id],
photo.image_name,)
c.photo_title = photo_title
field_values = {
'day': day_filter,
'person': person_filter,
}
if randomise:
field_values['randomise'] = '1'
if submitted == 'Full Screen' and photos:
html = render('/photocomp/index-fullscreen.mako')
else:
html = render('/photocomp/index.mako')
return htmlfill.render(html, field_values)
开发者ID:gracz120,项目名称:zookeepr,代码行数:54,代码来源:photocomp.py
示例11: check
def check(self, app, environ, start_response):
"""
Should return True if the user has the role or
False if the user doesn't exist or doesn't have the role.
In this implementation role names are case insensitive.
"""
if not environ.get('REMOTE_USER'):
if self.error:
raise self.error
set_redirect()
raise NotAuthenticatedError('Not authenticated')
for role in self.roles:
if not self.role_exists(role):
raise NotAuthorizedError("No such role %r exists"%role)
person = Person.find_by_email(environ['REMOTE_USER'])
if person is None:
raise users.AuthKitNoSuchUserError(
"No such user %r" % environ['REMOTE_USER'])
if not person.activated:
#set_role('User account must be activated')
raise NotAuthorizedError(
"User account must be activated"
)
if self.all:
for role in self.roles:
if not self.user_has_role(person, role):
if self.error:
raise self.error
else:
set_role("User doesn't have the role %s"%role.lower())
raise NotAuthorizedError(
"User doesn't have the role %s"%role.lower()
)
return app(environ, start_response)
else:
for role in self.roles:
if self.user_has_role(person, role):
return app(environ, start_response)
if self.error:
raise self.error
else:
set_role("User doesn't have any of the specified roles")
raise NotAuthorizedError(
"User doesn't have any of the specified roles"
)
开发者ID:SharifulAlamSourav,项目名称:zookeepr,代码行数:51,代码来源:auth.py
示例12: validate_python
def validate_python(self, values, state):
c.email = values['email_address']
c.person = Person.find_by_email(c.email)
error_message = None
if c.person is None:
error_message = "Your sign-in details are incorrect; try the 'Forgotten your password' link below or sign up for a new person."
elif not c.person.activated:
error_message = "You haven't yet confirmed your registration, please refer to your email for instructions on how to do so."
elif not c.person.check_password(values['password']):
error_message = "Your sign-in details are incorrect; try the 'Forgotten your password' link below or sign up for a new person."
if error_message:
message = "Login failed"
error_dict = {'email_address': error_message}
raise Invalid(message, values, state, error_dict=error_dict)
开发者ID:biancaG,项目名称:zookeepr,代码行数:14,代码来源:person.py
示例13: _reset_password
def _reset_password(self, url_hash):
"""Confirm a password change request, and let the user change
their password.
`url_hash` is a hash of the email address, with which we can
look up the confuirmation record in the database.
If `url_hash` doesn't exist, 404.
If `url_hash` exists and the date is older than 24 hours,
warn the user, offer to send a new confirmation, and delete the
confirmation record.
GET returns a form for setting their password, with their email
address already shown.
POST checks that the email address (in the session, not in the
form) is part of a valid person record (again). If the record
exists, then update the password, hashed. Report success to the
user. Delete the confirmation record.
If the record doesn't exist, throw an error, delete the
confirmation record.
"""
c.conf_rec = PasswordResetConfirmation.find_by_url_hash(url_hash)
now = datetime.datetime.now(c.conf_rec.timestamp.tzinfo)
delta = now - c.conf_rec.timestamp
if delta > datetime.timedelta(hours=24):
# this confirmation record has expired
meta.Session.delete(c.conf_rec)
meta.Session.commit()
return render('person/expired.mako')
c.person = Person.find_by_email(c.conf_rec.email_address)
if c.person is None:
raise RuntimeError, "Person doesn't exist %s" % c.conf_rec.email_address
# set the password
c.person.password = self.form_result['password']
# also make sure the person is activated
c.person.activated = True
# delete the conf rec
meta.Session.delete(c.conf_rec)
meta.Session.commit()
h.flash('Your password has been updated!')
self.finish_login(c.person.email_address)
开发者ID:iseppi,项目名称:zookeepr,代码行数:49,代码来源:person.py
示例14: edit
def edit(self, id):
# We need to recheck auth in here so we can pass in the id
if not h.auth.authorized(h.auth.Or(h.auth.is_same_zkpylons_user(id), h.auth.has_organiser_role)):
# Raise a no_auth error
h.auth.no_role()
c.form = 'edit'
c.person = Person.find_by_id(id)
c.social_networks = SocialNetwork.find_all()
c.person.fetch_social_networks()
defaults = h.object_to_defaults(c.person, 'person')
if not defaults['person.country']:
defaults['person.country'] = 'AUSTRALIA'
form = render('/person/edit.mako')
return htmlfill.render(form, defaults)
开发者ID:iseppi,项目名称:zookeepr,代码行数:16,代码来源:person.py
示例15: confirm
def confirm(self, confirm_hash):
"""Confirm a registration with the given ID.
`confirm_hash` is a md5 hash of the email address of the registrant, the time
they regsitered, and a nonce.
"""
person = Person.find_by_url_hash(confirm_hash)
if person.activated:
return render('person/already_confirmed.mako')
person.activated = True
meta.Session.commit()
return render('person/confirmed.mako')
开发者ID:iseppi,项目名称:zookeepr,代码行数:17,代码来源:person.py
示例16: user_has_role
def user_has_role(self, username, role):
"""
Returns ``True`` if the user has the role specified, ``False``
otherwise. Raises an exception if the user doesn't exist.
"""
if not self.user_exists(username.lower()):
raise users.AuthKitNoSuchUserError("No such user %r"%username.lower())
if not self.role_exists(role.lower()):
raise users.AuthKitNoSuchRoleError("No such role %r"%role.lower())
person = Person.find_by_email(username)
if person is None:
return False
for role_ in person.roles:
if role_.name == role.lower():
return True
return False
开发者ID:Ivoz,项目名称:zookeepr,代码行数:17,代码来源:auth.py
示例17: _offer
def _offer(self,id):
# We need to recheck auth in here so we can pass in the id
if not h.auth.authorized(h.auth.Or(h.auth.is_same_zkpylons_user(id), h.auth.has_reviewer_role, h.auth.has_organiser_role)):
# Raise a no_auth error
h.auth.no_role()
c.person = Person.find_by_id(id)
c.offers = c.person.proposal_offers
c.travel_assistance = reduce(lambda a, b: a or ('Travel' in b.status.name), c.offers, False) or False
c.accommodation_assistance = reduce(lambda a, b: a or ('Accommodation' in b.status.name), c.offers, False) or False
# What status are we moving all proposals to?
if self.form_result['status'] == 'accept':
c.status = ProposalStatus.find_by_name('Accepted')
elif self.form_result['status'] == 'withdraw':
c.status = ProposalStatus.find_by_name('Withdrawn')
elif self.form_result['status'] == 'contact':
c.status = ProposalStatus.find_by_name('Contact')
else:
c.status = None
emails = [c.person.email_address]
for offer in c.offers:
offer.status = c.status
if offer.type.notify_email and offer.type.notify_email not in emails:
emails.append(offer.type.notify_email)
if c.travel_assistance:
if not c.person.travel:
self.form_result['travel']['flight_details'] = ''
travel = Travel(**self.form_result['travel'])
meta.Session.add(travel)
c.person.travel = travel
else:
for key in self.form_result['travel']:
setattr(c.person.travel, key, self.form_result['travel'][key])
if c.status.name == 'Accepted':
email(c.person.email_address, render('/person/offer_email.mako'))
else:
email(emails, render('/person/offer_email.mako'))
# update the objects with the validated form data
meta.Session.commit()
return render('person/offer.mako')
开发者ID:iseppi,项目名称:zookeepr,代码行数:44,代码来源:person.py
示例18: offer
def offer(self, id):
# We need to recheck auth in here so we can pass in the id
if not h.auth.authorized(h.auth.Or(h.auth.is_same_zkpylons_user(id), h.auth.has_reviewer_role, h.auth.has_organiser_role)):
# Raise a no_auth error
h.auth.no_role()
c.person = Person.find_by_id(id)
c.offers = c.person.proposal_offers
c.travel_assistance = reduce(lambda a, b: a or ('Travel' in b.status.name), c.offers, False) or False
c.accommodation_assistance = reduce(lambda a, b: a or ('Accommodation' in b.status.name), c.offers, False) or False
# Set initial form defaults
defaults = {
'status': 'accept',
}
if c.person.travel:
defaults.update(h.object_to_defaults(c.person.travel, 'travel'))
form = render('person/offer.mako')
return htmlfill.render(form, defaults)
开发者ID:iseppi,项目名称:zookeepr,代码行数:19,代码来源:person.py
示例19: _roles
def _roles(self, id):
""" Lists and changes the person's roles. """
c.person = Person.find_by_id(id)
c.roles = Role.find_all()
role = self.form_result['role']
action = self.form_result['action']
role = Role.find_by_name(name=role)
if action == 'Revoke' and role in c.person.roles:
c.person.roles.remove(role)
h.flash('Role ' + role.name + ' Revoked')
elif action == 'Grant' and role not in c.person.roles:
c.person.roles.append(role)
h.flash('Role ' + role.name + ' Granted')
else:
h.flash("Nothing to do")
meta.Session.commit()
return render('person/roles.mako')
开发者ID:iseppi,项目名称:zookeepr,代码行数:23,代码来源:person.py
示例20: _to_python
def _to_python(self, value, state):
return Person.find_by_id(int(value))
开发者ID:flosokaks,项目名称:zookeepr,代码行数:2,代码来源:validators.py
注:本文中的zkpylons.model.Person类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论