X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FGroup.java;h=d5d38efde66a175172b88f2c0448d860d2cb8b2f;hp=8a2c1de479755ed0bce9d529dfffd014e93f1295;hb=85b9c7cfd0426eca278b609b96dd6b17b0a5144f;hpb=03d27b5bdaea6253e674cdf2779465873b657900 diff --git a/src/org/cacert/gigi/dbObjects/Group.java b/src/org/cacert/gigi/dbObjects/Group.java index 8a2c1de4..d5d38efd 100644 --- a/src/org/cacert/gigi/dbObjects/Group.java +++ b/src/org/cacert/gigi/dbObjects/Group.java @@ -1,16 +1,25 @@ package org.cacert.gigi.dbObjects; -import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.database.GigiResultSet; +import org.cacert.gigi.output.template.Outputable; +import org.cacert.gigi.output.template.TranslateCommand; public enum Group { - SUPPORTER("supporter"), ARBITRATOR("arbitrator"), BLOCKEDASSURER("blockedassurer"), BLOCKEDASSUREE("blockedassuree"), BLOCKEDLOGIN("blockedlogin"), TTP_ASSURER("ttp-assurer"), TTP_APPLICANT("ttp-applicant"), CODESIGNING("codesigning"), ORGASSURER("orgassurer"); + SUPPORTER("supporter", "supporter"), ARBITRATOR("arbitrator", "arbitrator"), // + BLOCKEDASSURER("blockedassurer", "may not assure"), BLOCKEDASSUREE("blockedassuree", "may not be assured"), // + BLOCKEDLOGIN("blockedlogin", "may not login"), BLOCKEDCERT("blockedcert", "may not issue certificates"), // + TTP_ASSURER("ttp-assurer", "may assure via TTP"), TTP_APPLICANT("ttp-applicant", "requests to be assured via ttp"), // + CODESIGNING("codesigning", "may issue codesigning certificates"), ORGASSURER("orgassurer", "may assure organisations"), // + NUCLEUS_ASSURER("nucleus-assurer", "may issue nucleus assurances"), LOCATE_AGENT("locate-agent", "wants access to the locate agent system"); private final String dbName; - private Group(String name) { + private final TranslateCommand tc; + + private Group(String name, String display) { dbName = name; + tc = new TranslateCommand(display); } public static Group getByString(String name) { @@ -22,18 +31,23 @@ public enum Group { } public User[] getMembers(int offset, int count) { - GigiPreparedStatement gps = DatabaseConnection.getInstance().prepareScrollable("SELECT `user` FROM `user_groups` WHERE `permission`=?::`userGroup` AND `deleted` IS NULL OFFSET ? LIMIT ?"); - gps.setString(1, dbName); - gps.setInt(2, offset); - gps.setInt(3, count); - GigiResultSet grs = gps.executeQuery(); - grs.last(); - User[] users = new User[grs.getRow()]; - int i = 0; - grs.beforeFirst(); - while (grs.next()) { - users[i++] = User.getById(grs.getInt(1)); + try (GigiPreparedStatement gps = new GigiPreparedStatement("SELECT `user` FROM `user_groups` WHERE `permission`=?::`userGroup` AND `deleted` IS NULL OFFSET ? LIMIT ?", true)) { + gps.setString(1, dbName); + gps.setInt(2, offset); + gps.setInt(3, count); + GigiResultSet grs = gps.executeQuery(); + grs.last(); + User[] users = new User[grs.getRow()]; + int i = 0; + grs.beforeFirst(); + while (grs.next()) { + users[i++] = User.getById(grs.getInt(1)); + } + return users; } - return users; + } + + public Outputable getName() { + return tc; } }