]> WPIA git - gigi.git/commitdiff
ADD: Organisation selection in certificateIssueForm
authorFelix Dörre <felix@dogcraft.de>
Mon, 27 Oct 2014 21:26:51 +0000 (22:26 +0100)
committerJanis Streib <janis@dogcraft.de>
Wed, 31 Dec 2014 01:35:50 +0000 (02:35 +0100)
src/org/cacert/gigi/dbObjects/User.java
src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.java
src/org/cacert/gigi/pages/account/certs/CertificateIssueForm.templ

index 57a9ee2cefbad0293f047266db95b03f912bb2f4..cf9c40b91fe3fd60cd16041338cfc563838d2f6c 100644 (file)
@@ -1,9 +1,11 @@
 package org.cacert.gigi.dbObjects;
 
 import java.sql.Date;
 package org.cacert.gigi.dbObjects;
 
 import java.sql.Date;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
 import java.util.Locale;
 import java.util.Set;
 
@@ -411,6 +413,18 @@ public class User extends CertificateOwner {
         ps.execute();
     }
 
         ps.execute();
     }
 
+    public List<Organisation> getOrganisations() {
+        List<Organisation> orgas = new ArrayList<>();
+        GigiPreparedStatement query = DatabaseConnection.getInstance().prepare("SELECT orgid FROM org_admin WHERE `memid`=? AND deleted is NULL");
+        query.setInt(1, getId());
+        GigiResultSet res = query.executeQuery();
+
+        while (res.next()) {
+            orgas.add(Organisation.getById(res.getInt(1)));
+        }
+        return orgas;
+    }
+
     public static synchronized User getById(int id) {
         CertificateOwner co = CertificateOwner.getById(id);
         if (co instanceof User) {
     public static synchronized User getById(int id) {
         CertificateOwner co = CertificateOwner.getById(id);
         if (co instanceof User) {
index 153a5ce0eb95e28c768caad83e089d314eb7b534..2df486c19d55279da51e47795cf597c52ae1fe8b 100644 (file)
@@ -9,7 +9,9 @@ import java.security.interfaces.ECPublicKey;
 import java.security.interfaces.RSAPublicKey;
 import java.util.Base64;
 import java.util.HashMap;
 import java.security.interfaces.RSAPublicKey;
 import java.util.Base64;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
@@ -24,6 +26,7 @@ import org.cacert.gigi.dbObjects.Certificate.SANType;
 import org.cacert.gigi.dbObjects.Certificate.SubjectAlternateName;
 import org.cacert.gigi.dbObjects.CertificateProfile;
 import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.dbObjects.Certificate.SubjectAlternateName;
 import org.cacert.gigi.dbObjects.CertificateProfile;
 import org.cacert.gigi.dbObjects.Digest;
+import org.cacert.gigi.dbObjects.Organisation;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.CertificateValiditySelector;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.CertificateValiditySelector;
@@ -440,6 +443,23 @@ public class CertificateIssueForm extends Form {
                 return true;
             }
         });
                 return true;
             }
         });
+        final List<Organisation> orgs = u.getOrganisations();
+        vars2.put("orga", orgs.size() == 0 ? null : new IterableDataset() {
+
+            Iterator<Organisation> iter = orgs.iterator();
+
+            @Override
+            public boolean next(Language l, Map<String, Object> vars) {
+                if ( !iter.hasNext()) {
+                    return false;
+                }
+                Organisation orga = iter.next();
+                vars.put("key", orga.getId());
+                vars.put("name", orga.getName());
+                return true;
+            }
+        });
+
         t.output(out, l, vars2);
     }
 }
         t.output(out, l, vars2);
     }
 }
index ea23e332f512aed4203ff960326c2937d34e3b8b..a9971f8d87dc62fa61d5c1813f8cd6331d0f6a73 100644 (file)
     </select>
     </td>
   </tr>
     </select>
     </td>
   </tr>
+  <? if($orga) { ?>
+  <tr> 
+    <td>
+      <label for='org'><?=_Organisation?></label>
+    </td>  
+    <td><select name="org" id='org'>
+      <option value="-1"><?=_(none)?></option>
+    <? foreach($orga) { ?>
+      <option value="<?=$key?>"><?=$name?></option>
+    <? } ?>
+    </select></td>
+  </tr>
+  <? } ?>
   <tr>
     <td>
     <label for='CN'><?=_Your name?></label>
   <tr>
     <td>
     <label for='CN'><?=_Your name?></label>