ad_scope_sql

one of the documented procedures in this installation of the ACS
Usage:
ad_scope_sql   { table_name "" }
What it does:
if scope is not set in the topmost environment then public scope is assumed. if scope=group it assumes group_id is set in the topmost environment, if scope=user it assumes that user_id is set in topmost environment and if scope=table it assumes on_which_table and on_what_id are set in topmost environment. ad_scope_sql returns portion of sql query resolving scope. e.g. if scope=group this proc will return scope=group and group_id=. to avoid naming conflicts you may specify a table name (or table alias name) of the table for which we are checking the scope. (e.g if table_name=news, then nnews.scope will be used instead of just scope)
Defined in: /web/philip/tcl/ad-scope.tcl

Source code:


    if { [uplevel [ad_scope_upvar_level] {info exists scope}] } {
	upvar [ad_scope_upvar_level] scope scope
    } else {
	set scope public
    }

    if { [empty_string_p $table_name] } {
	switch $scope {
	    public {
		return "scope='public'"
	    }
	    
	    group {
		upvar [ad_scope_upvar_level] group_id group_id
		return "scope='group' and group_id=$group_id"
	    }
	    
	    user {
		upvar [ad_scope_upvar_level] user_id user_id
		return "scope='user' and user_id=$user_id"
	    }
	    table {
		upvar [ad_scope_upvar_level] on_which_table on_which_table
		upvar [ad_scope_upvar_level] on_what_id on_what_id
		return "scope='table' and on_which_table='$on_which_table' and on_what_id=$on_what_id"
	    }
	}
    } else {
	switch $scope {
	    public {
		return "$table_name\.scope='public'"
	    }
	    
	    group {
		upvar [ad_scope_upvar_level] group_id group_id
		return "$table_name\.scope='group' and $table_name\.group_id=$group_id"
	    }
	    
	    user {
		upvar [ad_scope_upvar_level] user_id user_id
		return "$table_name\.scope='user' and $table_name\.user_id=$user_id"
	    }
	    table {
		upvar [ad_scope_upvar_level] on_which_table on_which_table
		upvar [ad_scope_upvar_level] on_what_id on_what_id
		return "$table_name\.scope='table' and 
		$table_name\.on_which_table='$on_which_table' 
		and $table_name\.on_what_id=$on_what_id"
	    }
	}
    }


philg@mit.edu