diff --git a/hsarback/src/de/hsadmin/core/qserv/QueueTask.java b/hsarback/src/de/hsadmin/core/qserv/QueueTask.java index 8b0b310..23cc72c 100644 --- a/hsarback/src/de/hsadmin/core/qserv/QueueTask.java +++ b/hsarback/src/de/hsadmin/core/qserv/QueueTask.java @@ -18,7 +18,9 @@ import javax.persistence.Temporal; import javax.persistence.Transient; import de.hsadmin.core.model.AbstractEntity; +import de.hsadmin.core.model.AnnFieldIO; import de.hsadmin.core.model.AnnModuleImpl; +import de.hsadmin.core.model.ReadWriteAccess; import de.hsadmin.mods.qstat.QTaskModuleImpl; import de.hsadmin.mods.user.UnixUser; @@ -35,26 +37,32 @@ public class QueueTask extends AbstractEntity implements Serializable { @Column(name = "task_id", columnDefinition = "integer") private long id; + @AnnFieldIO(rw=ReadWriteAccess.READONLY) @JoinColumn(name="user_id", columnDefinition="integer", nullable=true) @ManyToOne(fetch=FetchType.EAGER) private UnixUser user; + @AnnFieldIO(rw=ReadWriteAccess.READONLY) @Column(name = "started", columnDefinition = "date") @Temporal(javax.persistence.TemporalType.TIMESTAMP) private Date started; + @AnnFieldIO(rw=ReadWriteAccess.READONLY) @Column(name = "finished", columnDefinition = "date", nullable = true) @Temporal(javax.persistence.TemporalType.TIMESTAMP) private Date finished; + @AnnFieldIO(rw=ReadWriteAccess.READONLY) @Column(name = "title", columnDefinition = "character varying(192)") private String title; + @AnnFieldIO(rw=ReadWriteAccess.READONLY) @Column(name = "details", columnDefinition = "text", nullable = true) private String details; private Processor proc; + @AnnFieldIO(rw=ReadWriteAccess.READONLY) @Column(name = "exception", columnDefinition = "text", nullable = true) private String exception; diff --git a/hsarback/src/de/hsadmin/mods/email/EMailAlias.java b/hsarback/src/de/hsadmin/mods/email/EMailAlias.java index f494555..1390d6f 100644 --- a/hsarback/src/de/hsadmin/mods/email/EMailAlias.java +++ b/hsarback/src/de/hsadmin/mods/email/EMailAlias.java @@ -45,7 +45,7 @@ public class EMailAlias extends AbstractEntity implements Serializable { @ManyToOne() @JoinColumn(name = "pac_id", columnDefinition = "integer") - @AnnFieldIO(validation="[a-z0-9]*", rw=ReadWriteAccess.WRITEONCE) + @AnnFieldIO(validation="[a-z0-9]*", rw=ReadWriteAccess.READONLY) private Pac pac; @AnnFieldIO(validation="[a-z0-9\\_\\-\\.\\+]*", rw=ReadWriteAccess.WRITEONCE) diff --git a/hsarback/src/de/hsadmin/mods/user/UnixUser.java b/hsarback/src/de/hsadmin/mods/user/UnixUser.java index d71daf1..2653103 100644 --- a/hsarback/src/de/hsadmin/mods/user/UnixUser.java +++ b/hsarback/src/de/hsadmin/mods/user/UnixUser.java @@ -48,7 +48,7 @@ public class UnixUser extends AbstractEntity implements Serializable { @Transient private String password; - @AnnFieldIO(validation="[a-z0-9]*", rw=ReadWriteAccess.WRITEONCE) + @AnnFieldIO(validation="[a-z0-9]*", rw=ReadWriteAccess.READONLY) @JoinColumn(name = "packet_id", columnDefinition = "integer", updatable=false) @ManyToOne(fetch = FetchType.LAZY) private Pac pac; @@ -65,7 +65,7 @@ public class UnixUser extends AbstractEntity implements Serializable { @Column(name = "homedir", columnDefinition = "character varying(48)", updatable=false) private String homedir; - @AnnFieldIO(rw=ReadWriteAccess.READWRITE) + @AnnFieldIO(rw=ReadWriteAccess.READONLY) @Column(name = "locked", columnDefinition = "boolean") private boolean locked; diff --git a/hsarback/src/de/hsadmin/remote/AbstractRemote.java b/hsarback/src/de/hsadmin/remote/AbstractRemote.java index fd19c68..1f7bf91 100644 --- a/hsarback/src/de/hsadmin/remote/AbstractRemote.java +++ b/hsarback/src/de/hsadmin/remote/AbstractRemote.java @@ -21,6 +21,10 @@ public abstract class AbstractRemote implements IRemote { protected abstract Class getEntityClass(); + protected Class getAnnotatedEntityClass() { + return getEntityClass(); + } + protected abstract void entity2map(Transaction tx, AbstractEntity entity, Map resultMap); protected abstract void map2entity(Transaction tx, Map setParams, AbstractEntity entity) throws HSAdminException; diff --git a/hsarback/src/de/hsadmin/remote/MysqlDbRemote.java b/hsarback/src/de/hsadmin/remote/MysqlDbRemote.java index c6d3d7a..107e10a 100644 --- a/hsarback/src/de/hsadmin/remote/MysqlDbRemote.java +++ b/hsarback/src/de/hsadmin/remote/MysqlDbRemote.java @@ -4,6 +4,7 @@ import java.util.Map; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.core.model.Transaction; +import de.hsadmin.mods.db.Database; import de.hsadmin.mods.db.MySqlDatabase; public class MysqlDbRemote extends AbstractRemote { @@ -27,6 +28,11 @@ public class MysqlDbRemote extends AbstractRemote { map.put("encoding", encoding); } + @Override + protected Class getAnnotatedEntityClass() { + return Database.class; + } + @Override protected Class getEntityClass() { return MySqlDatabase.class; diff --git a/hsarback/src/de/hsadmin/remote/MysqlUserRemote.java b/hsarback/src/de/hsadmin/remote/MysqlUserRemote.java index 3990843..781c6e1 100644 --- a/hsarback/src/de/hsadmin/remote/MysqlUserRemote.java +++ b/hsarback/src/de/hsadmin/remote/MysqlUserRemote.java @@ -4,6 +4,7 @@ import java.util.Map; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.core.model.Transaction; +import de.hsadmin.mods.db.DatabaseUser; import de.hsadmin.mods.db.MySqlUser; public class MysqlUserRemote extends AbstractRemote { @@ -23,6 +24,11 @@ public class MysqlUserRemote extends AbstractRemote { map.put("instance", instance); } + @Override + protected Class getAnnotatedEntityClass() { + return DatabaseUser.class; + } + @Override protected Class getEntityClass() { return MySqlUser.class; diff --git a/hsarback/src/de/hsadmin/remote/PgsqlDbRemote.java b/hsarback/src/de/hsadmin/remote/PgsqlDbRemote.java index b0046a3..129e899 100644 --- a/hsarback/src/de/hsadmin/remote/PgsqlDbRemote.java +++ b/hsarback/src/de/hsadmin/remote/PgsqlDbRemote.java @@ -4,6 +4,7 @@ import java.util.Map; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.core.model.Transaction; +import de.hsadmin.mods.db.Database; import de.hsadmin.mods.db.PgSqlDatabase; public class PgsqlDbRemote extends AbstractRemote { @@ -27,6 +28,11 @@ public class PgsqlDbRemote extends AbstractRemote { map.put("encoding", encoding); } + @Override + protected Class getAnnotatedEntityClass() { + return Database.class; + } + @Override protected Class getEntityClass() { return PgSqlDatabase.class; diff --git a/hsarback/src/de/hsadmin/remote/PgsqlUserRemote.java b/hsarback/src/de/hsadmin/remote/PgsqlUserRemote.java index fce99bb..2b59455 100644 --- a/hsarback/src/de/hsadmin/remote/PgsqlUserRemote.java +++ b/hsarback/src/de/hsadmin/remote/PgsqlUserRemote.java @@ -4,6 +4,7 @@ import java.util.Map; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.core.model.Transaction; +import de.hsadmin.mods.db.DatabaseUser; import de.hsadmin.mods.db.PgSqlUser; public class PgsqlUserRemote extends AbstractRemote { @@ -23,6 +24,11 @@ public class PgsqlUserRemote extends AbstractRemote { map.put("instance", instance); } + @Override + protected Class getAnnotatedEntityClass() { + return DatabaseUser.class; + } + @Override protected Class getEntityClass() { return PgSqlUser.class; diff --git a/hsarback/src/de/hsadmin/remote/PropertyRemote.java b/hsarback/src/de/hsadmin/remote/PropertyRemote.java index 6d924aa..2f84044 100644 --- a/hsarback/src/de/hsadmin/remote/PropertyRemote.java +++ b/hsarback/src/de/hsadmin/remote/PropertyRemote.java @@ -33,7 +33,7 @@ public class PropertyRemote implements IRemote { Object newInstance = remoteClass.newInstance(); if (newInstance instanceof AbstractRemote) { AbstractRemote remote = (AbstractRemote) newInstance; - Class entityClass = remote.getEntityClass(); + Class entityClass = remote.getAnnotatedEntityClass(); for (Field f: entityClass.getDeclaredFields()) { AnnFieldIO fieldIO = f.getAnnotation(AnnFieldIO.class); if (fieldIO != null) {