View | Details | Raw Unified | Return to bug 31696
Collapse All | Expand All

(-)src/share/org/apache/slide/security/SecurityImpl.java (-2 / +38 lines)
Line 146 Link Here
146
        AccessDeniedException {
146
        AccessDeniedException, VetoException {
147
--
Line 155 Link Here
155
156
        // Diff permissions
157
        Enumeration oldPermissions =
158
            objectUri.getStore().enumeratePermissions(objectUri);
159
        Vector oldPermissionVector = new Vector();
160
        while ( oldPermissions.hasMoreElements() )
161
            oldPermissionVector.add(oldPermissions.nextElement());
162
        Vector newPermissionVector = new Vector();
163
        while (permissions.hasMoreElements())
164
            newPermissionVector.add(permissions.nextElement());
Line 156 Link Here
166
        Vector removedPermissions = new Vector(oldPermissionVector);
167
        removedPermissions.removeAll(newPermissionVector);
168
        Vector addedPermissions = new Vector(newPermissionVector);
169
        addedPermissions.removeAll(oldPermissionVector);
170
171
        // Set permissions
Line 158 Link Here
174
        permissions = newPermissionVector.elements();
Line 164 Link Here
181
        // Fire events
182
        permissions = removedPermissions.elements();
183
        while ( permissions.hasMoreElements() )
184
        {
185
            NodePermission permission =
186
                (NodePermission)permissions.nextElement();
187
            if ( SecurityEvent.REVOKE_PERMISSION.isEnabled() ) EventDispatcher.getInstance().fireVetoableEvent(SecurityEvent.REVOKE_PERMISSION, new SecurityEvent(this, token, namespace, objectUri, permission));
188
        }
189
        permissions = addedPermissions.elements();
190
        while ( permissions.hasMoreElements() )
191
        {
192
            NodePermission permission =
193
                (NodePermission)permissions.nextElement();
194
            if ( permission.isNegative() ) {
195
                if ( SecurityEvent.DENY_PERMISSION.isEnabled() ) EventDispatcher.getInstance().fireVetoableEvent(SecurityEvent.DENY_PERMISSION, new SecurityEvent(this, token, namespace, objectUri, permission));
196
            } else {
197
                if ( SecurityEvent.GRANT_PERMISSION.isEnabled() ) EventDispatcher.getInstance().fireVetoableEvent(SecurityEvent.GRANT_PERMISSION, new SecurityEvent(this, token, namespace, objectUri, permission));
198
            }
199
        
200
        }

Return to bug 31696