예제 #1
0
    def __add_user_to_role(self, obj = None, user = None, role = None):
        if user is None:
            user = self.testuser
        if role is None:
            role = self.testrole

        role_member = RoleMember( role = role,
                                  user = user,
                                  has_limitations = obj is not None )
        role_member.save()

        if obj is not None:
            RoleMemberLimitation( role_member = role_member,
                                  content_object = obj, ).save()
예제 #2
0
def admin_permission_role_member_add(request, group, role_id, addgroup=False):
    if not has_permission_flag(request.user, 'community_manage_roles'):
        raise PermissionDenied()
    role = get_object_or_404(Role, pk=role_id)

    if addgroup:
        EditForm = EditRoleGroupMemberForm
    else:
        EditForm = EditRoleMemberForm

    if request.method == 'POST':
        form = EditForm(group=group, data=request.POST)
        if form.is_valid():
            data = form.cleaned_data
            role_member = RoleMember(
                role=role,
                user=data.get('user', None),
                rolegroup=data.get('rolegroup', None),
                has_limitations=data['has_limitations'],
            )
            role_member.save()
            if data['has_limitations']:
                limitation = RoleMemberLimitation(
                    role_member=role_member,
                    object_type=data['object_type'],
                    object_id=data['object'],
                )
                limitation.save()

            messages.success(request,
                             message=ugettext(u'Successfully added member.'))
            return HttpResponseRedirect(role.get_absolute_memberlisturl())
    else:
        form = EditForm(group=group)

    return render_to_response(
        'sphene/community/admin/permission/role_member_add.html', {
            'form': form,
            'role': role,
        },
        context_instance=RequestContext(request))