Пример #1
0
def get_delete_group_form(group_id, config, groups_list):
    group_choices = []
    current_config_group = get_config_group(config, group_id)
    for group in groups_list:
        tmp_group_id = group['group_id']
        tmp_user_source = get_config_group(config, tmp_group_id)['user_source']
        if tmp_group_id != group_id and tmp_user_source == current_config_group['user_source']:
            group_choices.append((group['group_id'], group['name']))

    class DeleteGroupForm(forms.Form):
        new_group_id = forms.ChoiceField(group_choices, label='Group to move users to')

    return DeleteGroupForm
Пример #2
0
def get_delete_group_form(group_id, config, groups_list):
    group_choices = []
    current_config_group = get_config_group(config, group_id)
    for group in groups_list:
        tmp_group_id = group['group_id']
        tmp_user_source = get_config_group(config, tmp_group_id)['user_source']
        if tmp_group_id != group_id and tmp_user_source == current_config_group[
                'user_source']:
            group_choices.append((group['group_id'], group['name']))

    class DeleteGroupForm(forms.Form):
        new_group_id = forms.ChoiceField(group_choices,
                                         label='Group to move users to')

    return DeleteGroupForm
Пример #3
0
 def clean(self):
     if any(self.errors):
         return
     config_mgr_ = config_mgr.ConfigManager(config_mgr.default_config())
     for x in range(0, self.total_form_count()):
         form = self.forms[x]
         try:
             group_id = form.cleaned_data['group_id']
             data = dict(
                 name=form.cleaned_data['name'],
                 plan_id=form.cleaned_data['plan_id'],
                 device_policy=form.cleaned_data['device_policy'],
                 webapi_enable=form.cleaned_data['webapi_enable'],
                 check_domain=form.cleaned_data.get(
                     'check_domain', False),
                 force=('force_plan_change' in self.data),
             )
             try:
                 log_admin_action(
                     request,
                     'edit group %s with data: %s' % (group_id, data))
                 api.edit_group(group_id, data)
             except api.QuotaExceeded:
                 self.show_force = True
                 form._errors['plan_id'] = form.error_class([
                     'Changing the plan of this group will put one '
                     'or more users over quota. Please choose "Force '
                     'Plan Change" if you are sure you want to do this.'
                 ])
             g = get_config_group(config, group_id)
             g['ldap_id'] = form.cleaned_data['ldap_dn']
             g['priority'] = form.cleaned_data['priority']
         except api.DuplicateGroupName:
             raise forms.ValidationError('Duplicate group name')
     config_mgr_.apply_config()
Пример #4
0
def add_config_items(group, config):
    g = get_config_group(config, group['group_id'])
    if g:
        group['ldap_dn'] = g['ldap_id']
        group['priority'] = g['priority']
        group['user_source'] = g['user_source']
        group['admin_group'] = g['admin_group']
Пример #5
0
def add_config_items(group, config):
    g = get_config_group(config, group['group_id'])
    if g:
        group['ldap_dn'] = g['ldap_id']
        group['priority'] = g['priority']
        group['user_source'] = g['user_source']
        group['admin_group'] = g['admin_group']
Пример #6
0
 def clean(self):
     if any(self.errors):
         return
     config_mgr_ = config_mgr.ConfigManager(config_mgr.default_config())
     for x in range(0, self.total_form_count()):
         form = self.forms[x]
         try:
             group_id = form.cleaned_data['group_id']
             data = dict(name=form.cleaned_data['name'],
                         plan_id=form.cleaned_data['plan_id'],
                         webapi_enable=form.cleaned_data['webapi_enable'],
                         check_domain=form.cleaned_data.get('check_domain', False),
                         force=('force_plan_change' in self.data),
                         )
             try:
                 log_admin_action(request,
                                     'edit group %s with data: %s' % (group_id, data))
                 api.edit_group(group_id, data)
             except api.QuotaExceeded:
                 self.show_force = True
                 form._errors['plan_id'] = form.error_class([
                     'Changing the plan of this group will put one '
                     'or more users over quota. Please choose "Force '
                     'Plan Change" if you are sure you want to do this.'])
             g = get_config_group(config, group_id)
             g['ldap_id'] = form.cleaned_data['ldap_dn']
             g['priority'] = form.cleaned_data['priority']
         except api.DuplicateGroupName:
             raise forms.ValidationError('Duplicate group name')
     config_mgr_.apply_config()
