本文整理汇总了Python中website.models.User.find方法的典型用法代码示例。如果您正苦于以下问题:Python User.find方法的具体用法?Python User.find怎么用?Python User.find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类website.models.User
的用法示例。
在下文中一共展示了User.find方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_properly_scoped_token_can_create_without_username_but_not_send_email
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def test_properly_scoped_token_can_create_without_username_but_not_send_email(self, mock_auth, mock_mail):
token = ApiOAuth2PersonalToken(
owner=self.user,
name='Authorized Token',
scopes='osf.users.create'
)
mock_cas_resp = CasResponse(
authenticated=True,
user=self.user._id,
attributes={
'accessToken': token.token_id,
'accessTokenScope': [s for s in token.scopes.split(' ')]
}
)
mock_auth.return_value = self.user, mock_cas_resp
self.data['data']['attributes'] = {'full_name': 'No Email'}
assert_equal(User.find(Q('fullname', 'eq', 'No Email')).count(), 0)
res = self.app.post_json_api(
'{}?send_email=true'.format(self.base_url),
self.data,
headers={'Authorization': 'Bearer {}'.format(token.token_id)}
)
assert_equal(res.status_code, 201)
assert_equal(res.json['data']['attributes']['username'], None)
assert_equal(User.find(Q('fullname', 'eq', 'No Email')).count(), 1)
assert_equal(mock_mail.call_count, 0)
示例2: test_improperly_scoped_token_can_not_create_or_email
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def test_improperly_scoped_token_can_not_create_or_email(self, mock_auth, mock_mail):
token = ApiOAuth2PersonalToken(
owner=self.user,
name='Unauthorized Token',
scopes='osf.full_write'
)
mock_cas_resp = CasResponse(
authenticated=True,
user=self.user._id,
attributes={
'accessToken': token.token_id,
'accessTokenScope': [s for s in token.scopes.split(' ')]
}
)
mock_auth.return_value = self.user, mock_cas_resp
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
res = self.app.post_json_api(
'{}?send_email=true'.format(self.base_url),
self.data,
headers={'Authorization': 'Bearer {}'.format(token.token_id)},
expect_errors=True
)
assert_equal(res.status_code, 403)
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
assert_equal(mock_mail.call_count, 0)
示例3: test_admin_scoped_token_can_create_and_send_email
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def test_admin_scoped_token_can_create_and_send_email(self, mock_auth, mock_mail):
token = ApiOAuth2PersonalToken(
owner=self.user,
name='Admin Token',
scopes='osf.admin'
)
mock_cas_resp = CasResponse(
authenticated=True,
user=self.user._id,
attributes={
'accessToken': token.token_id,
'accessTokenScope': [s for s in token.scopes.split(' ')]
}
)
mock_auth.return_value = self.user, mock_cas_resp
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
res = self.app.post_json_api(
'{}?send_email=true'.format(self.base_url),
self.data,
headers={'Authorization': 'Bearer {}'.format(token.token_id)}
)
assert_equal(res.status_code, 201)
assert_equal(res.json['data']['attributes']['username'], self.unconfirmed_email)
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 1)
assert_equal(mock_mail.call_count, 1)
示例4: test_logged_out_user_cannot_create_other_user_or_send_mail
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def test_logged_out_user_cannot_create_other_user_or_send_mail(self, mock_mail):
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
res = self.app.post_json_api(
'{}?send_email=true'.format(self.base_url),
self.data,
expect_errors=True
)
assert_equal(res.status_code, 401)
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
assert_equal(mock_mail.call_count, 0)
示例5: test_cookied_requests_can_create_and_email
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def test_cookied_requests_can_create_and_email(self, mock_mail):
session = Session(data={'auth_user_id': self.user._id})
session.save()
cookie = itsdangerous.Signer(settings.SECRET_KEY).sign(session._id)
self.app.set_cookie(settings.COOKIE_NAME, str(cookie))
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
res = self.app.post_json_api(
'{}?send_email=true'.format(self.base_url),
self.data
)
assert_equal(res.status_code, 201)
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 1)
assert_equal(mock_mail.call_count, 1)
示例6: redirect_to_twitter
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def redirect_to_twitter(twitter_handle):
"""Redirect GET requests for /@TwitterHandle/ to respective the OSF user
account if it associated with an active account
:param uid: uid for requested User
:return: Redirect to User's Twitter account page
"""
try:
user = User.find_one(Q("social.twitter", "iexact", twitter_handle))
except NoResultsFound:
raise HTTPError(
http.NOT_FOUND,
data={
"message_short": "User Not Found",
"message_long": "There is no active user associated with the Twitter handle: {0}.".format(
twitter_handle
),
},
)
except MultipleResultsFound:
users = User.find(Q("social.twitter", "iexact", twitter_handle))
message_long = (
"There are multiple OSF accounts associated with the "
"Twitter handle: <strong>{0}</strong>. <br /> Please "
"select from the accounts below. <br /><ul>".format(markupsafe.escape(twitter_handle))
)
for user in users:
message_long += '<li><a href="{0}">{1}</a></li>'.format(user.url, markupsafe.escape(user.fullname))
message_long += "</ul>"
raise HTTPError(
http.MULTIPLE_CHOICES, data={"message_short": "Multiple Users Found", "message_long": message_long}
)
return redirect(user.url)
示例7: get_events
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def get_events(self, date):
""" Get all node logs from a given date for a 24 hour period,
ending at the date given.
"""
super(UserDomainEvents, self).get_events(date)
# In the end, turn the date back into a datetime at midnight for queries
date = datetime(date.year, date.month, date.day).replace(tzinfo=pytz.UTC)
logger.info('Gathering user domains between {} and {}'.format(
date, (date + timedelta(1)).isoformat()
))
user_query = Q('date_confirmed', 'lt', date + timedelta(1)) & Q('date_confirmed', 'gte', date)
users = User.find(user_query)
user_domain_events = []
for user in users:
user_date = user.date_confirmed.replace(tzinfo=pytz.UTC)
event = {
'keen': {'timestamp': user_date.isoformat()},
'date': user_date.isoformat(),
'domain': user.username.split('@')[-1]
}
user_domain_events.append(event)
logger.info('User domains collected. {} users and their email domains.'.format(len(user_domain_events)))
return user_domain_events
示例8: test_cookied_requests_do_not_create_or_email
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def test_cookied_requests_do_not_create_or_email(self, mock_mail):
session = Session(data={'auth_user_id': self.user._id})
session.save()
cookie = itsdangerous.Signer(settings.SECRET_KEY).sign(session._id)
self.app.set_cookie(settings.COOKIE_NAME, str(cookie))
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
res = self.app.post_json_api(
self.base_url,
self.data,
expect_errors=True
)
assert_equal(res.status_code, 403)
assert_equal(User.find(Q('username', 'eq', self.unconfirmed_email)).count(), 0)
assert_equal(mock_mail.call_count, 0)
示例9: redirect_to_twitter
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def redirect_to_twitter(twitter_handle):
"""Redirect GET requests for /@TwitterHandle/ to respective the OSF user
account if it associated with an active account
:param uid: uid for requested User
:return: Redirect to User's Twitter account page
"""
try:
user = User.find_one(Q('social.twitter', 'iexact', twitter_handle))
except NoResultsFound:
raise HTTPError(http.NOT_FOUND, data={
'message_short': 'User Not Found',
'message_long': 'There is no active user associated with the Twitter handle: {0}.'.format(twitter_handle)
})
except MultipleResultsFound:
users = User.find(Q('social.twitter', 'iexact', twitter_handle))
message_long = 'There are multiple OSF accounts associated with the ' \
'Twitter handle: <strong>{0}</strong>. <br /> Please ' \
'select from the accounts below. <br /><ul>'.format(twitter_handle)
for user in users:
message_long += '<li><a href="{0}">{1}</a></li>'.format(user.url, user.fullname)
message_long += '</ul>'
raise HTTPError(http.MULTIPLE_CHOICES, data={
'message_short': 'Multiple Users Found',
'message_long': message_long
})
return redirect(user.url)
示例10: get_active_users
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def get_active_users():
return User.find(
Q('is_registered', 'eq', True) &
Q('password', 'ne', None) &
Q('is_merged', 'ne', True) &
Q('date_confirmed', 'ne', None)
)
示例11: do_migration
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def do_migration():
users = User.find(Q('email_verifications', 'eq', None))
migrated = 0
for user in users:
logger.info('Setting email_verifications for user {} to {{}}'.format(user._id))
user.email_verifications = {}
user.save()
migrated += 1
logger.info('Migrated {} users'.format(migrated))
示例12: get_active_users
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def get_active_users(extra=None):
query = (
Q('is_registered', 'eq', True) &
Q('password', 'ne', None) &
Q('is_merged', 'ne', True) &
Q('date_confirmed', 'ne', None)
)
query = query & extra if extra else query
return User.find(query)
示例13: main
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def main(dry=True):
count = 0
for user in User.find(Q('username', 'eq', None)):
logger.info('Setting username for {}'.format(user._id))
if not dry:
user.username = user._id
user.save()
count += 1
logger.info('Migrated {} users.'.format(count))
示例14: log_duplicate_acount
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def log_duplicate_acount(dry):
duplicate_emails = get_duplicate_email()
count = 0
if duplicate_emails:
for email in duplicate_emails:
users = User.find(Q('emails', 'eq', email) & Q('merged_by', 'eq', None) & Q('username', 'ne', None))
for user in users:
count += 1
logger.info("User {}, username {}, id {}, email {} is a duplicate"
.format(user.fullname, user.username, user._id, user.emails))
logger.info("Found {} users with duplicate emails".format(count))
示例15: main
# 需要导入模块: from website.models import User [as 别名]
# 或者: from website.models.User import find [as 别名]
def main(dry=True):
init_app(set_backends=True, routes=False)
count = 0
for user in User.find(Q("is_claimed", "eq", None)):
is_claimed = bool(user.date_confirmed)
logger.info("User {}: setting is_claimed to {}".format(user._id, is_claimed))
user.is_claimed = is_claimed
count += 1
if not dry:
user.save()
logger.info("Migrated {} users.".format(count))