[Yanel-dev] Re: [Yanel-commits] rev 48323
- public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi
Michael Wechner
michael.wechner at wyona.com
Fri Mar 26 23:22:50 CET 2010
what is happening if deleting a policy fails, for example because the
user does not have the right to delete it?
(Also see
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#delete())
Thanks
Michi
guillaume at wyona.com wrote:
> Author: guillaume
> Date: 2010-03-26 16:18:04 +0100 (Fri, 26 Mar 2010)
> New Revision: 48323
>
> Modified:
> public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java
> Log:
> Implemented API to delete a policy (non-recursively for now).
>
>
> Modified: public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java
> ===================================================================
> --- public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java 2010-03-26 15:14:10 UTC (rev 48322)
> +++ public/yanel/trunk/src/contributions/resources/security-api/src/java/org/wyona/yanel/impl/resources/securityapi/UserManagerResource.java 2010-03-26 15:18:04 UTC (rev 48323)
> @@ -10,6 +10,7 @@
> import org.wyona.security.core.api.Group;
> import org.wyona.security.core.api.GroupManager;
> import org.wyona.security.core.api.Item;
> +import org.wyona.security.core.api.PolicyManager;
> import org.wyona.security.core.api.User;
> import org.wyona.security.core.api.UserManager;
>
> @@ -29,9 +30,7 @@
>
> private static Logger log = Logger.getLogger(UserManagerResource.class);
>
> - /**
> - *
> - */
> + @Override
> protected InputStream getContentXML(String viewId) {
> if (log.isDebugEnabled()) {
> log.debug("requested viewId: " + viewId);
> @@ -50,6 +49,11 @@
> sb.append(getUserAsXML(getEnvironment().getRequest().getParameter("id")));
> } else if (usecase.equals("getgroups")) {
> sb.append(getGroupsAsXML());
> + } else if (usecase.equals("deletepolicy")) {
> + String path = getParameterAsString("path");
> + String recursivelyText = getParameterAsString("deep");
> + boolean recursively = "1".equals(recursivelyText);
> + deletePolicy(path, recursively);
> } else {
> sb.append("<no-such-yanel-usecase-implemented>" + usecase + "</no-such-yanel-usecase-implemented>");
> }
> @@ -65,9 +69,7 @@
> return new ByteArrayInputStream(sb.toString().getBytes());
> }
>
> - /**
> - *
> - */
> + @Override
> public boolean exists() {
> log.warn("TODO: Implementation not finished yet!");
> return true;
> @@ -119,6 +121,18 @@
> }
>
> /**
> + * Deletes a specific policy.
> + * @param id the policy ID
> + */
> + private void deletePolicy(String path, boolean recursively) throws Exception {
> + PolicyManager pm = getRealm().getPolicyManager();
> + if (recursively) {
> + log.warn("Recursively deletion of policies not yet implemented, only policy "+path+" will be deleted.");
> + }
> + pm.removePolicy(path);
> + }
> +
> + /**
> * Get all users
> */
> private StringBuilder getUsersAsXML() throws Exception {
>
>
More information about the Yanel-development
mailing list