if (id != 0) {
throw new Error("refusing to insert");
}
- GigiPreparedStatement query = DatabaseConnection.getInstance().prepare("insert into `users` set `email`=?, `password`=?, " + "`fname`=?, `mname`=?, `lname`=?, " + "`suffix`=?, `dob`=?, `created`=NOW(), locked=0, `language`=?");
+ GigiPreparedStatement query = DatabaseConnection.getInstance().prepare("insert into `users` set `email`=?, `password`=?, " + "`fname`=?, `mname`=?, `lname`=?, " + "`suffix`=?, `dob`=?, `created`=NOW(), `language`=?");
query.setString(1, email);
query.setString(2, PasswordHash.hash(password));
query.setString(3, name.fname);
return Collections.unmodifiableSet(groups);
}
- public void grantGroup(User granter, Group toGrant) throws GigiApiException {
+ public void grantGroup(User granter, Group toGrant) {
groups.add(toGrant);
GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("INSERT INTO user_groups SET user=?, permission=?, grantedby=?");
ps.setInt(1, getId());
ps.execute();
}
- public void revokeGroup(User revoker, Group toRevoke) throws GigiApiException {
+ public void revokeGroup(User revoker, Group toRevoke) {
groups.remove(toRevoke);
GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("UPDATE user_groups SET deleted=CURRENT_TIMESTAMP, revokedby=? WHERE deleted is NULL AND permission=? AND user=?");
ps.setInt(1, revoker.getId());
}
return u;
}
+
+ public boolean canIssue(CertificateProfile p) {
+ switch (p.getCAId()) {
+ case 0:
+ return true;
+ case 1:
+ return getAssurancePoints() > 50;
+ case 2:
+ return getAssurancePoints() > 50 && isInGroup(Group.getByString("codesigning"));
+ case 3:
+ case 4:
+ return false; // has an orga
+ default:
+ return false;
+ }
+ }
}