X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FdbObjects%2FUser.java;h=7a4ce0dff34616ffac66906b2635ff36949cd646;hb=d914944d45e769edf887466f979afa3f403f2b39;hp=8abe5bad35aa0d858d0722c201fb33069da256a9;hpb=c5ef8b1ebfd46de2389e23188f8c022b0d26a1bb;p=gigi.git diff --git a/src/org/cacert/gigi/dbObjects/User.java b/src/org/cacert/gigi/dbObjects/User.java index 8abe5bad..7a4ce0df 100644 --- a/src/org/cacert/gigi/dbObjects/User.java +++ b/src/org/cacert/gigi/dbObjects/User.java @@ -124,7 +124,7 @@ public class User implements IdCachable { 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); @@ -486,7 +486,7 @@ public class User implements IdCachable { 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()); @@ -495,7 +495,7 @@ public class User implements IdCachable { 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()); @@ -513,4 +513,20 @@ public class User implements IdCachable { } 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; + } + } }