Support for One-Click-Actions.
This commit is contained in:
34
dav_events/views/actions.py
Normal file
34
dav_events/views/actions.py
Normal file
@@ -0,0 +1,34 @@
|
||||
import logging
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth import login
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views import generic
|
||||
|
||||
from .. import models
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class OneClickActionRunView(generic.DetailView):
|
||||
model = models.OneClickAction
|
||||
template_name = 'dav_events/oneclickaction.html'
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.object = self.get_object()
|
||||
result = self.object.run()
|
||||
|
||||
if 'login' in result:
|
||||
user = result['login']
|
||||
login(self.request, user)
|
||||
logger.info('Logged in via OneClickAction: %s', user.username)
|
||||
messages.success(self.request,
|
||||
_(u'Benutzer angemeldet: %(username)s') % {'username': user.username})
|
||||
|
||||
if 'location' in result:
|
||||
return HttpResponseRedirect(result['location'])
|
||||
|
||||
context = self.get_context_data(object=self.object)
|
||||
if 'context' in result:
|
||||
context.update(result['context'])
|
||||
return self.render_to_response(context)
|
||||
Reference in New Issue
Block a user