{= # # # # Get Roles data # # # include "templates.util.base_util"; include "templates.util.rbac.rbac_util"; include "templates.util.encoding"; include "templates.admin_pages.roles.get_data_util"; string session_id = volatile.session_id; bool is_root_admin = get_is_root_admin(); string page_token = v.fp.page_token; # # Check RBAC permissions # if ((is_root_admin or get_admin_feature_permission(session_id, "roles", "view")) and get_is_valid_page_token(session_id, "roles", page_token)) then ( string licensing_tier = get_licensing_tier(); bool is_enterprise = (licensing_tier eq "enterprise"); node the_roles = if (!is_enterprise) then ("roles_standard") else ("roles_enterprise"); node users = "users"; string active_user_node_name = node_name(@("volatile.authenticated_user_node_path")); string users_dat = get_users_dat(users); # # # # # Handle the feature map # # # # # # Create a final feature map from the default feature map # node feature_map = build_roles_feature_map(); # # Create the feature map for javascript # string feature_map_dat = build_roles_feature_map_dat(feature_map); # # # # # Add the field categories to the feature_map # if any field_category is rbac enabled # # # # # # # # # Get roles data # # # # string roles_db_dat; if (num_subnodes(the_roles) > 0) then ( # Create roles_db_dat # debug_message("\n\n" . node_as_string("the_roles") . "\n\n"); roles_db_dat = create_roles_db_dat(the_roles, feature_map, is_enterprise, active_user_node_name); ) else ( # No role exists roles_db_dat = "[]"; ); # # # # Get scheduler actions for the Scheduler Details list # # # string scheduler_actions_dat = "["; node action; node scheduler_actions = "templates.util.list_structures.scheduler_actions"; sort(scheduler_actions, "field:label,alphabetical,ascending"); # string action_dat; foreach action scheduler_actions ( scheduler_actions_dat .= "{"; scheduler_actions_dat .= add_json("name", node_name(action), "string"); scheduler_actions_dat .= add_json("label", expand(@action{"label"}), "string"); scheduler_actions_dat = close_json(scheduler_actions_dat) . ","; ); scheduler_actions_dat = replace_last(scheduler_actions_dat, ",", "]"); # # # # Get roles which are used in users # # # string roles_used_in_users_dat = get_roles_used_in_users_dat(users); debug_message("\n#### feature_map_dat:\n" . feature_map_dat . "\n\n"); debug_message("\n#### roles_db_dat:\n" . roles_db_dat . "\n\n"); debug_message("\n#### scheduler_actions_dat:\n" . scheduler_actions_dat . "\n\n"); debug_message("\n#### roles_used_in_users_dat:\n" . roles_used_in_users_dat . "\n\n"); string dat = "{"; dat .= add_json("activeUserNodeName", active_user_node_name, "string"); dat .= add_json("usersDb", users_dat, "obj"); dat .= add_json("featureMap", feature_map_dat, "obj"); dat .= add_json("rolesDb", roles_db_dat, "obj"); dat .= add_json("schedulerActionsDb", scheduler_actions_dat, "obj"); dat .= add_json("rolesUsedInUsersDb", roles_used_in_users_dat, "obj"); dat = close_json(dat); # # # Send Response # # "getRolesDataResponse(" . dat . ")"; ) else ( # No permission to view this resource (URL) display_no_permission_html(); ); =}