diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java
index 31ac794..8126182 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java
@@ -28,6 +28,10 @@
     private final String name;
     private final String mac;
 
+    // this is "duplicated" in the URL_FILTER memento, but, oh well...
+    // -- the level, as returned from XOS, when we create this user object.
+    private String level;
+
     private final Map<XosFunctionDescriptor, XosFunction.Memento> mementos =
             new HashMap<XosFunctionDescriptor, XosFunction.Memento>();
 
@@ -37,11 +41,13 @@
      * @param id internal identifier
      * @param name display name
      * @param mac MAC address of the associated device
+     * @param level URL filter level
      */
-    public SubscriberUser(int id, String name, String mac) {
+    public SubscriberUser(int id, String name, String mac, String level) {
         this.id = id;
         this.name = name;
         this.mac = mac;
+        this.level = level;
     }
 
     /**
@@ -72,6 +78,24 @@
     }
 
     /**
+     * Returns the URL filter level.
+     *
+     * @return URL filter level
+     */
+    public String urlFilterLevel() {
+        return level;
+    }
+
+    /**
+     * Sets the URL filter level.
+     *
+     * @param level URL filter level
+     */
+    public void setUrlFilterLevel(String level) {
+        this.level = level;
+    }
+
+    /**
      * Stores a memento for the given XOS function.
      *
      * @param f XOS function
diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java
index 863681c..0c06b10 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/UrlFilterFunction.java
@@ -53,6 +53,10 @@
         if (LEVEL.equals(param)) {
             Level newLevel = Level.valueOf(value.toUpperCase());
             ufMemo.setLevel(newLevel);
+
+            // Also store the (string version) of the level
+            // (not in the memento). Hackish, but that's how it is for now.
+            user.setUrlFilterLevel(value);
         }
     }
 
