'Nobody can grant more than he haves, so check for user permissions
to Page and User model and render fieldset depending on them.'

def get_fieldsets(self, request, obj=None):

    fieldsets = deepcopy(self.fieldsets)
    perm_models = ((Page, ugettext('Page    permissions')), (PageUser, ugettext('User    &    Group    permissions')), (PagePermission, ugettext('Page    permissions    management')))
    for (i, perm_model) in enumerate(perm_models):
        fields = []
        (model, title) = perm_model
        name = model.__name__.lower()
        for key in ('add', 'change', 'delete'):
            perm_code = get_model_permission_codename(model, action=key)
            if request.user.has_perm(perm_code):
                fields.append(('can_%s_%s' % (key, name)))
        if fields:
            fieldsets.insert((2 + i), (title, {'fields': (fields,)}))
    return fieldsets
