• Publicity: Public Only All

acs-permissions-procs.tcl

Tcl procs for the acs permissioning system.

Location:
packages/acs-tcl/tcl/acs-permissions-procs.tcl
Created:
2000-08-17
Author:
rhs@mit.edu
CVS Identification:
$Id: acs-permissions-procs.tcl,v 1.49 2024/09/11 06:15:48 gustafn Exp $

Procedures in this file

Detailed information

permission::cache_flush (public)

 permission::cache_flush [ -party_id party_id ] \
    [ -object_id object_id ] [ -privilege privilege ]

Flush permissions from the cache. Either specify all three parameters or only party_id

Switches:
-party_id (optional)
-object_id (optional)
-privilege (optional)
See Also:

Partial Call Graph (max 5 caller/called nodes):
test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) permission::cache_flush permission::cache_flush test_test_inheritance_and_custom_permissions->permission::cache_flush permission::permission_thread_cache_flush permission::permission_thread_cache_flush (private) permission::cache_flush->permission::permission_thread_cache_flush

Testcases:
test_inheritance_and_custom_permissions

permission::get_parties_with_permission (public)

 permission::get_parties_with_permission -object_id object_id \
    [ -privilege privilege ]

Return a list of lists of party_id and acs_object.title, having a given privilege on the given object

Switches:
-object_id (required)
-privilege (optional, defaults to "admin")
See Also:

Partial Call Graph (max 5 caller/called nodes):
test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) permission::get_parties_with_permission permission::get_parties_with_permission test_test_inheritance_and_custom_permissions->permission::get_parties_with_permission db_list_of_lists db_list_of_lists (public) permission::get_parties_with_permission->db_list_of_lists

Testcases:
test_inheritance_and_custom_permissions

permission::grant (public)

 permission::grant -party_id party_id -object_id object_id \
    -privilege privilege

grant privilege Y to party X on object Z

Switches:
-party_id (required)
-object_id (required)
-privilege (required)

Partial Call Graph (max 5 caller/called nodes):
test_acs_admin_merge_MergeUserInfo acs_admin_merge_MergeUserInfo (test acs-admin) permission::grant permission::grant test_acs_admin_merge_MergeUserInfo->permission::grant test_acs_subsite_expose_bug_775 acs_subsite_expose_bug_775 (test acs-subsite) test_acs_subsite_expose_bug_775->permission::grant test_ad_proc_permission_grant_and_revoke ad_proc_permission_grant_and_revoke (test acs-tcl) test_ad_proc_permission_grant_and_revoke->permission::grant test_ad_proc_permission_permission_p ad_proc_permission_permission_p (test acs-tcl) test_ad_proc_permission_permission_p->permission::grant test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) test_test_inheritance_and_custom_permissions->permission::grant db_exec_plsql db_exec_plsql (public) permission::grant->db_exec_plsql permission::cache_flush permission::cache_flush (public) permission::grant->permission::cache_flush

Testcases:
acs_admin_merge_MergeUserInfo, acs_subsite_expose_bug_775, ad_proc_permission_grant_and_revoke, ad_proc_permission_permission_p, test_inheritance_and_custom_permissions

permission::inherit_p (public)

 permission::inherit_p -object_id object_id

Does this object inherit permissions?

Switches:
-object_id (required)
Returns:
Boolean value expression whether permussions are inherited.

Partial Call Graph (max 5 caller/called nodes):
test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) permission::inherit_p permission::inherit_p test_test_inheritance_and_custom_permissions->permission::inherit_p db_string db_string (public) permission::inherit_p->db_string

Testcases:
test_inheritance_and_custom_permissions

permission::permission_p (public)

 permission::permission_p [ -no_login ] [ -no_cache ] \
    [ -party_id party_id ] -object_id object_id -privilege privilege

Does the provided party have the requested privilege on the given object?

Switches:
-no_login (optional, boolean)
Don't bump to registration to refresh authentication, if the user's authentication is expired. This is specifically required in the case where you're calling this from the proc that gets the login page.
-no_cache (optional, boolean)
force loading from db even if cached (flushes cache as well)
-party_id (optional)
if null then it is the current user_id
-object_id (required)
The object you want to check permissions on.
-privilege (required)
The privilege you want to check for.
Returns:
Boolean value expressing if the user has the required privilege on the given object

Partial Call Graph (max 5 caller/called nodes):
test_acs_admin_merge_MergeUserInfo acs_admin_merge_MergeUserInfo (test acs-admin) permission::permission_p permission::permission_p test_acs_admin_merge_MergeUserInfo->permission::permission_p test_ad_proc_permission_grant_and_revoke ad_proc_permission_grant_and_revoke (test acs-tcl) test_ad_proc_permission_grant_and_revoke->permission::permission_p test_ad_proc_permission_permission_p ad_proc_permission_permission_p (test acs-tcl) test_ad_proc_permission_permission_p->permission::permission_p test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) test_test_inheritance_and_custom_permissions->permission::permission_p acs_object_name acs_object_name (public) permission::permission_p->acs_object_name ad_conn ad_conn (public) permission::permission_p->ad_conn ad_get_tcl_call_stack ad_get_tcl_call_stack (public) permission::permission_p->ad_get_tcl_call_stack ad_login_page ad_login_page (private) permission::permission_p->ad_login_page auth::require_login auth::require_login (public) permission::permission_p->auth::require_login

Testcases:
acs_admin_merge_MergeUserInfo, ad_proc_permission_grant_and_revoke, ad_proc_permission_permission_p, test_inheritance_and_custom_permissions

