Package org.apache.slide.security

Examples of org.apache.slide.security.NodePermission


     */
    private void addPermission(String subject, String action,
                               boolean negative,
                               boolean inheritable) throws SourceException {
        try {
            NodePermission permission = new NodePermission(this.config.getFilesPath()+
                                            this.path, subject, action,
                                                       inheritable, negative);

            nat.begin();
            this.security.grantPermission(this.slideToken, permission);
View Full Code Here


    private void removePermission(String subject, String action,
                                  boolean negative,
                                  boolean inheritable)
                                    throws SourceException {
        try {
            NodePermission permission = new NodePermission(this.config.getFilesPath()+
                                            this.path, subject, action,
                                                       inheritable, negative);

            nat.begin();
            this.security.revokePermission(this.slideToken, permission);
View Full Code Here

                    permissions.clear();
                    Enumeration aclList = security.enumeratePermissions(this.slideToken,
                                              current);

                    while (aclList.hasMoreElements()) {
                        NodePermission permission = (NodePermission) aclList.nextElement();

                        // if we are processing inheritedPermissions (from parent and up)
                        // then the permission should be inheritable
                        if (inheritedPermissions &&
                            !permission.isInheritable()) {
                            // continue with next permission
                            continue;
                        }
                        permissions.add(permission);
                    }

                    // start combining and writing the permissions
                    while (permissions.size()>0) {
                        NodePermission permission = (NodePermission) permissions.get(0);

                        permissions.remove(0);

                        String principal = permission.getSubjectUri();
                        boolean negative = permission.isNegative();

                        String action = permission.getActionUri();

                        // read
                        boolean isReadObject = readObjectUri.startsWith(action);
                        boolean isReadLocks = readLocksUri.startsWith(action);
                        boolean isReadRevisionMetadata = readRevisionMetadataUri.startsWith(action);
                        boolean isReadRevisionContent = readRevisionContentUri.startsWith(action);

                        // write
                        boolean isCreateObject = createObjectUri.startsWith(action);
                        boolean isRemoveObject = removeObjectUri.startsWith(action);
                        boolean isLockObject = lockObjectUri.startsWith(action);
                        boolean isCreateRevisionMetadata = createRevisionMetadataUri.startsWith(action);
                        boolean isModifyRevisionMetadata = modifyRevisionMetadataUri.startsWith(action);
                        boolean isRemoveRevisionMetadata = removeRevisionMetadataUri.startsWith(action);
                        boolean isCreateRevisionContent = createRevisionContentUri.startsWith(action);
                        boolean isModifyRevisionContent = modifyRevisionContentUri.startsWith(action);
                        boolean isRemoveRevisionContent = removeRevisionContentUri.startsWith(action);

                        // read-acl
                        boolean isReadPermissions = readPermissionsUri.startsWith(action);

                        // write-acl
                        boolean isGrantPermission = grantPermissionUri.startsWith(action);
                        boolean isRevokePermission = revokePermissionUri.startsWith(action);

                        // check the other permissions to combine them
                        // (if they are for the same principal/negative)
                        for (int i = 0; i<permissions.size(); i++) {
                            NodePermission otherPermission = (NodePermission) permissions.get(i);

                            if (principal.equals(otherPermission.getSubjectUri()) &&
                                (negative==otherPermission.isNegative())) {
                                permissions.remove(i);
                                i--; // because we removed the current one

                                action = otherPermission.getActionUri();

                                // read
                                isReadObject |= readObjectUri.startsWith(action);
                                isReadLocks |= readLocksUri.startsWith(action);
                                isReadRevisionMetadata |= readRevisionMetadataUri.startsWith(action);
View Full Code Here

        boolean currentNegative = false;
        Element currentAceElm = null;
        Element currentGrantDenyElm = null;
        Enumeration permissions = security.enumeratePermissions(sToken, objectNode, true);
        while (permissions.hasMoreElements()) {
            NodePermission perm = (NodePermission)permissions.nextElement();
            if (!perm.getSubjectUri().equals(currentSubjectUri)
                || (perm.isNegative() && !currentNegative || !perm.isNegative() && currentNegative)) {
               
                // save previous ACE
                if (currentAceElm != null) {
                    xmlValue.add(currentAceElm);
                }
               
                // new ACE
                currentAceElm = new Element(E_ACE, DNSP);
               
                // principal
                if (perm.isInvert()) {
                    Element invertElm = new Element(E_INVERT, DNSP);
                    invertElm.addContent(createPrincipalElement(perm.getSubjectUri()));
                    currentAceElm.addContent(invertElm);
                }
                else {
                    currentAceElm.addContent(createPrincipalElement(perm.getSubjectUri()));
                }
               
                // grant/deny
                currentGrantDenyElm = perm.isNegative()
                    ? new Element(E_DENY, DNSP)
                    : new Element(E_GRANT, DNSP);
                currentAceElm.addContent(currentGrantDenyElm);
               
                // inherited
                String inheritedFrom = perm.getInheritedFrom();
                if (inheritedFrom != null && inheritedFrom.length() > 0) {
                    currentAceElm.addContent(createInheritedElement(inheritedFrom));
                }
               
                // protected
                if (perm.isProtected()) {
                    currentAceElm.addContent(new Element(E_PROTECTED, DNSP));
                }
               
                currentSubjectUri = perm.getSubjectUri();
                currentNegative = perm.isNegative();
            }
            currentGrantDenyElm.addContent(createPrivilegeElement(perm.getActionUri()));
        }
       
        // save last ACE
        if (currentAceElm != null) {
            xmlValue.add(currentAceElm);
View Full Code Here

               
                while (permissionsList.hasMoreElements()) {
                    writer.print("<tr" + (shade ? " bgcolor=\"eeeeee\""
                                              : " bgcolor=\"dddddd\"") +
                                     ">\r\n");
                    NodePermission currentPermission =
                        (NodePermission) permissionsList.nextElement();
                    writer.print("<td align=\"left\" colspan=\"2\"><tt>");
                    writer.print(currentPermission.getSubjectUri());
                    writer.print("</tt></td>\r\n");
                    writer.print("<td align=\"left\"><tt>");
                    writer.print(currentPermission.getActionUri());
                    writer.print("</tt></td>\r\n");
                    writer.print("<td align=\"right\"><tt>");
                    writer.print(currentPermission.isInheritable());
                    writer.print("</tt></td>\r\n");
                    writer.print("<td align=\"right\"><tt>");
                    writer.print(currentPermission.isNegative());
                    writer.print("</tt></td>\r\n");
                    writer.print("</tr>\r\n");
                }
            }
        }
View Full Code Here

            super.grantPermission(uri, permission);
        }
        else {
            try {
                ResourceId resourceId = obtainResourceId(uri);
                NodePermission permissionClone = permission.cloneObject();
                permissionClone.setObject(resourceId.getUuri()); // switch to uuri
                resourceId.getStore().grantPermission(resourceId, permissionClone);
            }
            catch (ObjectNotFoundException e) {
                throw new ServiceAccessException(this, e);
            }
View Full Code Here

            super.revokePermission(uri, permission);
        }
        else {
            try {
                ResourceId resourceId = obtainResourceId(uri);
                NodePermission permissionClone = permission.cloneObject();
                permissionClone.setObject(resourceId.getUuri()); // switch to uuri
                resourceId.getStore().revokePermission(resourceId, permissionClone);
            }
            catch (ObjectNotFoundException e) {
                throw new ServiceAccessException(this, e);
            }
View Full Code Here

            try {
                ResourceId resourceId = obtainResourceId(uri);
                Enumeration permissions = resourceId.getStore().enumeratePermissions(resourceId);
                Vector result = new Vector();
                while (permissions.hasMoreElements()) {
                    NodePermission p = ((NodePermission)permissions.nextElement()).cloneObject();
                    p.setObject(uri.toString()); // switch to uri
                    result.add(p);
                }
                return result.elements();
            }
            catch (ObjectNotFoundException e) {
View Full Code Here

                }
                boolean negative = false;
                if (res.getInt(PERMISSIONS_NEGATIVE) == 1) {
                    negative = true;
                }
                NodePermission permission =
                    new NodePermission(object,revision,subject,
                                       action,inheritable,negative);
                permissionVector.addElement(permission);
            }
           
        } catch (SQLException e) {
View Full Code Here

        Iterator privilegeIt = grantDenyElm.getChildren(E_PRIVILEGE, DNSP).iterator();
       
        while (privilegeIt.hasNext()) {
            Element privilegeElm = (Element)privilegeIt.next();
            actionUri = createActionUri(privilegeElm);
            NodePermission np = new NodePermission(objectUri, subjectUri, actionUri, true, negative);
            np.setInvert(invert);
            result.add(np);
        }
        return result;
    }
View Full Code Here

TOP

Related Classes of org.apache.slide.security.NodePermission

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.