Esempio n. 1
0
def edit_group(request, name=None):
  """
  edit_group(request, name = None) -> reply

  @type request:        HttpRequest
  @param request:       The request object
  @type name:       string
  @param name:      Default to None, when creating a new group

  Only superusers may create a group
  """
  if not request.user.is_superuser:
    raise PopupException(_("You must be a superuser to add or edit a group."), error_code=401)

  if name is not None:
    instance = Group.objects.get(name=name)
  else:
    instance = None

  if request.method == 'POST':
    form = GroupEditForm(request.POST, instance=instance)
    if form.is_valid():
      form.save()
      request.info(_('Group information updated'))
      return list_groups(request)

  else:
    form = GroupEditForm(instance=instance)

  return render('edit_group.mako', request, dict(form=form, action=request.path, name=name))
Esempio n. 2
0
File: views.py Progetto: 10sr/hue
def edit_group(request, name=None):
  """
  edit_group(request, name = None) -> reply

  @type request:        HttpRequest
  @param request:       The request object
  @type name:       string
  @param name:      Default to None, when creating a new group

  Only superusers may create a group
  """
  if not request.user.is_superuser:
    request.audit = {'allowed': False}
    if name is not None:
      request.audit['operation'] = 'EDIT_GROUP'
      request.audit['operationText'] = _get_failed_operation_text(request.user.username, 'EDIT_GROUP')
    else:
      request.audit['operation'] = 'CREATE_GROUP'
      request.audit['operationText'] = _get_failed_operation_text(request.user.username, 'CREATE_GROUP')

    raise PopupException(_("You must be a superuser to add or edit a group."), error_code=401)

  if name is not None:
    instance = Group.objects.get(name=name)
  else:
    instance = None

  if request.method == 'POST':
    form = GroupEditForm(request.POST, instance=instance)
    if form.is_valid():
      form.save()
      request.info(_('Group information updated'))

      # Audit log
      if name is not None:
        usernames = instance.user_set.all().values_list('username', flat=True)
        request.audit = {
          'operation': 'EDIT_GROUP',
          'operationText': 'Edited Group: %s, with member(s): %s' % (name, ', '.join(usernames))
        }
      else:
        user_ids = request.POST.getlist('members', [])
        usernames = User.objects.filter(pk__in=user_ids).values_list('username', flat=True)
        request.audit = {
          'operation': 'CREATE_GROUP',
          'operationText': 'Created Group: %s, with member(s): %s' % (request.POST.get('name', ''), ', '.join(usernames))
        }

      return redirect(reverse(list_groups))
  else:
    form = GroupEditForm(instance=instance)

  return render('edit_group.mako', request, {
    'form': form,
    'action': request.path,
    'name': name,
    'is_embeddable': request.GET.get('is_embeddable', False),
  })
Esempio n. 3
0
def edit_group(request, name=None):
    """
  edit_group(request, name = None) -> reply

  @type request:        HttpRequest
  @param request:       The request object
  @type name:       string
  @param name:      Default to None, when creating a new group

  Only superusers may create a group
  """
    if not request.user.is_superuser:
        raise PopupException(
            _("You must be a superuser to add or edit a group."),
            error_code=401)

    if name is not None:
        instance = Group.objects.get(name=name)
    else:
        instance = None

    if request.method == 'POST':
        form = GroupEditForm(request.POST, instance=instance)
        if form.is_valid():
            form.save()
            request.info(_('Group information updated'))
            return list_groups(request)

    else:
        form = GroupEditForm(instance=instance)

    return render('edit_group.mako', request,
                  dict(form=form, action=request.path, name=name))
