]> WPIA git - gigi.git/blob - src/org/cacert/gigi/dbObjects/Group.java
8a2c1de479755ed0bce9d529dfffd014e93f1295
[gigi.git] / src / org / cacert / gigi / dbObjects / Group.java
1 package org.cacert.gigi.dbObjects;
2
3 import org.cacert.gigi.database.DatabaseConnection;
4 import org.cacert.gigi.database.GigiPreparedStatement;
5 import org.cacert.gigi.database.GigiResultSet;
6
7 public enum Group {
8     SUPPORTER("supporter"), ARBITRATOR("arbitrator"), BLOCKEDASSURER("blockedassurer"), BLOCKEDASSUREE("blockedassuree"), BLOCKEDLOGIN("blockedlogin"), TTP_ASSURER("ttp-assurer"), TTP_APPLICANT("ttp-applicant"), CODESIGNING("codesigning"), ORGASSURER("orgassurer");
9
10     private final String dbName;
11
12     private Group(String name) {
13         dbName = name;
14     }
15
16     public static Group getByString(String name) {
17         return valueOf(name.toUpperCase().replace('-', '_'));
18     }
19
20     public String getDatabaseName() {
21         return dbName;
22     }
23
24     public User[] getMembers(int offset, int count) {
25         GigiPreparedStatement gps = DatabaseConnection.getInstance().prepareScrollable("SELECT `user` FROM `user_groups` WHERE `permission`=?::`userGroup` AND `deleted` IS NULL OFFSET ? LIMIT ?");
26         gps.setString(1, dbName);
27         gps.setInt(2, offset);
28         gps.setInt(3, count);
29         GigiResultSet grs = gps.executeQuery();
30         grs.last();
31         User[] users = new User[grs.getRow()];
32         int i = 0;
33         grs.beforeFirst();
34         while (grs.next()) {
35             users[i++] = User.getById(grs.getInt(1));
36         }
37         return users;
38     }
39 }