Пример #7
0
def group_detail(request, api, account_info, config, username, group_id, saved=False):
    group_id = int(group_id)
    plans = api.list_plans()
    groups_list = api.list_groups()
    django_group, admin_group = get_or_create_admin_group(group_id)
    api_group = api.get_group(group_id)
    add_config_items(api_group, config)
    api_group['permissions'] = [p.id for p in django_group.permissions.all()]
    local_group = get_config_group(config, group_id)['user_source'] == 'local'
    fields_not_to_show = []
    if local_group:
        fields_not_to_show = ['ldap_dn', 'priority']

    GroupForm = get_group_form(request, config, plans, api, False, False)
    group_form = GroupForm(data=api_group)
    DeleteGroupForm = get_delete_group_form(group_id, config, groups_list)
    delete_group = DeleteGroupForm()

    if request.method == 'POST':
        if request.POST.get('form', '') == 'delete_group':
            delete_group = DeleteGroupForm(request.POST)
            if delete_group.is_valid():
                new_group_id = int(delete_group.cleaned_data['new_group_id'])
                data = (group_id, new_group_id)
                log_admin_action(request,
                                 'delete group %s and move users to group %s' % data)
                api.delete_group(group_id, new_group_id,)
                config_mgr_ = config_mgr.ConfigManager(config_mgr.default_config())
                for g in config_mgr_.config['groups']:
                    if g['group_id'] == group_id:
                        config_mgr_.config['groups'].remove(g)
                        break
                config_mgr_.apply_config()

                return redirect('blue_mgnt:groups_saved')
        else:
            group_form = GroupForm(request.POST)
            if group_form.is_valid():
                return redirect('blue_mgnt:group_detail_saved', group_id)

    return render_to_response('group_detail.html', dict(
        delete_group=delete_group,
        group_form=group_form,
        group_id=group_id,
        saved=saved,
        fields_not_to_show=fields_not_to_show,
        show_force=getattr(group_form, 'show_force', False),
        account_info=account_info,
    ),
    RequestContext(request))
Пример #8
0
def group_detail(request,
                 api,
                 account_info,
                 config,
                 username,
                 group_id,
                 saved=False):
    group_id = int(group_id)
    plans = api.list_plans()
    policies = api.list_policies()
    groups_list = api.list_groups()
    django_group, admin_group = get_or_create_admin_group(group_id)
    api_group = api.get_group(group_id)
    add_config_items(api_group, config)
    api_group['permissions'] = [p.id for p in django_group.permissions.all()]
    local_group = get_config_group(config, group_id)['user_source'] == 'local'
    fields_not_to_show = []
    if local_group:
        fields_not_to_show = ['ldap_dn', 'priority']

    GroupForm = get_group_form(request, config, plans, policies, api, False,
                               False)
    group_form = GroupForm(data=api_group)
    DeleteGroupForm = get_delete_group_form(group_id, config, groups_list)
    delete_group = DeleteGroupForm()

    if request.method == 'POST':
        if request.POST.get('form', '') == 'delete_group':
            delete_group = DeleteGroupForm(request.POST)
            if delete_group.is_valid():
                new_group_id = int(delete_group.cleaned_data['new_group_id'])
                data = (group_id, new_group_id)
                log_admin_action(
                    request,
                    'delete group %s and move users to group %s' % data)
                api.delete_group(
                    group_id,
                    new_group_id,
                )
                config_mgr_ = config_mgr.ConfigManager(
                    config_mgr.default_config())
                for g in config_mgr_.config['groups']:
                    if g['group_id'] == group_id:
                        config_mgr_.config['groups'].remove(g)
                        break
                config_mgr_.apply_config()

                return redirect('blue_mgnt:groups_saved')
        else:
            group_form = GroupForm(request.POST)
            if group_form.is_valid():
                return redirect('blue_mgnt:group_detail_saved', group_id)

    return render_to_response(
        'group_detail.html',
        dict(
            delete_group=delete_group,
            group_form=group_form,
            group_id=group_id,
            saved=saved,
            fields_not_to_show=fields_not_to_show,
            show_force=getattr(group_form, 'show_force', False),
            account_info=account_info,
        ), RequestContext(request))