Esempio n. 4
0
File: views.py Progetto: zlcken/hue
def edit_group(request, name=None):
  """
  edit_group(request, name = None) -> reply

  @type request:        HttpRequest
  @param request:       The request object
  @type name:       string
  @param name:      Default to None, when creating a new group

  Only superusers may create a group
  """
  if not request.user.is_superuser:
    request.audit = {'allowed': False}
    if name is not None:
      request.audit['operation'] = 'EDIT_GROUP'
      request.audit['operationText'] = _get_failed_operation_text(request.user.username, 'EDIT_GROUP')
    else:
      request.audit['operation'] = 'CREATE_GROUP'
      request.audit['operationText'] = _get_failed_operation_text(request.user.username, 'CREATE_GROUP')

    raise PopupException(_("You must be a superuser to add or edit a group."), error_code=401)

  if name is not None:
    instance = Group.objects.get(name=name)
  else:
    instance = None

  if request.method == 'POST':
    form = GroupEditForm(request.POST, instance=instance)
    if form.is_valid():
      form.save()
      request.info(_('Group information updated'))

      # Audit log
      if name is not None:
        usernames = instance.user_set.all().values_list('username', flat=True)
        request.audit = {
          'operation': 'EDIT_GROUP',
          'operationText': 'Edited Group: %s, with member(s): %s' % (name, ', '.join(usernames))
        }
      else:
        user_ids = request.POST.getlist('members', [])
        usernames = User.objects.filter(pk__in=user_ids).values_list('username', flat=True)
        request.audit = {
          'operation': 'CREATE_GROUP',
          'operationText': 'Created Group: %s, with member(s): %s' % (request.POST.get('name', ''), ', '.join(usernames))
        }

      return redirect(reverse(list_groups))
  else:
    form = GroupEditForm(instance=instance)

  return render('edit_group.mako', request, dict(form=form, action=request.path, name=name))
Esempio n. 5
0
def edit_group(request, name=None):
  """
  edit_group(request, name = None) -> reply

  @type request:        HttpRequest
  @param request:       The request object
  @type name:       string
  @param name:      Default to None, when creating a new group

  Only superusers may create a group
  """
  if not request.user.is_superuser:
    request.audit = {'allowed': False}
    if name is not None:
      request.audit['operation'] = 'EDIT_GROUP'
      request.audit['operationText'] = _get_failed_operation_text(request.user.username, 'EDIT_GROUP')
    else:
      request.audit['operation'] = 'CREATE_GROUP'
      request.audit['operationText'] = _get_failed_operation_text(request.user.username, 'CREATE_GROUP')

    raise PopupException(_("You must be a superuser to add or edit a group."), error_code=401)

  if name is not None:
    instance = Group.objects.get(name=name)
  else:
    instance = None

  is_embeddable = request.GET.get('is_embeddable', request.POST.get('is_embeddable', False))

  if request.method == 'POST':
    form = GroupEditForm(request.POST, instance=instance)
    if form.is_valid():
      form.save()

      # Audit log
      if name is not None:
        usernames = instance.user_set.all().values_list('username', flat=True)
        request.audit = {
          'operation': 'EDIT_GROUP',
          'operationText': 'Edited Group: %s, with member(s): %s' % (name, ', '.join(usernames))
        }
      else:
        user_ids = request.POST.getlist('members', [])
        usernames = User.objects.filter(pk__in=user_ids).values_list('username', flat=True)
        request.audit = {
          'operation': 'CREATE_GROUP',
          'operationText': 'Created Group: %s, with member(s): %s' % (request.POST.get('name', ''), ', '.join(usernames))
        }

      if is_embeddable:
        return JsonResponse({'url': '/hue' + reverse(list_groups)})
      else:
        request.info(_('Group information updated'))
        return redirect('/useradmin/groups')
  else:
    form = GroupEditForm(instance=instance)

  if request.method == 'POST' and is_embeddable:
    return JsonResponse(
      {'status': -1, 'errors': [{'id': f.id_for_label, 'message': f.errors} for f in form if f.errors]})
  else:
    return render('edit_group.mako', request, {
      'form': form,
      'action': request.path,
      'name': name,
      'is_embeddable': is_embeddable,
    })