* 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.
import certman.v1_0.Artifacts.Artifact;
public class CredDetail extends Page {
-
+
public static final String HREF = "/gui/creddetail";
public static final String NAME = "CredDetail";
private static Model model;
public CredDetail(final AAF_GUI gui, Page ... breadcrumbs) throws APIException, IOException {
- super(gui.env, NAME, HREF, Params.values(),
+ super(gui.env, NAME, HREF, Params.values(),
new BreadCrumbs(breadcrumbs),
new Table<AAF_GUI,AuthzTrans>("Cred Details",gui.env.newTransNoAvg(),model = new Model(),
slotCode = new SlotCode<AuthzTrans>(false,gui.env,NAME,Params.values()) {
Mark js = new Mark(), fn=new Mark();
hgen.js(js).function(fn,"newArtifact")
.text("id=document.getElementById('id');")
- .text("if(id.value=='') {alert('Enter the id in box');} else {")
+ .text("if (id.value=='') {alert('Enter the id in box');} else {")
.text("window.open('"+CMArtiChangeForm.HREF+"?id='+id.value+'&ns="+ns+"','_self');}"
)
.end(fn)
.function("newPassword")
.text("id=document.getElementById('id');")
- .text("if(id.value=='') {alert('Enter the id in box');} else {")
+ .text("if (id.value=='') {alert('Enter the id in box');} else {")
.text("window.open('"+PassChangeForm.HREF+"?id='+id.value+'@"+domain+"&ns="+ns+"','_self');}"
)
.end(js);
});
}
},"class=std")
-
+
);
// Setting so we can get access to HTMLGen clone
model.set(this,slotCode);
/**
* Implement the table content for Cred Detail
- *
+ *
* @author Jeremiah
*
*/
cd = credDetail;
sc = slotCode;
}
-
+
@Override
public void prefix(AAF_GUI state, AuthzTrans trans, final Cache<HTMLGen> cache, final HTMLGen hgen) {
}
public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
final String ns = sc.get(trans, Params.ns, "");
final String id = sc.get(trans, Params.id, "");
- if(ns==null) {
+ if (ns==null) {
return Cells.EMPTY;
}
final ArrayList<AbsCell[]> rv = new ArrayList<>();
final TimeTaken tt = trans.start("AAF Cred Details",Env.REMOTE);
- List<Artifact> la;
+ List<Artifact> la;
try {
la = gui.cmClientAsUser(trans.getUserPrincipal(), new Retryable<List<Artifact>>() {
@Override
public List<Artifact> code(Rcli<?> client)throws CadiException, ConnectException, APIException {
Future<Artifacts> fa = client.read("/cert/artifacts?ns="+ns,gui.artifactsDF);
- if(fa.get(AAFcli.timeout())) {
+ if (fa.get(AAFcli.timeout())) {
return fa.value.getArtifact();
} else {
return null;
});
final Set<String> lns = new HashSet<>();
- if(la!=null) {
- for(Artifact a : la){
+ if (la!=null) {
+ for (Artifact a : la){
lns.add(a.getMechid());
}
}
@Override
public Void code(Rcli<?> client) throws CadiException, ConnectException, APIException {
Future<Users> fu = client.read("/authn/creds/ns/"+ns,gui.getDF(Users.class));
- if(fu.get(AAFcli.timeout())) {
+ if (fu.get(AAFcli.timeout())) {
// Organize User entries
Map<String,List<Map<Integer,List<User>>>> users = new HashMap<>();
-
+
List<Map<Integer,List<User>>> lmu=null;
Map<Integer, List<User>> mu = null;
List<User> lu = null;
-
+
for (User u : fu.value.getUser()) {
- if(u.getType() == 200) {
+ if (u.getType() == 200) {
lns.remove(u.getId());
}
lmu = users.get(u.getId());
- if(lmu==null) {
- users.put(u.getId(),lmu=new ArrayList<>());
+ if (lmu==null) {
+ lmu=new ArrayList<>();
+ users.put(u.getId(),lmu);
}
mu=null;
- for(Map<Integer,List<User>> xmu : lmu) {
- if(xmu.containsKey(u.getType())) {
+ for (Map<Integer,List<User>> xmu : lmu) {
+ if (xmu.containsKey(u.getType())) {
mu = xmu;
}
}
-
- if(mu==null) {
- lmu.add(mu=new HashMap<>());
+
+ if (mu==null) {
+ mu=new HashMap<>();
+ lmu.add(mu);
}
-
+
lu = mu.get(u.getType());
- if(lu==null) {
- mu.put(u.getType(),lu = new ArrayList<>());
+ if (lu==null) {
+ lu = new ArrayList<>();
+ mu.put(u.getType(),lu);
}
lu.add(u);
}
StringWriter buttons = new StringWriter();
HTMLGen hgen = cd.clone(buttons);
hgen.leaf("button","onclick=divVisibility('"+key+"');","class=button").text("Expand").end();
-
+ hgen.leaf(HTMLGen.A,"class=button","class=greenbutton","href="+CredHistory.HREF+"?user="+ulm.getKey()).text("History").end();
+
StringWriter creds = new StringWriter();
hgen = cd.clone(creds);
Mark div = hgen.divID(key,ulm.getKey().equals(id)?"":"style=display:none;");
- for(Map<Integer, List<User>> miu : ulm.getValue()) {
+ for (Map<Integer, List<User>> miu : ulm.getValue()) {
Mark utable = new Mark();
hgen.leaf(utable,HTMLGen.TABLE);
Mark uRow = new Mark();
String cls;
boolean first = true;
-
- for( Entry<Integer, List<User>> es : miu.entrySet()) {
+
+ for ( Entry<Integer, List<User>> es : miu.entrySet()) {
Collections.sort(es.getValue(),new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
int xcnt = 0;
XMLGregorianCalendar oldest=null, newest=null;
String id = null;
- for(User u: es.getValue()) {
- if(id==null) {
+ for (User u: es.getValue()) {
+ if (id==null) {
id = u.getId();
}
// Need to compile entries for Certificates on this screen
- if(es.getKey()==200) {
+ if (es.getKey()==200) {
++xcnt;
- if(oldest==null || oldest.compare(u.getExpires())<0) {
+ if (oldest==null || oldest.compare(u.getExpires())<0) {
oldest = u.getExpires();
}
- if(newest==null || newest.compare(u.getExpires())<0) {
+ if (newest==null || newest.compare(u.getExpires())<0) {
newest = u.getExpires();
}
} else {
hgen.leaf(uRow,HTMLGen.TR);
- if(first) {
+ if (first) {
hgen.leaf(HTMLGen.TD,cls="class=detailFirst",STYLE_WIDTH_10);
switch(es.getKey()) {
- case 1:
- case 2: hgen.text("Password");
+ case 1:
+ case 2: hgen.text("Password");
break;
case 10: hgen.text("Certificate"); break;
}
}
hgen.end();
hgen.incr(HTMLGen.TD,cls,STYLE_WIDTH_20);
-
+
hgen.leaf(HTMLGen.A,
"class=button",
"href="+PassDeleteAction.HREF+
"&date="+u.getExpires().toXMLFormat() +
"&type="+u.getType())
.text("Delete").end();
- if(first && es.getKey()<10) { // Change Password Screen
+ if (first && es.getKey()<10) { // Change Password Screen
hgen.leaf(HTMLGen.A,"class=button","href="+PassChangeForm.HREF+"?id="+id+"&ns="+ns)
.text("Add")
.end();
}
first=false;
hgen.end().leaf(HTMLGen.TD,cls,STYLE_WIDTH_70)
- .text(Chrono.niceDateStamp(u.getExpires()))
+ .text(Chrono.niceDateStamp(u.getExpires()) + ", TAG ID: " + u.getTag())
.end();
-
+
hgen.end(uRow);
}
}
- if(xcnt>0) { // print compilations, if any, of Certificate
+ if (xcnt>0) { // print compilations, if any, of Certificate
hgen.leaf(uRow,HTMLGen.TR)
.leaf(HTMLGen.TD,cls="class=detailFirst",STYLE_WIDTH_10).text("x509").end()
.leaf(HTMLGen.TD, cls,STYLE_WIDTH_20)
Chrono.niceDateStamp(oldest),
Chrono.niceDateStamp(newest)))
.end(uRow);
-
+
}
+
}
hgen.end(utable);
}
-
+
hgen.end(div);
rv.add(new AbsCell[] {
- new TextCell(ulm.getKey(),STYLE_WIDTH_15),
+ new TextCell(ulm.getKey(),STYLE_WIDTH_15),
new TextCell(buttons.toString(),STYLE_WIDTH_5),
new TextCell(creds.toString(),STYLE_WIDTH_70)
});
}
- for(String missing : lns) {
+
+ for (String missing : lns) {
StringWriter buttons = new StringWriter();
HTMLGen hgen = cd.clone(buttons);
hgen.leaf(HTMLGen.A,"class=button","href="+CMArtifactShow.HREF+"?id="+missing+"&ns="+ns)