public Result fromJSON(JSONObject json, int version) {
		try {
			if(version > Privileges.JSON_VERSION)
				return IJson.Result.OUTDATED_APP;
			
			Result tResult = super.fromJSON(json, version);
			if(tResult.hasFailed())
				return tResult;
			
			if(version >= 1) {
				setDisplayName(json.optString("display_name"));
				setSuperGroup(json.optString("inherits_from"));
			}
			
			String tBasicGroup = json.optString("basic_priv");
			basicGroup = null;
			if(tBasicGroup != null) {
				tBasicGroup = tBasicGroup.toUpperCase();
				BasicPrivGroup values[] = BasicPrivGroup.values();
				for(BasicPrivGroup value: values) {
					if(value.toString().equals(tBasicGroup)) {
						basicGroup = value;
						break;
					}
				}
			}
			
			if(version < Privileges.JSON_VERSION)
				return IJson.Result.OUTDATED_FORMAT;
			
			return IJson.Result.SUCCESS;
		}
		catch(Exception e) {
			e.printStackTrace();
			return IJson.Result.FAILURE;
		}
	}