{= # # # get_licensing_data.cvf # # include "templates.util.base_util"; include "templates.util.rbac.rbac_util"; include "templates.util.encoding"; include "templates.util.licensing_util"; include "templates.admin_pages.licensing.get_licensing_data_util"; debug_message("\n#### get_licensing_data.cvf \n"); # # Check RBAC permissions # string session_id = volatile.session_id; bool is_root_admin = get_is_root_admin(); string page_token = v.fp.page_token; if ((is_root_admin or get_admin_feature_permission(session_id, "licensing", "view")) and get_is_valid_page_token(session_id, "licensing", page_token)) then ( string licensing_tier = get_licensing_tier(); node licensing = check_licensing(); debug_message("\n\n licensing from check_licensing():\n" . node_as_string(licensing) . "\n"); # Don't use overlay because the expiration value format # of check licensing is different and may cause an # error when using a trial license. # node lai_licenses = "licenses"; # overlay_node(lai_licenses, licensing{"licenses"}); # debug_message("### lai_licenses after overlay with licensing:\n" . node_as_string(lai_licenses) . "\n"); # ToDo - number_of_profiles is not correct when # licenses.cfg contains sublicenses! Please fix # check_licensing() to get correct profiles number. int number_of_profiles = @licensing{"maximum_profiles"}; string number_of_profiles_text; if (number_of_profiles == 0) then ( number_of_profiles_text = "unlimited"; ) else ( number_of_profiles_text = number_of_profiles; ); string licenses_dat = get_licenses_dat(licensing); # # # Response # # string dat = '{'; dat .= add_json("licensingTier", licensing_tier, "string"); dat .= add_json("numberOfProfilesText", number_of_profiles_text, "string"); dat .= add_json("licenses", licenses_dat, "obj"); dat = close_json(dat); debug_message("\n\n#### dat:\n" . dat . "\n\n"); 'licensing.getLicensingDataResponse(' . dat . ')\n'; ) else ( # No permission to access this resource (URL) display_no_permission_html(); ); =}