def add_user_to_group(request, group_id, username): if username == settings.TOKEN_USERNAME: return HttpResponse('User does not exist: %s' % username) authMethod = localdb_auth_key isAdmin = False if 'isAdmin' in request.GET: if request.GET['isAdmin'] == 'true': isAdmin = True try: authMethod = request.GET['authMethod'] if authMethod == localdb_auth_key: user = User.objects.get(username=username) else: user = UserAuthentication.objects.get( username=username, authenticationMethod=authMethod).userProfile.user except User.DoesNotExist: return return_response_error(request) except UserAuthentication.DoesNotExist: return return_response_error(request) try: group = Group.objects.get(pk=group_id) except Group.DoesNotExist: return HttpResponse('Group does not exist.') if user.groups.filter(name=group.name).count() > 0: return HttpResponse('User %s is already member of that group.' % username) user.groups.add(group) user.save() if isAdmin: groupadmin = GroupAdmin(user=user, group=group) groupadmin.save() c = {'user': user, 'group_id': group_id, 'isAdmin': isAdmin} return HttpResponse(render_response_index( request, 'tardis_portal/ajax/add_user_to_group_result.html', c))
def create_group(request): if 'group' not in request.GET: c = {'createGroupPermissionsForm': CreateGroupPermissionsForm()} response = HttpResponse(render_response_index( request, 'tardis_portal/ajax/create_group.html', c)) return response authMethod = localdb_auth_key admin = None groupname = None if 'group' in request.GET: groupname = request.GET['group'] if 'admin' in request.GET: admin = request.GET['admin'] if 'authMethod' in request.GET: authMethod = request.GET['authMethod'] try: group = Group(name=groupname) group.save() except: transaction.rollback() return HttpResponse('Could not create group %s ' '(It is likely that it already exists)' % (groupname)) adminuser = None if admin: if admin == settings.TOKEN_USERNAME: transaction.rollback() return HttpResponse('User %s does not exist' % (settings.TOKEN_USERNAME)) try: authMethod = request.GET['authMethod'] if authMethod == localdb_auth_key: adminuser = User.objects.get(username=admin) else: adminuser = UserAuthentication.objects.get( username=admin, authenticationMethod=authMethod).userProfile.user except User.DoesNotExist: transaction.rollback() return HttpResponse('User %s does not exist' % (admin)) except UserAuthentication.DoesNotExist: transaction.rollback() return HttpResponse('User %s does not exist' % (admin)) # create admin for this group and add it to the group groupadmin = GroupAdmin(user=adminuser, group=group) groupadmin.save() adminuser.groups.add(group) adminuser.save() # add the current user as admin as well for newly created groups if request.user != adminuser: user = request.user groupadmin = GroupAdmin(user=user, group=group) groupadmin.save() user.groups.add(group) user.save() c = {'group': group} response = HttpResponse(render_response_index( request, 'tardis_portal/ajax/create_group.html', c)) return response