def impersonate(username): """Impersonate a user""" zoom.authorize() user = zoom.get_site().users.locate(username) if user: session = zoom.system.request.session session.impersonated_user = username zoom.audit('start impersonating', zoom.system.request.user.username, username)
def authenticate(request): """API Authentication""" logger.debug('api called') data = request.data username = data.get('username') password = data.get('password') if username and password: site = zoom.get_site() user = site.users.first(username=username, status='A') if user: if user.login(request, password): logger.info('%s successfully athenticated to API', username) return dict(status='200 OK') logger.debug('failed login attempt for %s', username) elif username: logger.debug('password missing') else: logger.debug('username missing') return zoom.response.JSONResponse(dict(status='401 Unauthorized'), status='401 Unauthorized')
def get_user(key=None): """Return the currrent user or a specified user""" if key is None: return zoom.system.request.user users = zoom.get_site().users return users.get(key) or users.locate(key)
def deactivate(self, key): user = zoom.get_site().users.locate(key) if user: user.deactivate() return home('users/' + key)
def format_as_html(text, logo_url): site = zoom.get_site() template = get_template('email_template', theme=site.theme) return template.format(logo_url=logo_url, message=text)