Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
intranet-core
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project-open
intranet-core
Commits
4f14db43
Commit
4f14db43
authored
Oct 05, 2012
by
Frank Bergmann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- DS Parameter & Privileges:
Created new library for tracing functionality
parent
3f45b3c5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
145 additions
and
0 deletions
+145
-0
intranet-ds-procs.tcl
tcl/intranet-ds-procs.tcl
+145
-0
No files found.
tcl/intranet-ds-procs.tcl
0 → 100644
View file @
4f14db43
# /packages/intranet-core/tcl/intranet-ds-procs.tcl
#
# Copyright (C
)
20012
]
project-open
[
#
# This program is free software. You can redistribute it
# and/or modify it under the terms of the GNU General
# Public License as published by the Free Software Foundation
;
# either version 2 of the License, or (at your option
)
# any later version. This program is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY
;
# without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
ad_library
{
Procedures to write out Developer Support messages
@author frank.bergmann@project-open.com
}
ad_proc -public im_ds_display_config_info
{
}
{
Write out the debugging information
}
{
# Fast exit if not enabled
if
{
!
[
ds_user_switching_enabled_p
]}
{
return
}
# --------------------------------------------
# Write out the list of privileges checked
#
array set privilege_hash
[
nsv_array get privilege_hash
]
set privilege_list
[
list
]
foreach key
[
array
names privilege_hash
]
{
if
{
"request"
==
$key
}
{
continue
}
set value
$privilege
_hash
(
$key
)
set key_elements
[
split
$key
"-"
]
set package_id
[
lindex
$key
_elements 0
]
set privilege
[
lindex
$key
_elements 1
]
set package_name
$package
_id
if
{[
string
is integer
$package
_id
]}
{
set package_name
[
acs_object_name
$package
_id
]
}
lappend privilege_list
"
$package
_name:
$privilege
=
$value
"
}
set privilege_list
[
lsort
$privilege
_list
]
foreach privilege_line
$privilege
_list
{
ds_comment
"Privilege:
$privilege
_line"
}
# --------------------------------------------
# Write out the list of parameters checked:
#
array set parameter_hash
[
nsv_array get parameter_hash
]
set parameter_list
[
list
]
foreach key
[
array
names parameter_hash
]
{
if
{
"request"
==
$key
}
{
continue
}
set value
$parameter
_hash
(
$key
)
set key_elements
[
split
$key
"-"
]
set package_id
[
lindex
$key
_elements 0
]
set parameter
[
lindex
$key
_elements 1
]
set package_name
$package
_id
if
{[
string
is integer
$package
_id
]}
{
set package_name
[
acs_object_name
$package
_id
]
}
lappend parameter_list
"
$package
_name:
$parameter
=
$value
"
}
set parameter_list
[
lsort
$parameter
_list
]
foreach parameter_line
$parameter
_list
{
ds_comment
"Parameter:
$parameter
_line"
}
}
ad_proc -public im_ds_restart_with_new_request
{
}
{
Check if the request has changed and clear up caches before
storing the stuff of the new request
}
{
# Get the current number of this request
global ad_conn
set current_request
""
if
{[
info
exists ad_conn
(
request
)]
}
{
set current_request
$ad
_conn
(
request
)
}
# Get the last request number from the parameter_hash
array set parameter_hash
[
nsv_array get parameter_hash
]
set last_request
""
if
{[
info
exists parameter_hash
(
request
)]}
{
set last_request
$parameter
_hash
(
request
)
}
# ds_comment
"Restart: current_request=
$current
_request, last_request=
$last
_request"
# Reset the parameter_hash both locally and on the NSV thread structure
# ds_comment
"current_request=
$current
_request, last_request=
$last
_request"
if
{
$current
_request !=
$last
_request
}
{
# ds_comment
"Restart: reset"
array unset parameter_hash
set parameter_hash
(
request
)
$current
_request
nsv_array reset parameter_hash
[
list
request
$current
_request
]
nsv_array reset privilege_hash
[
list
]
}
}
ad_proc -public im_ds_comment_parameter
{
-package_id:required
-parameter:required
-result:required
}
{
Write out the results of a parameter call to OpenACS Developer Support
}
{
# Fast exit if not enabled
if
{
!
[
ds_user_switching_enabled_p
]}
{
return
}
# ds_comment
"Parameter: package_id=
$package
_id, parameter=
$parameter
, result=
$result
"
im_ds_restart_with_new_request
# set stack
[
list
]
# for
{
set
i 0
}
{
$i
<=
[
info
level
]}
{
incr
i
}
{
lappend stack
[
info
level
$i
]
}
# ds_comment
"Stack=
[
join
$stack
"
\n
"
]
"
array set parameter_hash
[
nsv_array get parameter_hash
]
set key
"
$package
_id-
$parameter
"
set parameter_hash
(
$key
)
$result
nsv_array set parameter_hash
[
array
get parameter_hash
]
}
ad_proc -public im_ds_comment_privilege
{
-user_id:required
-privilege:required
-result:required
}
{
Write out the results of a parameter call to OpenACS Developer Support
}
{
# Fast exit if not enabled
if
{
!
[
ds_user_switching_enabled_p
]}
{
return
}
# ds_comment
"Permission: user_id=
$user
_id, privilege=
$privilege
, result=
$result
"
im_ds_restart_with_new_request
array set privilege_hash
[
nsv_array get privilege_hash
]
set key
"
$user
_id-
$privilege
"
set privilege_hash
(
$key
)
$result
nsv_array set privilege_hash
[
array
get privilege_hash
]
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment