Added delete key in setting controllers

Change-Id: I82484d0a94d74cf42a68647310e37611e15a62b6
diff --git a/core/src/main/java/de/ids_mannheim/korap/constant/OAuth2Scope.java b/core/src/main/java/de/ids_mannheim/korap/constant/OAuth2Scope.java
index 0d1b280..ffcf431 100644
--- a/core/src/main/java/de/ids_mannheim/korap/constant/OAuth2Scope.java
+++ b/core/src/main/java/de/ids_mannheim/korap/constant/OAuth2Scope.java
@@ -45,7 +45,8 @@
     VC_ACCESS_INFO, 
     
     CREATE_DEFAULT_SETTING, 
-    SETTING_INFO;
+    READ_DEFAULT_SETTING, 
+    DELETE_DEFAULT_SETTING;
 
     @Override
     public String toString () {
diff --git a/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java b/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java
index 5ddf187..888ebb6 100644
--- a/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java
+++ b/core/src/main/java/de/ids_mannheim/korap/user/DataFactory.java
@@ -17,6 +17,8 @@
 import de.ids_mannheim.korap.utils.JsonUtils;
 
 /**
+ * EM: util class
+ * 
  * @author hanl, margaretha
  * @date 27/01/2016
  */
diff --git a/core/src/main/java/de/ids_mannheim/korap/user/User.java b/core/src/main/java/de/ids_mannheim/korap/user/User.java
index 5decd6a..7aa4f57 100644
--- a/core/src/main/java/de/ids_mannheim/korap/user/User.java
+++ b/core/src/main/java/de/ids_mannheim/korap/user/User.java
@@ -37,7 +37,7 @@
     private ParamFields fields;
     @Getter(AccessLevel.PRIVATE)
     @Setter(AccessLevel.PRIVATE)
-    private UserSettings settings;
+    private UserSettingProcessor settings;
     //todo: remove!
     @Getter(AccessLevel.PRIVATE)
     @Setter(AccessLevel.PRIVATE)
diff --git a/core/src/main/java/de/ids_mannheim/korap/user/UserSettings.java b/core/src/main/java/de/ids_mannheim/korap/user/UserSettingProcessor.java
similarity index 75%
rename from core/src/main/java/de/ids_mannheim/korap/user/UserSettings.java
rename to core/src/main/java/de/ids_mannheim/korap/user/UserSettingProcessor.java
index 9bc145d..df11e40 100644
--- a/core/src/main/java/de/ids_mannheim/korap/user/UserSettings.java
+++ b/core/src/main/java/de/ids_mannheim/korap/user/UserSettingProcessor.java
@@ -6,20 +6,20 @@
  * @author hanl, margaretha
  * @date 28/01/2016
  */
-public class UserSettings extends Userdata {
+public class UserSettingProcessor extends Userdata {
 
-    public UserSettings() {
+    public UserSettingProcessor() {
 
     }
 
     @Deprecated
-    public UserSettings(Integer userid) {
+    public UserSettingProcessor(Integer userid) {
         super(userid);
     }
 
     // EM: added
-    public UserSettings(String username) {
-        super(username);
+    public UserSettingProcessor(String data) {
+        super(data);
     }
 
     @Override
diff --git a/core/src/main/java/de/ids_mannheim/korap/user/Userdata.java b/core/src/main/java/de/ids_mannheim/korap/user/Userdata.java
index d0135c8..2d1693e 100644
--- a/core/src/main/java/de/ids_mannheim/korap/user/Userdata.java
+++ b/core/src/main/java/de/ids_mannheim/korap/user/Userdata.java
@@ -16,22 +16,19 @@
  */
 public abstract class Userdata {
 
-    public static DataFactory dataFactory = DataFactory.getFactory();
+    public DataFactory dataFactory = DataFactory.getFactory();
     
+    @Deprecated
     @Getter
     @Setter
     private Integer id;
     @Getter(AccessLevel.PRIVATE)
     private Object data;
+    @Deprecated
     @Getter
     @Setter
     private Integer userId;
     
-    // EM: new
-    @Getter
-    @Setter
-    private String username;
-    
     public Userdata () {
         this(-1);
     }
@@ -44,11 +41,8 @@
         this.data = dataFactory.convertData(null);
     }
 
-    // EM: new
-    public Userdata (String username) {
-        this.username = username;
-        this.id = -1;
-        this.data = dataFactory.convertData(null);
+    public Userdata (String data) {
+        this.data = dataFactory.convertData(data);
     }
 
     public int size () {
@@ -159,7 +153,11 @@
         }
     }
 
-
+    // EM: added
+    public boolean removeField (String field) {
+        return dataFactory.removeValue(this.data, field);
+    }
+    
     public abstract String[] requiredFields ();
 
 
diff --git a/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java b/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
index 122f717..88fde0d 100644
--- a/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
+++ b/core/src/main/java/de/ids_mannheim/korap/web/filter/PiwikFilter.java
@@ -33,7 +33,7 @@
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.security.context.TokenContext;
 import de.ids_mannheim.korap.user.User;
-import de.ids_mannheim.korap.user.UserSettings;
+import de.ids_mannheim.korap.user.UserSettingProcessor;
 import de.ids_mannheim.korap.user.Userdata;
 import net.minidev.json.JSONArray;
 
@@ -137,7 +137,7 @@
                     // since this is cached, not very expensive!
                     User user = authenticationManager.getUser(context.getUsername());
                     Userdata data = authenticationManager
-                            .getUserData(user, UserSettings.class);
+                            .getUserData(user, UserSettingProcessor.class);
                     if ((Boolean) data.get(Attributes.COLLECT_AUDITING_DATA))
                         customVars.put("username", context.getUsername());
                 }