summaryrefslogtreecommitdiffstats
path: root/askbot/views/commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'askbot/views/commands.py')
-rw-r--r--askbot/views/commands.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/askbot/views/commands.py b/askbot/views/commands.py
index 5d86d1a1..c534d87a 100644
--- a/askbot/views/commands.py
+++ b/askbot/views/commands.py
@@ -639,3 +639,32 @@ def read_message(request):#marks message a read
if request.user.is_authenticated():
request.user.delete_messages()
return HttpResponse('')
+
+@csrf.csrf_exempt
+@decorators.ajax_only
+@decorators.post_only
+def add_user_to_group(request):
+ if request.user.is_anonymous():
+ raise exceptions.PermissionDenied()
+
+ if not request.user.is_administrator_or_moderator():
+ raise exceptions.PermissionDenied(
+ _('Only moderators and administrators can assign users to groups')
+ )
+
+ form = forms.AddUserToGroupForm(request.POST)
+ if form.is_valid():
+ group_name = form.cleaned_data['group_name']
+ user_id = form.cleaned_data['user_id']
+
+ group = models.Tag.get_or_create_group_tag(group_name)
+ try:
+ user = models.User.objects.get(id = user_id)
+ except models.User.DoesNotExist:
+ raise exceptions.PermissionDenied(
+ 'user with id %d not found' % user_id
+ )
+
+ request.user.add_user_to_group(user, group)
+ else:
+ raise exceptions.PermissionDenied()