permission::require_permission (public)

 permission::require_permission [ -party_id party_id ] \
    -object_id object_id -privilege privilege

require that party X have privilege Y on object Z

Switches:
-party_id (optional)
-object_id (required)
-privilege (required)

Partial Call Graph (max 5 caller/called nodes):
ad_conn ad_conn (public) ad_log ad_log (public) ad_return_forbidden ad_return_forbidden (public) ad_script_abort ad_script_abort (public) auth::require_login auth::require_login (public) permission::require_permission permission::require_permission permission::require_permission->ad_conn permission::require_permission->ad_log permission::require_permission->ad_return_forbidden permission::require_permission->ad_script_abort permission::require_permission->auth::require_login

Testcases:
No testcase defined.

permission::require_write_permission (public)

 permission::require_write_permission -object_id object_id \
    [ -creation_user creation_user ] [ -party_id party_id ] \
    [ -action action ]

If the user is not allowed to edit this object, returns a permission denied page.

Switches:
-object_id (required)
-creation_user (optional)
Optionally specify creation_user directly as an optimization. Otherwise a query will be executed.
-party_id (optional)
The party to have or not have write permission.
-action (optional, defaults to "edit")
See Also:

Partial Call Graph (max 5 caller/called nodes):
ad_return_forbidden ad_return_forbidden (public) ad_script_abort ad_script_abort (public) permission::write_permission_p permission::write_permission_p (public) permission::require_write_permission permission::require_write_permission permission::require_write_permission->ad_return_forbidden permission::require_write_permission->ad_script_abort permission::require_write_permission->permission::write_permission_p

Testcases:
No testcase defined.

permission::revoke (public)

 permission::revoke -party_id party_id -object_id object_id \
    -privilege privilege

revoke privilege Y from party X on object Z

Switches:
-party_id (required)
-object_id (required)
-privilege (required)

Partial Call Graph (max 5 caller/called nodes):
test_ad_proc_permission_grant_and_revoke ad_proc_permission_grant_and_revoke (test acs-tcl) permission::revoke permission::revoke test_ad_proc_permission_grant_and_revoke->permission::revoke test_ad_proc_permission_permission_p ad_proc_permission_permission_p (test acs-tcl) test_ad_proc_permission_permission_p->permission::revoke db_exec_plsql db_exec_plsql (public) permission::revoke->db_exec_plsql permission::cache_flush permission::cache_flush (public) permission::revoke->permission::cache_flush

Testcases:
ad_proc_permission_grant_and_revoke, ad_proc_permission_permission_p

permission::set_inherit (public)

 permission::set_inherit -object_id object_id

set inherit to true

Switches:
-object_id (required)

Partial Call Graph (max 5 caller/called nodes):
test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) permission::set_inherit permission::set_inherit test_test_inheritance_and_custom_permissions->permission::set_inherit db_dml db_dml (public) permission::set_inherit->db_dml permission::permission_thread_cache_flush permission::permission_thread_cache_flush (private) permission::set_inherit->permission::permission_thread_cache_flush

Testcases:
test_inheritance_and_custom_permissions

permission::set_not_inherit (public)

 permission::set_not_inherit -object_id object_id

set inherit to false

Switches:
-object_id (required)

Partial Call Graph (max 5 caller/called nodes):
test_fs_publish_file fs_publish_file (test file-storage) permission::set_not_inherit permission::set_not_inherit test_fs_publish_file->permission::set_not_inherit test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) test_test_inheritance_and_custom_permissions->permission::set_not_inherit db_dml db_dml (public) permission::set_not_inherit->db_dml permission::permission_thread_cache_flush permission::permission_thread_cache_flush (private) permission::set_not_inherit->permission::permission_thread_cache_flush

Testcases:
test_inheritance_and_custom_permissions, fs_publish_file

permission::toggle_inherit (public)

 permission::toggle_inherit -object_id object_id

toggle whether or not this object inherits permissions from its parent

Switches:
-object_id (required)

Partial Call Graph (max 5 caller/called nodes):
test_test_inheritance_and_custom_permissions test_inheritance_and_custom_permissions (test acs-tcl) permission::toggle_inherit permission::toggle_inherit test_test_inheritance_and_custom_permissions->permission::toggle_inherit db_dml db_dml (public) permission::toggle_inherit->db_dml permission::permission_thread_cache_flush permission::permission_thread_cache_flush (private) permission::toggle_inherit->permission::permission_thread_cache_flush

Testcases:
test_inheritance_and_custom_permissions

permission::write_permission_p (public)

 permission::write_permission_p -object_id object_id \
    [ -party_id party_id ] [ -creation_user creation_user ]

Returns whether a party is allowed to edit an object. The logic is that this party must have either write permission, or it must be the one who created the object.

Switches:
-object_id (required)
The object you want to check write permissions for.
-party_id (optional)
The party to have or not have write permission.
-creation_user (optional)
Optionally specify creation_user directly as an optimization. Otherwise a query will be executed.
Returns:
Boolean value expressing if the user has permission to edit the object
See Also:

Partial Call Graph (max 5 caller/called nodes):
acs_object::get_element acs_object::get_element (public) ad_conn ad_conn (public) permission::permission_p permission::permission_p (public) permission::write_permission_p permission::write_permission_p permission::write_permission_p->acs_object::get_element permission::write_permission_p->ad_conn permission::write_permission_p->permission::permission_p

Testcases:
No testcase defined.
[ show source ]