summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db/models
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-07 18:20:58 +0200
committerSimon Rettberg2015-09-07 18:20:58 +0200
commit2f140304dd193763b2aa9d509f972c6f23202e93 (patch)
tree8639a625543d78b35caccfe3dcdfa4740ba6d917 /src/main/java/org/openslx/imagemaster/db/models
parentStuff (diff)
downloadmasterserver-2f140304dd193763b2aa9d509f972c6f23202e93.tar.gz
masterserver-2f140304dd193763b2aa9d509f972c6f23202e93.tar.xz
masterserver-2f140304dd193763b2aa9d509f972c6f23202e93.zip
Start adapting to new DB/Thrift model
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db/models')
-rw-r--r--src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java62
-rw-r--r--src/main/java/org/openslx/imagemaster/db/models/LocalUser.java60
2 files changed, 122 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java b/src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java
new file mode 100644
index 0000000..4b5f076
--- /dev/null
+++ b/src/main/java/org/openslx/imagemaster/db/models/LocalOrganization.java
@@ -0,0 +1,62 @@
+package org.openslx.imagemaster.db.models;
+
+import java.math.BigInteger;
+import java.security.NoSuchAlgorithmException;
+import java.security.PublicKey;
+import java.security.spec.InvalidKeySpecException;
+
+import org.apache.log4j.Logger;
+import org.openslx.encryption.AsymKeyHolder;
+
+public class LocalOrganization
+{
+
+ private static final Logger LOGGER = Logger.getLogger( LocalOrganization.class );
+
+ private PublicKey publickey;
+
+ private String publickeyString;
+
+ private String name;
+
+ /**
+ * Get the public key of this organization, if known and valid.
+ *
+ * @return Public key, null on error or not known
+ */
+ public PublicKey getPubkey()
+ {
+ if ( publickey == null && publickeyString != null ) {
+ String parts[] = publickeyString.split( " " );
+ BigInteger mod = null;
+ BigInteger exp = null;
+ for ( int i = 0; i < parts.length; ++i ) {
+ if ( parts[i].startsWith( "mod:" ) ) {
+ // modulus found.
+ mod = new BigInteger( parts[i].substring( 4 ) );
+ }
+ if ( parts[i].startsWith( "exp:" ) ) {
+ // exponent found.
+ exp = new BigInteger( parts[i].substring( 4 ) );
+ }
+ }
+ if ( mod == null ) {
+ LOGGER.error( "No modulus for building public key was found." );
+ return null;
+ }
+ if ( exp == null ) {
+ LOGGER.error( "No public exponent for building public key was found." );
+ return null;
+ }
+ try {
+ publickey = new AsymKeyHolder( null, exp, mod ).getPublicKey();
+ } catch ( InvalidKeySpecException | NoSuchAlgorithmException e ) {
+ LOGGER.info( "PubKey of " + this.name + " is not valid.", e );
+ } catch ( NumberFormatException e ) {
+ LOGGER.info( "PubKey of " + this.name + " is corrupted in database!", e );
+ }
+ }
+ return publickey;
+ }
+
+}
diff --git a/src/main/java/org/openslx/imagemaster/db/models/LocalUser.java b/src/main/java/org/openslx/imagemaster/db/models/LocalUser.java
new file mode 100644
index 0000000..4e0d4fb
--- /dev/null
+++ b/src/main/java/org/openslx/imagemaster/db/models/LocalUser.java
@@ -0,0 +1,60 @@
+package org.openslx.imagemaster.db.models;
+
+import org.openslx.bwlp.thrift.iface.Role;
+import org.openslx.bwlp.thrift.iface.UserInfo;
+
+/**
+ * Represents a user. Should be extended and given an according static method to
+ * instantiate by loading data from some backend.
+ *
+ */
+public class LocalUser
+{
+ public final String login, organizationId;
+ public final String password;
+ public final String firstName, lastName;
+ public final String eMail;
+ public final Role role;
+ public final int userId;
+
+ public LocalUser( int userId, String login, String password, String organizationId, String firstName, String lastName, String eMail,
+ Role tutor )
+ {
+ this.userId = userId;
+ this.login = login;
+ this.organizationId = organizationId;
+ this.password = password;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.eMail = eMail;
+ this.role = tutor;
+ }
+
+ @Override
+ public String toString()
+ {
+ final StringBuilder sb = new StringBuilder( this.login );
+ sb.append( " (" );
+ sb.append( this.organizationId );
+ sb.append( "): " );
+ sb.append( this.firstName );
+ sb.append( ' ' );
+ sb.append( this.lastName );
+ sb.append( ' ' );
+ sb.append( this.eMail );
+ return sb.toString();
+ }
+
+ public UserInfo toUserInfo()
+ {
+ UserInfo ui = new UserInfo( login, firstName, lastName, eMail, organizationId );
+ ui.role = role;
+ return ui;
+ }
+
+ public String getLogin()
+ {
+ return login;
+ }
+
+}