Update Approval in Batch
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / approvalsets / URApprovalSet.java
index 2c1ffe6..bf77b77 100644 (file)
@@ -25,6 +25,7 @@ import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.List;
 
+import org.onap.aaf.auth.batch.helpers.Approval;
 import org.onap.aaf.auth.dao.cass.ApprovalDAO;
 import org.onap.aaf.auth.dao.cass.NsDAO;
 import org.onap.aaf.auth.dao.cass.RoleDAO;
@@ -40,8 +41,10 @@ import org.onap.aaf.cadi.CadiException;
 import org.onap.aaf.misc.env.util.Chrono;
 
 public class URApprovalSet extends ApprovalSet {
-       
-       private boolean ownerSuperApprove = true;
+       private static final String FMT_SUFFIX = "%s] - Expires %s";
+       private static final String EXTEND_ACCESS_FMT = Approval.RE_APPROVAL_IN_ROLE + "%s] to Role [" + FMT_SUFFIX;
+       private static final String REVALIDATE_AS_ADMIN_FMT = Approval.RE_VALIDATE_ADMIN + FMT_SUFFIX;
+       private static final String REVALIDATE_AS_OWNER_FMT = Approval.RE_VALIDATE_OWNER + FMT_SUFFIX;
 
        public URApprovalSet(final AuthzTrans trans, final GregorianCalendar start, final DataView dv, final Loader<UserRoleDAO.Data> lurdd) throws IOException, CadiException {
                super(start, "user_role", dv);
@@ -49,8 +52,12 @@ public class URApprovalSet extends ApprovalSet {
                UserRoleDAO.Data urdd = lurdd.load();
                setConstruct(urdd.bytify());
                setMemo(getMemo(urdd));
-               setExpires(org.expiration(null, Organization.Expiration.UserInRole));
-               setTargetKey(urdd.role);
+               GregorianCalendar expires = org.expiration(null, Organization.Expiration.UserInRole);
+               if(urdd.expires.before(expires.getTime())) {
+                       expires.setTime(urdd.expires);
+               }
+               setExpires(expires);
+               setTargetKey(urdd.user+'|'+urdd.role);
                setTargetDate(urdd.expires);
                
                Result<RoleDAO.Data> r = dv.roleByName(trans, urdd.role);
@@ -116,10 +123,6 @@ public class URApprovalSet extends ApprovalSet {
                fdd.target_key = key;
        }
 
-       public void ownerSuperApprove(boolean set) {
-               ownerSuperApprove = set;
-       }
-
        private ApprovalDAO.Data newApproval(UserRoleDAO.Data urdd) throws CadiException {
                ApprovalDAO.Data add = new ApprovalDAO.Data();
                add.id = Chrono.dateToUUID(System.currentTimeMillis());
@@ -134,15 +137,11 @@ public class URApprovalSet extends ApprovalSet {
        private String getMemo(Data urdd) {
                switch(urdd.rname) {
                case "owner":
-                       return String.format("Revalidate as Owner of AAF Namespace [%s] - Expires %s",
-                                          urdd.ns,
-                                          Chrono.dateOnlyStamp(urdd.expires));
+                       return String.format(REVALIDATE_AS_OWNER_FMT,urdd.ns,Chrono.dateOnlyStamp(urdd.expires));
                case "admin":
-                       return String.format("Revalidate as Admin of AAF Namespace [%s] - Expires %s",
-                                          urdd.ns,
-                                          Chrono.dateOnlyStamp(urdd.expires));
+                       return String.format(REVALIDATE_AS_ADMIN_FMT,urdd.ns,Chrono.dateOnlyStamp(urdd.expires));
                default:
-                       return String.format("Extend access of User [%s] to Role [%s] - Expires %s",
+                       return String.format(EXTEND_ACCESS_FMT,
                                           urdd.user,
                                           urdd.role,
                                           Chrono.dateOnlyStamp(urdd.expires));