import java.util.SortedMap;
import java.util.TreeMap;
-import org.onap.aaf.auth.batch.actions.URDelete;
import org.onap.aaf.auth.dao.cass.UserRoleDAO;
import org.onap.aaf.auth.dao.cass.UserRoleDAO.Data;
import org.onap.aaf.auth.env.AuthzTrans;
public class UserRole implements Cloneable, CacheChange.Data {
- private static final String SEPARATOR = "\",\"";
+ public static final String UR = "ur";
+ public static final String APPROVE_UR = "ur";
+
+ private static final String SEPARATOR = "\",\"";
// CACHE Calling
private static final String LOG_FMT = "%s UserRole - %s: %s-%s (%s, %s) expiring %s";
}
public static void loadOneUser(Trans trans, Session session, Creator<UserRole> creator, String user, Visitor<UserRole> visitor ) {
- load(trans,session,creator,"role='"+ user +"';",visitor);
+ load(trans,session,creator,"user='"+ user +'\'',visitor);
}
private static void load(Trans trans, Session session, Creator<UserRole> creator, String where, Visitor<UserRole> visitor) {
String query = creator.query(where);
- trans.info().log( "query: " + query );
+ trans.debug().log( "query: " + query );
TimeTaken tt = trans.start("Read UserRoles", Env.REMOTE);
ResultSet results;
tt.done();
}
} finally {
- trans.info().log("Loaded",totalLoaded,"UserRoles");
+ trans.debug().log("Loaded",totalLoaded,"UserRoles");
}
}
cache.resetLocalData();
}
- public static int sizeForDeletion() {
- return cache.cacheSize();
+ public void row(final CSV.Writer csvw, String tag) {
+ csvw.row(tag,user(),role(),ns(),rname(),Chrono.dateOnlyStamp(expires()),expires().getTime());
}
- public static boolean pendingDelete(UserRole ur) {
- return cache.contains(ur);
+ public void row(final CSV.Writer csvw, String tag, String reason) {
+ csvw.row(tag,user(),role(),ns(),rname(),Chrono.dateOnlyStamp(expires()),expires().getTime(),reason);
}
+
+ public static Data row(List<String> row) {
+ Data data = new Data();
+ data.user = row.get(1);
+ data.role = row.get(2);
+ data.ns = row.get(3);
+ data.rname = row.get(4);
+ data.expires = new Date(Long.parseLong(row.get(6)));
+ return data;
+ }
- public static void actuateDeletionNow(AuthzTrans trans, URDelete directDel) {
- for (UserRole ur : cache.getRemoved()) {
- directDel.exec(trans, ur, "Actuating UserRole Deletion");
- }
- cache.getRemoved().clear();
- cache.resetLocalData();
+ public static void batchDelete(StringBuilder sb, List<String> row) {
+ sb.append("DELETE from authz.user_role WHERE user='");
+ sb.append(row.get(1));
+ sb.append("' AND role='");
+ sb.append(row.get(2));
+ sb.append("';\n");
}
- public void row(final CSV.Writer csvw) {
- csvw.row("ur",user(),ns(),rname(),Chrono.dateOnlyStamp(expires()));
- }
-
- public static void row(StringBuilder sb, List<String> row) {
- sb.append("DELETE from authz.user_role WHERE user='");
+ public static void batchExtend(StringBuilder sb, List<String> row, Date newDate ) {
+ sb.append("UPDATE authz.user_role SET expires='");
+ sb.append(Chrono.dateTime(newDate));
+ sb.append("' WHERE user='");
sb.append(row.get(1));
sb.append("' AND role='");
sb.append(row.get(2));
- sb.append('.');
- sb.append(row.get(3));
+ sb.append("';\n");
+ }
+
+ public void batchUpdateExpires(StringBuilder sb) {
+ sb.append("UPDATE authz.user_role SET expires='");
+ sb.append(Chrono.dateTime(expires()));
+ sb.append("' WHERE user='");
+ sb.append(user());
+ sb.append("' AND role='");
+ sb.append(role());
sb.append("';\n");
}
public static String histMemo(String fmt, List<String> row) {
- return String.format(fmt, row.get(1),row.get(2)+'.'+row.get(3), row.get(4));
+ String reason;
+ if(row.size()>7) { // Reason included
+ reason = String.format("%s removed from %s because %s",
+ row.get(1),row.get(2),row.get(7));
+ } else {
+ reason = String.format(fmt, row.get(1),row.get(2), row.get(5));
+ }
+ return reason;
}
public static String histSubject(List<String> row) {
- return row.get(1) + '|' + row.get(2)+'.'+row.get(3);
+ return row.get(1) + '|' + row.get(2);
+ }
+
+ public static void clear() {
+ data.clear();
+ byUser.clear();
+ byRole.clear();
+ cache.resetLocalData();
+
}
}
\ No newline at end of file