本文整理汇总了Python中tracim.lib.user.UserApi.user_with_email_exists方法的典型用法代码示例。如果您正苦于以下问题:Python UserApi.user_with_email_exists方法的具体用法?Python UserApi.user_with_email_exists怎么用?Python UserApi.user_with_email_exists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tracim.lib.user.UserApi
的用法示例。
在下文中一共展示了UserApi.user_with_email_exists方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_user_with_email_exists
# 需要导入模块: from tracim.lib.user import UserApi [as 别名]
# 或者: from tracim.lib.user.UserApi import user_with_email_exists [as 别名]
def test_user_with_email_exists(self):
api = UserApi(None)
u = api.create_user()
api.update(u, 'bibi', '[email protected]', True)
transaction.commit()
eq_(True, api.user_with_email_exists('[email protected]'))
eq_(False, api.user_with_email_exists('unknown'))
示例2: post
# 需要导入模块: from tracim.lib.user import UserApi [as 别名]
# 或者: from tracim.lib.user.UserApi import user_with_email_exists [as 别名]
def post(
self,
name: str,
email: str,
password: str,
is_tracim_manager: str='off',
is_tracim_admin: str='off',
send_email: str='off',
):
is_tracim_manager = h.on_off_to_boolean(is_tracim_manager)
is_tracim_admin = h.on_off_to_boolean(is_tracim_admin)
send_email = h.on_off_to_boolean(send_email)
current_user = tmpl_context.current_user
if current_user.profile.id < Group.TIM_ADMIN:
# A manager can't give large rights
is_tracim_manager = False
is_tracim_admin = False
api = UserApi(current_user)
if api.user_with_email_exists(email):
tg.flash(_('A user with email address "{}" already exists.').format(email), CST.STATUS_ERROR)
tg.redirect(self.url())
user = api.create_user()
user.email = email
user.display_name = name
if password:
user.password = password
elif send_email:
# Setup a random password to send email at user
password = str(uuid.uuid4())
user.password = password
user.webdav_left_digest_response_hash = '%s:/:%s' % (email, password)
api.save(user)
# Now add the user to related groups
group_api = GroupApi(current_user)
user.groups.append(group_api.get_one(Group.TIM_USER))
if is_tracim_manager:
user.groups.append(group_api.get_one(Group.TIM_MANAGER))
if is_tracim_admin:
user.groups.append(group_api.get_one(Group.TIM_ADMIN))
api.save(user)
if send_email:
email_manager = get_email_manager()
email_manager.notify_created_account(user, password=password)
tg.flash(_('User {} created.').format(user.get_display_name()), CST.STATUS_OK)
tg.redirect(self.url())
示例3: post
# 需要导入模块: from tracim.lib.user import UserApi [as 别名]
# 或者: from tracim.lib.user.UserApi import user_with_email_exists [as 别名]
def post(self, name, email, password, is_tracim_manager='off', is_tracim_admin='off'):
is_tracim_manager = h.on_off_to_boolean(is_tracim_manager)
is_tracim_admin = h.on_off_to_boolean(is_tracim_admin)
current_user = tmpl_context.current_user
if current_user.profile.id < Group.TIM_ADMIN:
# A manager can't give large rights
is_tracim_manager = False
is_tracim_admin = False
api = UserApi(current_user)
if api.user_with_email_exists(email):
tg.flash(_('A user with email address "{}" already exists.').format(email), CST.STATUS_ERROR)
tg.redirect(self.url())
user = api.create_user()
user.email = email
user.display_name = name
if password:
user.password = password
api.save(user)
# Now add the user to related groups
group_api = GroupApi(current_user)
user.groups.append(group_api.get_one(Group.TIM_USER))
if is_tracim_manager:
user.groups.append(group_api.get_one(Group.TIM_MANAGER))
if is_tracim_admin:
user.groups.append(group_api.get_one(Group.TIM_ADMIN))
api.save(user)
tg.flash(_('User {} created.').format(user.get_display_name()), CST.STATUS_OK)
tg.redirect(self.url())
示例4: LDAPSearchAuthenticatorPlugin
# 需要导入模块: from tracim.lib.user import UserApi [as 别名]
# 或者: from tracim.lib.user.UserApi import user_with_email_exists [as 别名]
class LDAPSearchAuthenticatorPlugin(BaseLDAPSearchAuthenticatorPlugin):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._auth = None
self._user_api = UserApi(None)
def set_auth(self, auth):
self._auth = auth
def authenticate(self, environ, identity, allow_auth_token: bool=False):
# Note: super().authenticate return None if already authenticated or not found
email = super().authenticate(environ, identity)
if email:
self._sync_ldap_user(email, environ, identity)
if not email and allow_auth_token and self.user_exist(email):
# Proceed to internal token auth
user = self.sa_auth.dbsession.query(self.sa_auth.user_class).filter(
and_(
self.sa_auth.user_class.is_active == True,
self.sa_auth.user_class.email == identity['login']
)
).first()
if user:
user.ensure_auth_token()
if user.auth_token == identity['password']:
email = identity['login']
return email
def _sync_ldap_user(self, email, environ, identity):
# Create or get user for connected email
if not self._user_api.user_with_email_exists(email):
user = User(email=email, imported_from=LDAPAuth.name)
DBSession.add(user)
else:
user = self._user_api.get_one_by_email(email)
# Retrieve ldap user attributes
self._auth.ldap_user_provider.add_metadata_for_auth(environ, identity)
# Update user with ldap attributes
user_ldap_values = identity.get('user').copy()
for field_name in user_ldap_values:
setattr(user, field_name, user_ldap_values[field_name])
DBSession.flush()
transaction.commit()
def user_exist(self, email):
with make_connection(self.url, self.bind_dn, self.bind_pass) as conn:
if self.start_tls:
conn.start_tls()
if not conn.bind():
return False
search = self.search_pattern % email
conn.search(self.base_dn, search, self.search_scope)
if len(conn.response) > 0:
return True
return False
示例5: UserCommand
# 需要导入模块: from tracim.lib.user import UserApi [as 别名]
# 或者: from tracim.lib.user.UserApi import user_with_email_exists [as 别名]
class UserCommand(AppContextCommand):
ACTION_CREATE = 'create'
ACTION_UPDATE = 'update'
action = NotImplemented
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._session = DBSession
self._transaction = transaction
self._user_api = UserApi(None)
self._group_api = GroupApi(None)
def get_description(self):
return '''Create or update user.'''
def get_parser(self, prog_name):
parser = super().get_parser(prog_name)
parser.add_argument(
"-l",
"--login",
help='User login (email)',
dest='login',
required=True
)
parser.add_argument(
"-p",
"--password",
help='User password',
dest='password',
required=False,
default=None
)
parser.add_argument(
"-g",
"--add-to-group",
help='Add user to group',
dest='add_to_group',
nargs='*',
action=Extender,
default=[],
)
parser.add_argument(
"-rmg",
"--remove-from-group",
help='Remove user from group',
dest='remove_from_group',
nargs='*',
action=Extender,
default=[],
)
parser.add_argument(
"--send-email",
help='Send mail to user',
dest='send_email',
required=False,
action='store_true',
default=False,
)
return parser
def _user_exist(self, login):
return self._user_api.user_with_email_exists(login)
def _get_group(self, name):
return self._group_api.get_one_with_name(name)
def _add_user_to_named_group(self, user, group_name):
group = self._get_group(group_name)
if user not in group.users:
group.users.append(user)
self._session.flush()
def _remove_user_from_named_group(self, user, group_name):
group = self._get_group(group_name)
if user in group.users:
group.users.remove(user)
self._session.flush()
def _create_user(self, login, password, **kwargs):
if not password:
if self._password_required():
raise CommandAbortedError("You must provide -p/--password parameter")
password = ''
try:
user = User(email=login, password=password, **kwargs)
self._session.add(user)
self._session.flush()
except IntegrityError:
self._session.rollback()
raise AlreadyExistError()
#.........这里部分代码省略.........