Here are the examples of the python api allura.lib.plugin.AuthenticationProvider.get taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
14 Examples
3
Example 1
Project: allura Source File: site_admin.py
@without_trailing_slash
@expose('jinja:allura:templates/site_admin_search.html')
@validate(validators=dict(q=validators.UnicodeString(if_empty=None),
limit=validators.Int(if_invalid=None),
page=validators.Int(if_empty=0, if_invalid=0)))
def search_users(self, q=None, f=None, page=0, limit=None, **kw):
fields = [('username', 'username'), ('display_name', 'display name')]
add_fields = aslist(tg.config.get('search.user.additional_search_fields'), ',')
r = self._search(M.User, fields, add_fields, q, f, page, limit, **kw)
r['objects'] = [dict(u, status=h.get_user_status(u['object'])) for u in r['objects']]
r['search_results_template'] = 'allura:templates/site_admin_search_users_results.html'
r['additional_display_fields'] = \
aslist(tg.config.get('search.user.additional_display_fields'), ',')
r['provider'] = AuthenticationProvider.get(request)
return r
3
Example 2
@expose('jinja:allura:templates/site_admin_user_details.html')
def _default(self, username, limit=25, page=0):
user = M.User.by_username(username)
if not user or user.is_anonymous():
raise HTTPNotFound()
projects = user.my_projects().all()
audit_log = self._audit_log(user, limit, page)
info = {
'user': user,
'status': h.get_user_status(user),
'projects': projects,
'audit_log': audit_log,
}
p = AuthenticationProvider.get(request)
info.update(p.user_details(user))
return info
3
Example 3
Project: allura Source File: user_main.py
@expose('jinja:allura.ext.user_profile:templates/user_index.html')
def index(self, **kw):
user = c.project.user_project_of
if not user:
raise exc.HTTPNotFound()
provider = AuthenticationProvider.get(request)
sections = [section(user, c.project)
for section in c.app.profile_sections]
return dict(
user=user,
reg_date=provider.user_registration_date(user),
sections=sections)
3
Example 4
def __json__(self):
auth_provider = AuthenticationProvider.get(request)
return dict(
username=self.user.username,
name=self.user.display_name,
joined=auth_provider.user_registration_date(self.user),
localization=self.user.get_pref('localization')._deinstrument(),
sex=self.user.get_pref('sex'),
telnumbers=self.user.get_pref('telnumbers')._deinstrument(),
skypeaccount=self.user.get_pref('skypeaccount'),
webpages=self.user.get_pref('webpages')._deinstrument(),
availability=self.user.get_pref('availability')._deinstrument())
3
Example 5
Project: allura Source File: auth_widgets.py
@validator
def validate(self, value, state=None):
provider = plugin.AuthenticationProvider.get(request)
if not provider.validate_password(c.user, value['password']):
raise Invalid('Invalid password', {}, None)
return value
3
Example 6
Project: allura Source File: auth.py
@classmethod
def register(cls, doc, make_project=True):
from allura import model as M
auth_provider = plugin.AuthenticationProvider.get(request)
user = auth_provider.register_user(doc)
if user and 'display_name' in doc:
user.set_pref('display_name', doc['display_name'])
if user:
g.statsUpdater.newUser(user)
if user and make_project:
n = M.Neighborhood.query.get(name='Users')
n.register_project(auth_provider.user_project_shortname(user),
user=user, user_project=True)
return user
3
Example 7
Project: allura Source File: auth.py
def registration_date(self):
p = plugin.AuthenticationProvider.get(request)
d = p.user_registration_date(self)
# provider's user_registration_date returns aware datetime (in UTC)
# but we're using naive UTC time everywhere
d = datetime.utcfromtimestamp(calendar.timegm(d.utctimetuple()))
return d
3
Example 8
@classmethod
def create(cls, user):
auth_provider = plugin.AuthenticationProvider.get(request)
reg_date = auth_provider.user_registration_date(user)
stats = cls.query.get(user_id=user._id)
if stats:
return stats
stats = cls(user_id=user._id, registration_date=reg_date)
user.stats_id = stats._id
return stats
0
Example 9
Project: allura Source File: basetest_project_root.py
def __call__(self, environ, start_response):
""" Called from a WebTest 'app' instance.
:param environ: Extra environment variables.
Example: self.app.get('/auth/', extra_environ={'disable_auth_magic': "True"})
"""
c.app = None
c.project = M.Project.query.get(
shortname='test', neighborhood_id=self.p_nbhd._id)
auth = plugin.AuthenticationProvider.get(request)
if asbool(environ.get('disable_auth_magic')):
c.user = auth.authenticate_request()
else:
user = auth.by_username(environ.get('username', 'test-admin'))
if not user:
user = M.User.anonymous()
environ['beaker.session']['username'] = user.username
# save and persist, so that a creation time is set
environ['beaker.session'].save()
environ['beaker.session'].persist()
c.user = auth.authenticate_request()
return WsgiDispatchController.__call__(self, environ, start_response)
0
Example 10
Project: allura Source File: user_main.py
def display(self, *a, **kw):
"""
Renders the section using the context from :meth:`prepare_context`
and the :attr:`template`, if :meth:`check_display` returns True.
If overridden or this base class is not used, this method should
return either plain text (which will be escaped) or a `jinja2.Markup`
instance.
"""
if not self.check_display():
return ''
try:
tmpl = g.jinja2_env.get_template(self.template)
context = self.prepare_context({
'h': h,
'c': c,
'g': g,
'user': self.user,
'config': tg.config,
'auth': AuthenticationProvider.get(request),
})
return Markup(tmpl.render(context))
except Exception as e:
log.exception('Error rendering profile section %s: %s', type(self).__name__, e)
if asbool(tg.config.get('debug')):
raise
else:
return ''
0
Example 11
def index(self):
provider = plugin.AuthenticationProvider.get(None) # no need in request here
localization = '%s/%s' % (
self.get_pref('localization')['country'],
self.get_pref('localization')['city'])
socialnetworks = ' '.join(['%s: %s' % (n['socialnetwork'], n['accounturl'])
for n in self.get_pref('socialnetworks')])
fields = dict(
id=self.index_id(),
title='User %s' % self.username,
url_s=self.url(),
type_s=self.type_s,
username_s=self.username,
email_addresses_t=' '.join([e for e in self.email_addresses if e]),
last_password_updated_dt=self.last_password_updated,
disabled_b=self.disabled,
pending_b=self.pending,
results_per_page_i=self.get_pref('results_per_page'),
email_address_s=self.get_pref('email_address'),
email_format_s=self.get_pref('email_format'),
disable_user_messages_b=self.get_pref('disable_user_messages'),
display_name_t=self.get_pref('display_name'),
sex_s=self.get_pref('sex'),
birthdate_dt=self.get_pref('birthdate'),
localization_s=localization,
timezone_s=self.get_pref('timezone'),
socialnetworks_t=socialnetworks,
telnumbers_t=' '.join([t for t in self.get_pref('telnumbers') if t]),
skypeaccount_s=self.get_pref('skypeaccount'),
webpages_t=' '.join([p for p in self.get_pref('webpages') if p]),
skills_t=' '.join([s['skill'].fullpath for s in self.get_skills() if s.get('skill')]),
last_access_login_date_dt=self.last_access['login_date'],
last_access_login_ip_s=self.last_access['login_ip'],
last_access_login_ua_t=self.last_access['login_ua'],
last_access_session_date_dt=self.last_access['session_date'],
last_access_session_ip_s=self.last_access['session_ip'],
last_access_session_ua_t=self.last_access['session_ua'],
)
return dict(provider.index_user(self), **fields)
0
Example 12
Project: allura Source File: auth.py
def private_project(self):
'''
Returns the personal user-project for the user
'''
if self.disabled or self.pending:
return None
from allura import model as M
n = self.neighborhood
auth_provider = plugin.AuthenticationProvider.get(request)
project_shortname = auth_provider.user_project_shortname(self)
p = M.Project.query.get(
shortname=project_shortname, neighborhood_id=n._id)
if p and p.deleted:
# really delete it, since registering a new project would conflict
# with the "deleted" one
log.info(
'completely deleting user project (was already flagged as deleted) %s',
project_shortname)
p.delete()
ThreadLocalORMSession.flush_all()
p = None
if not p and not self.is_anonymous():
# create user-project on demand if it is missing
p = n.register_project(
project_shortname, user=self, user_project=True)
return p
0
Example 13
Project: allura Source File: delete_projects.py
@classmethod
def execute(cls, options):
provider = ProjectRegistrationProvider.get()
auth_provider = AuthenticationProvider.get(Request.blank('/'))
for proj in options.projects:
proj = cls.get_project(proj)
if proj:
if proj.is_user_project:
# disable user as well
user = proj.user_project_of
if user:
auth_provider.disable_user(user, audit=False)
msg = u'Account disabled because user-project was specified for deletion. Reason: {}'.format(
options.reason)
log_entry = h.auditlog_user(msg, user=user)
session(log_entry).flush(log_entry)
else:
log.info('Could not find associated user for user-project %s', proj.shortname)
log.info('Purging %s Reason: %s', proj.url(), options.reason)
provider.purge_project(proj, disable_users=options.disable_users, reason=options.reason)
0
Example 14
Project: allura Source File: disable_users.py
@classmethod
def disable_users(cls, usernames, message):
auth_provider = AuthenticationProvider.get(request=None)
# would be nice to use the BatchIndexer extension around this but that only works for artifacts not users
for username in usernames:
user = M.User.query.get(username=username)
if not user:
log.info('Could not find user: %s', username)
elif user.disabled:
log.info('User is already disabled: %s', username)
session(user).expunge(user)
else:
log.info('Disabling user: %s', username)
auth_provider.disable_user(user)
session(user).flush(user)
if message:
log_entry = h.auditlog_user(message, user=user)
session(log_entry).flush(log_entry)