Index: binary-improvements2/WebServer/src/UrlHandlers/AbsHandler.cs
===================================================================
--- binary-improvements2/WebServer/src/UrlHandlers/AbsHandler.cs	(revision 422)
+++ binary-improvements2/WebServer/src/UrlHandlers/AbsHandler.cs	(revision 426)
@@ -12,5 +12,5 @@
 		protected AbsHandler (string _moduleName, int _defaultPermissionLevel = 0) {
 			moduleName = _moduleName;
-			AdminWebModules.Instance.AddKnownModule (_moduleName, _defaultPermissionLevel);
+			AdminWebModules.Instance.AddKnownModule (new AdminWebModules.WebModule(_moduleName, _defaultPermissionLevel, true));
 		}
 
Index: binary-improvements2/WebServer/src/UrlHandlers/SseHandler.cs
===================================================================
--- binary-improvements2/WebServer/src/UrlHandlers/SseHandler.cs	(revision 422)
+++ binary-improvements2/WebServer/src/UrlHandlers/SseHandler.cs	(revision 426)
@@ -53,5 +53,5 @@
 		public void AddEvent (string _eventName, AbsEvent _eventInstance) {
 			events.Add (_eventName, _eventInstance);
-			AdminWebModules.Instance.AddKnownModule ($"webevent.{_eventName}", _eventInstance.DefaultPermissionLevel ());
+			AdminWebModules.Instance.AddKnownModule (new AdminWebModules.WebModule($"webevent.{_eventName}", _eventInstance.DefaultPermissionLevel (), true));
 		}
 
Index: binary-improvements2/WebServer/src/UrlHandlers/UserStatusHandler.cs
===================================================================
--- binary-improvements2/WebServer/src/UrlHandlers/UserStatusHandler.cs	(revision 422)
+++ binary-improvements2/WebServer/src/UrlHandlers/UserStatusHandler.cs	(revision 426)
@@ -16,4 +16,14 @@
 		private static readonly byte[] jsonAllowedKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("allowed");
 
+		private static readonly byte[][] jsonMethodNameKeys;
+
+		static UserStatusHandler () {
+			jsonMethodNameKeys = new byte[(int)ERequestMethod.Count][];
+			for (int i = 0; i < jsonMethodNameKeys.Length; i++) {
+				ERequestMethod method = (ERequestMethod)i;
+				jsonMethodNameKeys [i] = JsonWriter.GetEncodedPropertyName (method.ToStringCached ());
+			}
+		}
+
 		public override void HandleRequest (RequestContext _context) {
 			WebUtils.PrepareEnvelopedResult (out JsonWriter writer);
@@ -32,8 +42,8 @@
 
 			List<AdminWebModules.WebModule> list = AdminWebModules.Instance.GetModules ();
-			for (int i = 0; i < list.Count; i++) {
-				AdminWebModules.WebModule perm = list [i];
+			for (int iModule = 0; iModule < list.Count; iModule++) {
+				AdminWebModules.WebModule perm = list [iModule];
 				
-				if (i > 0) {
+				if (iModule > 0) {
 					writer.WriteValueSeparator ();
 				}
@@ -43,5 +53,36 @@
 
 				writer.WriteRaw (jsonAllowedKey);
-				writer.WriteBoolean (perm.PermissionLevel >= _context.PermissionLevel);
+				
+				writer.WriteBeginObject ();
+
+				if (perm.LevelPerMethod == null) {
+					writer.WriteRaw (jsonMethodNameKeys [(int)ERequestMethod.GET]);
+					writer.WriteBoolean (perm.LevelGlobal >= _context.PermissionLevel);
+				} else {
+					bool first = true;
+					for (int iMethod = 0; iMethod < perm.LevelPerMethod.Length; iMethod++) {
+						int methodLevel = perm.LevelPerMethod [iMethod];
+						
+						if (methodLevel == AdminWebModules.MethodLevelNotSupported) {
+							continue;
+						}
+
+						if (methodLevel == AdminWebModules.MethodLevelInheritGlobal) {
+							methodLevel = perm.LevelGlobal;
+						}
+
+						if (!first) {
+							writer.WriteValueSeparator ();
+						}
+
+						first = false;
+						
+						writer.WriteRaw (jsonMethodNameKeys [iMethod]);
+						writer.WriteBoolean (methodLevel >= _context.PermissionLevel);
+					}
+				}
+
+				writer.WriteEndObject ();
+				
 
 				writer.WriteEndObject ();
