X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cmd%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fcmd%2Fperm%2FDelete.java;h=f53ca4c81354dcf7283fb6d73737cf890fc618a8;hb=4846e9a0eb9acbdd92ce4495b70fc62c714b3c02;hp=ba123d589629566fcdd47eb5f52b719a39488ed7;hpb=71037c39a37d3549dcfe31926832a657744fbe05;p=aaf%2Fauthz.git diff --git a/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Delete.java b/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Delete.java index ba123d58..f53ca4c8 100644 --- a/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Delete.java +++ b/auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Delete.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -40,50 +40,54 @@ import aaf.v2_0.PermRequest; * */ public class Delete extends Cmd { - public Delete(Perm parent) { - super(parent,"delete", - new Param("type",true), - new Param("instance",true), - new Param("action", true)); - } + public Delete(Perm parent) { + super(parent,"delete", + new Param("type",true), + new Param("instance",true), + new Param("action", true)); + } + + @Override + public int _exec(final int index, final String ... args) throws CadiException, APIException, LocatorException { + return same(new Retryable() { + @Override + public Integer code(Rcli client) throws CadiException, APIException { + int idx = index; + // Object Style Delete + PermRequest pk = new PermRequest(); + pk.setType(args[idx++]); + pk.setInstance(args[idx++]); + pk.setAction(args[idx]); - @Override - public int _exec(final int index, final String ... args) throws CadiException, APIException, LocatorException { - return same(new Retryable() { - @Override - public Integer code(Rcli client) throws CadiException, APIException { - int idx = index; - // Object Style Delete - PermRequest pk = new PermRequest(); - pk.setType(args[idx++]); - pk.setInstance(args[idx++]); - pk.setAction(args[idx++]); - - // Set "Force" if set - setQueryParamsOn(client); - Future fp = client.delete( - "/authz/perm", - getDF(PermRequest.class), - pk); - if(fp.get(AAFcli.timeout())) { - pw().println("Deleted Permission"); - } else { - if(fp.code()==202) { - pw().println("Permission Deletion Accepted, but requires Approvals before actualizing"); - } else { - error(fp); - } - } - return fp.code(); - } - }); - } + if(pk.getType().contains("@")) { // User Perm deletion... Must remove from hidden role + client.setQueryParams("force"); + } else { + // Set "Force" if set + setQueryParamsOn(client); + } + Future fp = client.delete( + "/authz/perm", + getDF(PermRequest.class), + pk); + if (fp.get(AAFcli.timeout())) { + pw().println("Deleted Permission"); + } else { + if (fp.code()==202) { + pw().println("Permission Deletion Accepted, but requires Approvals before actualizing"); + } else { + error(fp); + } + } + return fp.code(); + } + }); + } - @Override - public void detailedHelp(int indent, StringBuilder sb) { - detailLine(sb,indent,"Delete a Permission with type,instance and action"); - detailLine(sb,indent+4,"see Create for definitions"); - api(sb,indent,HttpMethods.DELETE,"authz/perm",PermRequest.class,true); - } + @Override + public void detailedHelp(int indent, StringBuilder sb) { + detailLine(sb,indent,"Delete a Permission with type,instance and action"); + detailLine(sb,indent+4,"see Create for definitions"); + api(sb,indent,HttpMethods.DELETE,"authz/perm",PermRequest.class,true); + } }