| {
  "security": {
    "permissions": {
      "check_groups":
        "SELECT count(*) FROM airship_perm_rules JOIN airship_perm_contexts ON airship_perm_rules.context = airship_perm_contexts.contextid JOIN airship_perm_actions ON airship_perm_rules.action = airship_perm_actions.actionid WHERE airship_perm_actions.label = :action AND airship_perm_contexts.contextid = :context AND airship_perm_rules.groupid = :group",
      "check_groups_deep":
        "SELECT count(*) FROM airship_perm_rules JOIN airship_perm_contexts ON airship_perm_rules.context = airship_perm_contexts.contextid JOIN airship_perm_actions ON airship_perm_rules.action = airship_perm_actions.actionid WHERE airship_perm_actions.label = :action AND airship_perm_contexts.contextid = :context AND airship_perm_rules.groupid IN (SELECT * FROM group_ancestors(:group))",
      "check_user":
        "SELECT count(*) FROM airship_perm_rules JOIN airship_perm_contexts ON airship_perm_rules.context = airship_perm_contexts.contextid JOIN airship_perm_actions ON airship_perm_rules.action = airship_perm_actions.actionid WHERE airship_perm_actions.label = :action AND airship_perm_contexts.contextid = :context AND airship_perm_rules.userid = :user",
      "check_users_groups":
        "SELECT count(*) FROM airship_perm_rules JOIN airship_perm_contexts ON airship_perm_rules.context = airship_perm_contexts.contextid JOIN airship_perm_actions ON airship_perm_rules.action = airship_perm_actions.actionid WHERE airship_perm_actions.label = :action AND airship_perm_contexts.contextid = :context AND airship_perm_rules.groupid IN (SELECT * FROM memberOf(:user))",
      "get_overlap":
        "SELECT contextid FROM airship_perm_contexts WHERE cabin = ? AND ? ~ locator",
      "get_overlap_with_locator":
        "SELECT contextid, locator FROM airship_perm_contexts WHERE cabin = ? AND ? ~ locator",
      "groups_inherits":
        "SELECT * FROM airship_groups WHERE inherits = ? ORDER BY name ASC",
      "groups_null":
        "SELECT * FROM airship_groups WHERE inherits IS NULL ORDER BY name ASC",
      "groups_qs":
        "SELECT a.label FROM airship_perm_rules r LEFT JOIN airship_perm_contexts c ON r.context = c.contextid LEFT JOIN airship_perm_actions a ON r.action = a.actionid WHERE a.actionid IN {{actionids}} AND c.cabin = ? AND c.contextid = ? AND r.groupid = ? ORDER BY a.actionid ASC",
      "groups_qs_many":
        "SELECT a.label FROM airship_perm_rules r LEFT JOIN airship_perm_contexts c ON r.context = c.contextid LEFT JOIN airship_perm_actions a ON r.action = a.actionid WHERE a.actionid IN {{actionids}} AND c.cabin = ? AND c.contextid IN {{contextids}} AND r.groupid = ? ORDER BY a.actionid ASC",
      "is_superuser_user":
        "SELECT superuser::int FROM airship_users WHERE userid = ?",
      "is_superuser_group":
        "SELECT MAX(superuser::int) FROM airship_groups WHERE groupid IN (SELECT * FROM memberOf(?))",
      "users_list_label":
        "SELECT a.label FROM airship_perm_rules r JOIN airship_perm_actions a ON r.action = a.actionid JOIN airship_perm_contexts c ON r.context = c.contextid LEFT JOIN airship_users u ON r.userid = u.userid WHERE u.userid = ?",
      "users_list_label_contextual":
        "SELECT a.label FROM airship_perm_rules r JOIN airship_perm_actions a ON r.action = a.actionid JOIN airship_perm_contexts c ON r.context = c.contextid LEFT JOIN airship_users u ON r.userid = u.userid WHERE c.contextid = ? AND u.userid = ?",
      "users_list_label_contextual_many":
        "SELECT a.label FROM airship_perm_rules r JOIN airship_perm_actions a ON r.action = a.actionid JOIN airship_perm_contexts c ON r.context = c.contextid LEFT JOIN airship_users u ON r.userid = u.userid WHERE c.contextid IN {{contextids}} AND u.userid = ?",
      "users_list_userids":
        "SELECT DISTINCT userid FROM airship_perm_rules WHERE context = ? AND userid IS NOT NULL",
      "users_list_userids_many":
        "SELECT DISTINCT userid FROM airship_perm_rules WHERE context IN {{contexts}} AND userid IS NOT NULL"
    }
  }
}
 |