Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 Problems running SQL 2000 script on a 2005 Server

Author  Topic 

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 02:34:35
Hi all,

I am not an expert in SQL programming, so I need your support:

There is a script available from Microsoft, that will do some changes in an existing SQL database. The problem is that they used an SQL 2000 server environment, the tool was released by Microsoft by end of 2004.

Running the query in my SQL Server 2005 environment, it produces the following error:
Msg 207, Level 16, State 1, Procedure MSP_PDS_ER_ReadResources, Line 9
Invalid column name 'wres_is_enabled".

Msg 15151, Level 16, State 1, Line 2
Cannot find the object "MSP_PDS_ER_ReadRessources', because it does not exist or you do not have permission.
I already googled around and found that the problem is always due to the migration from 2000 to 2005, and that the query misunderstoods somehow a delimiter.

Can you support me by providing the correct sql query for the sql 2005 database ?

The tool is used for MS Project Server 2003, follow the link below:
http://office.microsoft.com/en-us/projservadmin/HA011642771033.aspx

I inserted the complete query below.

Thanks in advance,

Michael



-----------------------------------
-- PDS EffectiveRights Extension --
-----------------------------------
/* Drop Query PDS ER 27101 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetStringCountForLCID')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_GetStringCountForLCID
GO

/* Create Query PDS ER 27101 */
CREATE procedure dbo.MSP_PDS_ER_GetStringCountForLCID
@p0 INT
AS
SELECT COUNT(*) from MSP_WEB_CONVERSIONS where LANG_ID=@p0
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_GetStringCountForLCID TO MSProjectServerRole
GO


-----------------------------------
/* Drop Query PDS ER 27102 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadSingleUser')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadSingleUser
GO

/* Create Query PDS ER 27102 */
CREATE PROCEDURE dbo.MSP_PDS_ER_ReadSingleUser
@username nvarchar(510),
@userid INT
AS
SELECT WRES_ID, WRES_GUID, RES_NAME
from MSP_WEB_RESOURCES
where WRES_CAN_LOGIN = 1
and WRES_COUNT_LICENSE = 1
and ((@userid <=0) or (WRES_ID = @userid ))
and ((LEN(@username) = 0) or (@username = RES_NAME))
order by RES_NAME
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadSingleUser TO MSProjectServerRole
GO




-----------------------------------
/* Drop Query PDS ER 27103 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadResources')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadResources
GO

/* Create Query PDS ER 27103 */
CREATE PROCEDURE dbo.MSP_PDS_ER_ReadResources
@resname nvarchar(510),
@resid int
AS
SELECT WRES_ID, RES_NAME
from MSP_WEB_RESOURCES
where wres_is_enabled = 1
and ((Len(@resname)=0) or (RES_NAME=@resname))
and ((@resid<=0) or (WRES_ID=@resid))
order by RES_NAME
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadResources TO MSProjectServerRole
GO




-----------------------------------
/* Drop Query PDS ER 27104 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadProjects')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadProjects
GO

/* Create Query PDS ER 27104 */
CREATE PROCEDURE dbo.MSP_PDS_ER_ReadProjects
@projname varchar(510),
@projid int
AS
select WPROJ_ID, PROJ_NAME
From MSP_WEB_PROJECTS
Where WPROJ_TYPE<3 and WPROJ_DEFAULT_WPROJ_ID=WPROJ_ID
and ((Len(@projname)=0) or (PROJ_NAME=@projname))
and ((@projid<=0) or (WPROJ_ID=@projid))
order by WPROJ_ID
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadProjects TO MSProjectServerRole
GO

--exec MSP_PDS_ER_ReadProjects N'100X DVD Drive',103

-----------------------------------
/* Drop Query PDS ER 27105 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadPermissionsForGroup')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadPermissionsForGroup
GO

/* Create Query PDS ER 27105 */
CREATE procedure dbo.MSP_PDS_ER_ReadPermissionsForGroup
@sGroupGUID NVARCHAR(64),
@nLCID int
AS
select SCP.WSEC_FEA_ACT_ID,
CV.CONV_STRING as WSEC_FEA_ACT_NAME,
SCP.WSEC_ALLOW,
SCP.WSEC_DENY
from MSP_WEB_SECURITY_SP_CAT_PERMISSIONS SCP,
MSP_WEB_SECURITY_SP_CAT_RELATIONS SCR ,
MSP_WEB_CONVERSIONS CV,
MSP_WEB_SECURITY_FEATURES_ACTIONS FA
where SCR.WSEC_SP_GUID = @sGroupGUID
and SCR.WSEC_CAT_ID = 0
and SCR.WSEC_REL_ID = SCP.WSEC_REL_ID
and SCP.WSEC_FEA_ACT_ID = FA.WSEC_FEA_ACT_ID
and FA.WSEC_FEA_ACT_NAME_ID=CV.CONV_VALUE
and CV.LANG_ID=@nLCID
order by SCP.WSEC_FEA_ACT_ID

RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadPermissionsForGroup TO MSProjectServerRole
GO





-----------------------------------
/* Drop Query PDS ER 27106 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadCategoriesForGroup')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadCategoriesForGroup
GO

/* Create Query PDS ER 27106 */
CREATE procedure dbo.MSP_PDS_ER_ReadCategoriesForGroup
@sGroupGUID NVARCHAR(64)
AS
select SC.*
from MSP_WEB_SECURITY_SP_CAT_RELATIONS SCR,
MSP_WEB_SECURITY_CATEGORIES SC
where SCR.WSEC_SP_GUID = @sGroupGUID
and SCR.WSEC_CAT_ID = SC.WSEC_CAT_ID
order by SC.WSEC_CAT_NAME
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadCategoriesForGroup TO MSProjectServerRole
GO




-----------------------------------
/* Drop Query PDS ER 27107 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadCategoryPermissionsForGroup')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadCategoryPermissionsForGroup
GO

/* Create Query PDS ER 27107 */
CREATE procedure dbo.MSP_PDS_ER_ReadCategoryPermissionsForGroup
@sGroupGUID NVARCHAR(64)
AS
select SCR.WSEC_CAT_ID,
SCP.WSEC_FEA_ACT_ID,
SCP.WSEC_ALLOW,
SCP.WSEC_DENY
from MSP_WEB_SECURITY_SP_CAT_PERMISSIONS SCP,
MSP_WEB_SECURITY_SP_CAT_RELATIONS SCR,
MSP_WEB_SECURITY_FEATURES_ACTIONS FA
where SCR.WSEC_SP_GUID = @sGroupGUID
and SCR.WSEC_CAT_ID<>0
and SCR.WSEC_REL_ID = SCP.WSEC_REL_ID
and SCP.WSEC_FEA_ACT_ID = FA.WSEC_FEA_ACT_ID
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadCategoryPermissionsForGroup TO MSProjectServerRole
GO

-- exec MSP_PDS_ER_ReadCategoryPermissionsForGroup N'{A9980F42-1D06-485B-A9BB-ED6DC040B268}'




-----------------------------------
/* Query PDS ER 27108 */
-- is a call to MSP_WEB_SP_QRY_GetAllCategories




-----------------------------------
/* Drop Query PDS ER 27109 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadObjectRulesForCategory')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadObjectRulesForCategory
GO

/* Create Query PDS ER 27109 */
CREATE procedure dbo.MSP_PDS_ER_ReadObjectRulesForCategory
@nCatID int,
@nResOrProj int -- 1 is project rules, 2 is resource rules
AS
select WSEC_OBJ_RULE_TYPE
from MSP_WEB_SECURITY_CATEGORY_RULES
where WSEC_CAT_ID = @nCatID
and WSEC_OBJ_TYPE = @nResOrProj
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadObjectRulesForCategory TO MSProjectServerRole
GO







-----------------------------------
/* Drop Query PDS ER 27110 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadSpecialResourcesForCategory')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadSpecialResourcesForCategory
GO

/* Create Query PDS ER 27110 */
CREATE procedure dbo.MSP_PDS_ER_ReadSpecialResourcesForCategory
@nCatID int
AS
select WRES_ID, RES_NAME
from MSP_WEB_SECURITY_CATEGORY_OBJECTS,
MSP_WEB_RESOURCES
where WSEC_CAT_ID = @nCatID
and WSEC_OBJ_TYPE = 2
and WSEC_OBJ_ID = WRES_ID
and NOT (WRES_IS_ENABLED=0 and WRES_CAN_LOGIN=0 and WRES_COUNT_LICENSE=0 and RES_EUID IS NULL)
Order By RES_NAME
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadSpecialResourcesForCategory TO MSProjectServerRole
GO






-----------------------------------
/* Drop Query PDS ER 27111 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadProjectsInCategory')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadProjectsInCategory
GO

/* Create Query PDS ER 27111 */
CREATE procedure dbo.MSP_PDS_ER_ReadProjectsInCategory
@nCatID int
AS
select P.WPROJ_ID,
P.PROJ_NAME
from MSP_WEB_PROJECTS P
INNER JOIN MSP_WEB_SECURITY_CATEGORY_OBJECTS O
ON O.WSEC_OBJ_ID = P.WPROJ_ID
Where O.WSEC_OBJ_TYPE = 1
and O.WSEC_CAT_ID = @nCatID
Order By PROJ_NAME
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadProjectsInCategory TO MSProjectServerRole
GO




-----------------------------------
/* Query PDS ER 27112 */
-- is the same as 27109




-----------------------------------
/* Drop Query PDS ER 27113 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadCategoriesForUser')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadCategoriesForUser
GO

/* Create Query PDS ER 27113 */
CREATE procedure dbo.MSP_PDS_ER_ReadCategoriesForUser
@sUserGUID NVARCHAR(64)
AS
select SC.*
from MSP_WEB_SECURITY_SP_CAT_RELATIONS SCR,
MSP_WEB_SECURITY_CATEGORIES SC
where SCR.WSEC_SP_GUID = @sUserGUID
and SCR.WSEC_CAT_ID = SC.WSEC_CAT_ID
order by SC.WSEC_CAT_ID
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadCategoriesForUser TO MSProjectServerRole
GO







-----------------------------------
/* Drop Query PDS ER 27114 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadPermissionsForUser')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadPermissionsForUser
GO

/* Create Query PDS ER 27114 */
CREATE procedure dbo.MSP_PDS_ER_ReadPermissionsForUser
@sUserGUID NVARCHAR(64),
@nLCID int
AS
select SCR.WSEC_CAT_ID,
CV.CONV_STRING as WSEC_FEA_ACT_NAME,
SCP.WSEC_FEA_ACT_ID,
SCP.WSEC_ALLOW,
SCP.WSEC_DENY
from MSP_WEB_SECURITY_SP_CAT_PERMISSIONS SCP,
MSP_WEB_SECURITY_SP_CAT_RELATIONS SCR,
MSP_WEB_SECURITY_FEATURES_ACTIONS FA,
MSP_WEB_CONVERSIONS CV
where SCR.WSEC_SP_GUID = @sUserGUID
and SCR.WSEC_CAT_ID<>0
and SCR.WSEC_REL_ID = SCP.WSEC_REL_ID
and SCP.WSEC_FEA_ACT_ID = FA.WSEC_FEA_ACT_ID
and FA.WSEC_FEA_ACT_NAME_ID=CV.CONV_VALUE
and CV.LANG_ID= @nLCID
order by WSEC_FEA_ACT_NAME

RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadPermissionsForUser TO MSProjectServerRole
GO




-----------------------------------
/* Drop Query PDS ER 27115 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_ReadPermissions')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_ReadPermissions
GO

/* Create Query PDS ER 27115 */
CREATE procedure dbo.MSP_PDS_ER_ReadPermissions
@nLCID int
AS
select OP.*, CV.CONV_STRING as WSEC_FEA_ACT_NAME , FA.WSEC_ON_OBJECT, FA.WSEC_FEA_ACT_PARENT, FA.WSEC_OBJ_TYPE_ID
from MSP_WEB_SECURITY_ORG_PERMISSIONS OP,
MSP_WEB_SECURITY_FEATURES_ACTIONS FA,
MSP_WEB_CONVERSIONS CV
where OP.WSEC_FEA_ACT_ID = FA.WSEC_FEA_ACT_ID
and FA.WSEC_FEA_ACT_NAME_ID=CV.CONV_VALUE
and CV.LANG_ID=@nLCID
order by OP.WSEC_FEA_ACT_ID
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_ReadPermissions TO MSProjectServerRole
GO





-----------------------------------
/* Drop Query PDS ER 27116 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetProjectsManagedByUser')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_GetProjectsManagedByUser
GO

/* Create Query PDS ER 27116 */
CREATE procedure dbo.MSP_PDS_ER_GetProjectsManagedByUser
@nUserID int
AS -- (SQL code lifted from MSP_WEB_FN_SEC_GetAllProjectsResCanViewByViewID)

(
select WPROJ_ID
from MSP_WEB_PROJECTS
where WRES_ID = @nUserID
and WPROJ_IS_NONWORKING=0
and WPROJ_TYPE<>3
)
union
(
select WA.WPROJ_ID
from MSP_WEB_ASSIGNMENTS WA,
MSP_WEB_PROJECTS WP
where WA.WRES_ID_MGR=@nUserID
and WA.WPROJ_ID=WP.WPROJ_ID
and WP.WPROJ_IS_NONWORKING=0
and WP.WPROJ_TYPE<>3
)
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_GetProjectsManagedByUser TO MSProjectServerRole
GO



-----------------------------------
/* Drop Query PDS ER 27117 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetProjectsAssignedToUser')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_GetProjectsAssignedToUser
GO

/* Create Query PDS ER 27117 */
CREATE procedure dbo.MSP_PDS_ER_GetProjectsAssignedToUser
@nUserID int
AS -- (SQL code lifted from MSP_WEB_FN_SEC_GetAllProjectsResCanViewByViewID)
(
select A.WPROJ_ID
from MSP_WEB_ASSIGNMENTS A,
MSP_WEB_PROJECTS P
where A.WRES_ID= @nUserID
and A.WPROJ_ID=P.WPROJ_ID
and P.WPROJ_IS_NONWORKING=0
and P.WPROJ_TYPE<>3
)
union
(
select WP.WPROJ_ID
from MSP_RESOURCES ER
INNER JOIN MSP_WEB_RESOURCES WR ON (WR.WRES_ID=@nUserID and WR.RES_EUID=ER.RES_EUID)
INNER JOIN MSP_WEB_PROJECTS WP ON (ER.PROJ_ID=WP.PROJ_ID)
)
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_GetProjectsAssignedToUser TO MSProjectServerRole
GO



-----------------------------------
/* Drop Query PDS ER 27118 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetProjectsManagedByUserDirectReports')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_GetProjectsManagedByUserDirectReports
GO

/* Create Query PDS ER 27118 */
CREATE procedure dbo.MSP_PDS_ER_GetProjectsManagedByUserDirectReports
@nUserID int
AS -- (SQL code lifted from MSP_WEB_FN_SEC_GetAllProjectsResCanViewByViewID)

(
select WPROJ_ID
from MSP_WEB_PROJECTS
where WPROJ_IS_NONWORKING=0
and WPROJ_TYPE<>3
and WRES_ID in (
select WRES_ID from dbo.MSP_WEB_FN_SEC_GetResourcesManagedByResID(@nUserID, 0, -1)
)
)
UNION
(
select WA.WPROJ_ID
from MSP_WEB_ASSIGNMENTS WA,
MSP_WEB_PROJECTS WP
where WA.WPROJ_ID=WP.WPROJ_ID
and WP.WPROJ_IS_NONWORKING=0
and WP.WPROJ_TYPE<>3
and WA.WRES_ID_MGR in (
select WRES_ID from dbo.MSP_WEB_FN_SEC_GetResourcesManagedByResID(@nUserID, 0, -1)
)
)
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_GetProjectsManagedByUserDirectReports TO MSProjectServerRole
GO



-----------------------------------
/* Drop Query PDS ER 27119 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetProjectsAssignedToUserDirectReports')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_GetProjectsAssignedToUserDirectReports
GO

/* Create Query PDS ER 27119 */
CREATE procedure dbo.MSP_PDS_ER_GetProjectsAssignedToUserDirectReports
@nUserID int
AS -- (SQL code lifted from MSP_WEB_FN_SEC_GetAllProjectsResCanViewByViewID)
(
select A.WPROJ_ID
from MSP_WEB_ASSIGNMENTS A,
MSP_WEB_PROJECTS P
where A.WPROJ_ID=P.WPROJ_ID
and P.WPROJ_IS_NONWORKING=0
and P.WPROJ_TYPE<>3
and A.WRES_ID in (
select WRES_ID from dbo.MSP_WEB_FN_SEC_GetResourcesManagedByResID(@nUserID , 0, -1)
)
)
UNION
(
select WP.WPROJ_ID
from MSP_WEB_PROJECTS WP,
MSP_WEB_RESOURCES WR,
MSP_RESOURCES ER
where ER.PROJ_ID=WP.PROJ_ID
and WR.RES_EUID=ER.RES_EUID
and WR.WRES_ID in (
select WRES_ID from dbo.MSP_WEB_FN_SEC_GetResourcesManagedByResID(@nUserID , 0, -1)
)
)

RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_GetProjectsAssignedToUserDirectReports TO MSProjectServerRole
GO




-----------------------------------
/* Drop Query PDS ER 27120 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetResourcesUserAssignsTasksTo')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_GetResourcesUserAssignsTasksTo
GO

/* Create Query PDS ER 27120 */
CREATE procedure dbo.MSP_PDS_ER_GetResourcesUserAssignsTasksTo
@nUserID int
AS
select distinct WRES_ID from MSP_WEB_ASSIGNMENTS where WRES_ID_MGR=@nUserID and WRES_ID<>-1
union
select distinct WR.WRES_ID
from MSP_WEB_PROJECTS WP INNER JOIN MSP_RESOURCES ER ON (WP.PROJ_ID=ER.PROJ_ID and ER.RES_EUID IS NOT NULL)
INNER JOIN MSP_WEB_RESOURCES WR ON (ER.RES_EUID=WR.RES_EUID)
where WP.WRES_ID=@nUserID or WP.WPROJ_ID in (
select WP2.WPROJ_ID
from MSP_WEB_PROJECTS WP2 INNER JOIN MSP_WEB_ASSIGNMENTS WA on WA.WPROJ_ID=WP2.WPROJ_ID
where WA.WRES_ID_MGR=@nUserID)
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_GetResourcesUserAssignsTasksTo TO MSProjectServerRole
GO




-----------------------------------
/* Drop Query PDS ER 27121 */
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetResourcesAndDirectReportsOfUser')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE dbo.MSP_PDS_ER_GetResourcesAndDirectReportsOfUser
GO

/* Create Query PDS ER 27121 */
CREATE procedure dbo.MSP_PDS_ER_GetResourcesAndDirectReportsOfUser
@nUserID int,
@nMaxLevel int
AS
SELECT WRES_ID from MSP_WEB_FN_SEC_GetResourcesManagedByResID(@nUserID, 0, @nMaxLevel)
RETURN
GO

GRANT EXECUTE ON dbo.MSP_PDS_ER_GetResourcesAndDirectReportsOfUser TO MSProjectServerRole
GO


-----------------------------------
/* Update Query PDS ER */
-- Set the object types for the object level permissions
-- that apply to projects to 1 and resources to 2
update MSP_WEB_SECURITY_FEATURES_ACTIONS set WSEC_OBJ_TYPE_ID=1 where WSEC_FEA_ACT_ID in (213,508,509,512,781,1012,1013,1019)
update MSP_WEB_SECURITY_FEATURES_ACTIONS set WSEC_OBJ_TYPE_ID=2 where WSEC_FEA_ACT_ID in (212,510,513,1014,1015,1020)


visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 02:39:22
Do you have wres_is_enabled column in table MSP_WEB_RESOURCES?
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 02:42:30
Yes, I have.
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 02:43:22
also use
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME = 'MSP_PDS_ER_GetResourcesAndDirectReportsOfUser'
AND ROUTINE_TYPE='PROCEDURE'
AND ROUTINE_SCHEMA='dbo')

instead of
IF EXISTS (SELECT id FROM dbo.sysobjects WHERE id = OBJECT_ID(N'dbo.MSP_PDS_ER_GetResourcesAndDirectReportsOfUser')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 02:45:34
Do you mean that I should edit and replace the relevant parts of the script, as you described above ?
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 02:50:21
quote:
Originally posted by MichaelLehzen

Do you mean that I should edit and replace the relevant parts of the script, as you described above ?


yup try it. sysobject is a system table which was available in sql 2000. now it has been made into compatibility view and books online recommends not to use it.
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 02:53:54
o.k., I will try. It will take some time, so I will be back in a few minutes ...
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 02:55:50
quote:
Originally posted by MichaelLehzen

o.k., I will try. It will take some time, so I will be back in a few minutes ...


No probs..let us know how you got on.
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 03:24:51
I exchanged all statements within the file, without success. The error message is still the same.
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 03:28:37
quote:
Originally posted by MichaelLehzen

I exchanged all statements within the file, without success. The error message is still the same.


you still didnt answer my first question


Do you have wres_is_enabled column in table MSP_WEB_RESOURCES?
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 03:30:06
I did (my first reply). The answer is: Yes, I have this column in the table.
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 03:38:18
quote:
Originally posted by MichaelLehzen

I did (my first reply). The answer is: Yes, I have this column in the table.


Sorry i missed it. In that case i dont think it should error. The error is basically telling that it cant find column in table.
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 03:48:09
Also what is the collation setting for your db? are you using some case sensitive collation?
Go to Top of Page

SwePeso
Patron Saint of Lost Yaks

30421 Posts

Posted - 2008-10-01 : 03:48:24
quote:
Originally posted by MichaelLehzen

Msg 207, Level 16, State 1, Procedure MSP_PDS_ER_ReadResources, Line 9
Invalid column name 'wres_is_enabled".

Msg 15151, Level 16, State 1, Line 2
Cannot find the object "MSP_PDS_ER_ReadRessources', because it does not exist or you do not have permission.


In your script, I can't find the misspelled object MSP_PDS_ER_ReadRessources (double s).
The error message says there is a misspelled name somewhere, but I can't find it.


E 12°55'05.63"
N 56°04'39.26"
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 03:53:27
Peso: Sorry, this was a typo introduced by myself. I did not copy the text using Clipboard.

The original message is only with one s, "MSP_PDS_ER_ReadResources".
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 03:55:34
visakh16:
Collation for the database is set to German_Phonebook_BIN
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-10-01 : 04:13:50
quote:
Originally posted by MichaelLehzen

visakh16:
Collation for the database is set to German_Phonebook_BIN



i think its case sensitive can you replace the code like this and try

CREATE PROCEDURE dbo.MSP_PDS_ER_ReadResources
@resname nvarchar(510),
@resid int
AS
SELECT WRES_ID, RES_NAME
from MSP_WEB_RESOURCES
where WRES_IS_ENABLED wres_is_enabled = 1
and ((Len(@resname)=0) or (RES_NAME=@resname))
and ((@resid<=0) or (WRES_ID=@resid))
order by RES_NAME
RETURN
GO
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 05:06:00
That's it !!
This problem has been solved.
Now I have a new one, but this is due to another reason (an asp cannot be displayed, I expect the same issue is hidden in the asp source code delivered by Microsoft :-(

Thank you for your support.
Best regards,
Michael =:-))
Go to Top of Page

MichaelLehzen
Starting Member

10 Posts

Posted - 2008-10-01 : 05:13:38
Back again.
I had a look into the asp-source, and I think the problem is related to the sql query strings. I think the format of the query strings has to be changed somehow.
Can you support me ? Should I open a new thread for this issue ?
-----

Source of the Microsofts asp:

<!-- #include virtual="/ProjectServer/Library/CommonIncTop.asp" -->
<!-- #include virtual="/ProjectServer/Shell/Shell.asp" -->
<!-- #include virtual="/ProjectServer/Library/PDSXML.asp" -->
<!-- #include virtual="/ProjectServer/Library/grid.asp" -->
<!-- #include virtual="/ProjectServer/Library/CommonControls.asp" -->

<!-- ---------------------------------------------------------------------------
+
+ Microsoft Project - Web Client (P11 PRK)
+ Copyright (C) Microsoft Corporation, 2003
+
+ File: sec_audit.asp
+
+ Contents: Security Audit Tool Page
+
+ Rev: 10/09/03
---------------------------------------------------------------------------- -->

<%
var oStrings = oLocalizedStrings.LoadStringTable( IDST_VIEWS );
%>

<%
// ----------------------------------------------------
// Effective Rights Query Builder Control (ERQBControl)

// Note: this could be in it's own file, but to save deployment overhead we have
// merged the control and the (currently) only page that uses it.

// report types
var cRTUser = 1;
var cRTProject = 2;
var cRTResource = 3;
var cRTGlobal = 4;

// permission types
var cPTUser = 1;
var cPTProject = 2;
var cPTResource = 3;
var cPTGlobal = 4;

var cAllUsersUserID = 0;
var cAllProjectsProjID = 0;
var cAllResourcesResID = 0;
var cAllPermissionsActID = 0;

// our sprocs:
var cMSP_WEB_ER_GetAllProjectPermissions = 27160;
var cMSP_WEB_ER_GetAllResourcePermissions = 27161;
var cMSP_WEB_ER_GetAllGlobalPermissions = 27162;

// our strings
var csOPT_RTUSER = "System (All Users)";
var csOPT_RTPROJECT = "Single user's Project access";
var csOPT_RTRESOURCE = "Single user's Resource access";
var csOPT_RTGLOBAL = "Single user's global permissions";
var csOPT_USER = "User";
var csOPT_PROJECT = "Project";
var csOPT_RESOURCE = "Resource";
var csOPT_GLOBAL = "Global Permission";
var csOPT_ALLPROJECTS = "All Projects";
var csOPT_ALLRESOURCES = "All Resources";
var csOPT_ALLPERMISSIONS = "All Permissions";
var csREPORT_LABEL = "Audit: ";
var csOBJECTTYPE_LABEL = "Object Type: ";
var csOBJECT_LABEL = "Object: ";
var csPERMISSION_LABEL = "Permission: ";
var csSUBMITBTN_LABEL = "Submit";
var csSUBMITBTN_TOOLTIP = "Submit your query for processing.";

function ERQBControl( sOnSubmitFunction )
{
this.Write = ERQBControl_Write;
this.sInitFunctionName = "InitERQBControl()";
this.sOnSubmitFunctionName = sOnSubmitFunction;
}

function ERQBControl_GenReportOpts()
{
%>
<OPTION VALUE=<%=cRTUser%>><%= csOPT_RTUSER%></OPTION>
<OPTION VALUE=<%=cRTProject%>><%= csOPT_RTPROJECT %></OPTION>
<OPTION VALUE=<%=cRTResource%>><%= csOPT_RTRESOURCE %></OPTION>
<OPTION VALUE=<%=cRTGlobal%>><%= csOPT_RTGLOBAL %></OPTION>
<%
}

function ERQBControl_GenPTypeOpts_RTypeUser()
{
%>
<OPTION VALUE=<%=cPTProject%>><%= csOPT_PROJECT %></OPTION>
<OPTION VALUE=<%=cPTResource%>><%= csOPT_RESOURCE %></OPTION>
<OPTION VALUE=<%=cPTGlobal%>><%= csOPT_GLOBAL %></OPTION>
<%
}

function ERQBControl_GenPTypeOpts_RTypeOthers()
{
%>
<OPTION VALUE=<%=cPTUser%>><%= csOPT_USER%></OPTION>
<%
}

function ERQBControl_GenProjectOpts()
{
var rsProjects = oPJQuery.OpenRecordset(const_PjQuery_GetAllProjects);
var nProjects = rsProjects.RecordCount;

Response.Write('<OPTION VALUE=' + cAllProjectsProjID + '>' + csOPT_ALLPROJECTS + '</OPTION>\n');

for (var i = 0; i < nProjects; i++)
{
Response.Write('<OPTION VALUE=' + rsProjects.GetColumn(const_dbWPROJ_ID) + '>' +
oLocalizedStrings.HTMLEncode(rsProjects.GetColumn(const_dbPROJ_NAME)) + '</OPTION>\n');
rsProjects.MoveNext();
}

rsProjects.Close();
rsProjects = null;
}

function ERQBControl_GenPermOpts(nQueryNumber)
{
var rsPerms = oPJQuery.OpenRecordset(nQueryNumber);
var nPerms = rsPerms.RecordCount;

Response.Write('<OPTION VALUE=' + cAllPermissionsActID+ '>' + csOPT_ALLPERMISSIONS +'</OPTION>\n');

for (var i = 0; i < nPerms; i++)
{
Response.Write('<OPTION VALUE=' + rsPerms.GetColumn("wsec_fea_act_id") + '>' +
oLocalizedStrings.HTMLEncode(rsPerms.GetColumn("conv_string")) + '</OPTION>\n');
rsPerms.MoveNext();
}

rsPerms.Close();
rsPerms = null;
}

function ERQBControl_GenResourceOpts()
{
var rsResources = oPJQuery.OpenRecordset(const_PjQuery_GetAllResources);
var nResources = rsResources.RecordCount;

Response.Write('<OPTION VALUE=' + cAllResourcesResID + '>' + csOPT_ALLRESOURCES + '</OPTION>\n');

for (var i = 0; i < nResources; i++)
{
Response.Write('<OPTION VALUE=' + rsResources.GetColumn(const_dbWRES_ID) + '>' +
oLocalizedStrings.HTMLEncode(rsResources.GetColumn(const_dbRES_NAME)) + '</OPTION>\n');
rsResources.MoveNext();
}

rsResources.Close();
rsResources = null;
}

function ERQBControl_GenUserOpts()
{
var rsUsers = oPJQuery.OpenRecordset(const_PJSEC_GetAllUsersOBName);
var nUsers = rsUsers.RecordCount;

for (var i = 0; i < nUsers; i++)
{
Response.Write('<OPTION VALUE=' + rsUsers.GetColumn(const_dbWRES_ID) + '>' +
oLocalizedStrings.HTMLEncode(rsUsers.GetColumn(const_dbRES_NAME)) + '</OPTION>\n');
rsUsers.MoveNext();
}

rsUsers.Close();
rsUsers = null;
}

function ERQBControl_Write()
{
%>
<TABLE ID="idERQBTbl" NAME="idERQBTbl" BORDER="0" >
<TR>
<TD STYLE="padding-right: 15;"><%= csREPORT_LABEL %></TD>
<TD STYLE="padding-right: 15;">
<SELECT ID="idRTypeSel" NAME="idRTypeSel" ONCHANGE="RTypeSel_OnChange()">
<% ERQBControl_GenReportOpts(); %>
</SELECT>
</TD>
<TD STYLE="padding-right: 15;">
<%= csOBJECTTYPE_LABEL %>
</TD>
<TD STYLE="padding-right: 15;" WIDTH="350em">

<DIV ID="idPTypeSel_RTypeUser_Div" STYLE="display: block;">
<SELECT ID="idPTypeSel_RTypeUser" NAME="idPTypeSel_RTypeUser" ONCHANGE="PTypeSel_RTypeUser_OnChange()">
<% ERQBControl_GenPTypeOpts_RTypeUser(); %>
</SELECT>
</DIV>

<DIV ID="idPTypeSel_RTypeOthers_Div" STYLE="display: none;">
<SELECT ID="idPTypeSel_RTypeOthers" NAME="idPTypeSel_RTypeOthers" ONCHANGE="PTypeSel_RTypeOthers_OnChange()">
<% ERQBControl_GenPTypeOpts_RTypeOthers(); %>
</SELECT>
</DIV>

</TD>
<TD></TD>
</TR>
<TR>
<TD></TD>
<TD>
<DIV ID="idPlaceHolderSelDiv" STYLE="visibility: hidden;">
<SELECT ID="idPlaceHolderSel" NAME="idPlaceHolderSel"></SELECT>
</DIV>
</TD>
<TD><%= csOBJECT_LABEL %></TD>
<TD>

<DIV ID="idPrjObjSelDiv" STYLE="display: block;">
<SELECT ID="idPrjObjSel" NAME="idPrjObjSel">
<% ERQBControl_GenProjectOpts(); %>
</SELECT>
</DIV>

<DIV ID="idResObjSelDiv" STYLE="display: none;">
<SELECT ID="idResObjSel" NAME="idResObjSel">
<% ERQBControl_GenResourceOpts(); %>
</SELECT>
</DIV>

<DIV ID="idUsrObjSelDiv" STYLE="display: none;">
<SELECT ID="idUsrObjSel" NAME="idUsrObjSel">
<% ERQBControl_GenUserOpts(); %>
</SELECT>
</DIV>

<DIV ID="idNAObjDiv" STYLE="display: none;">
N/A
</DIV>

</TD>
<TD></TD>
</TR>
<TR>
<TD></TD>
<TD></TD>
<TD><%= csPERMISSION_LABEL %></TD>
<TD>

<DIV ID="idPrjPermSelDiv" STYLE="display: block;">
<SELECT ID="idPrjPermSel" NAME="idPrjPermSel">
<% ERQBControl_GenPermOpts(cMSP_WEB_ER_GetAllProjectPermissions); %>
</SELECT>
</DIV>

<DIV ID="idResPermSelDiv" STYLE="display: none;">
<SELECT ID="idResPermSel" NAME="idResPermSel">
<% ERQBControl_GenPermOpts(cMSP_WEB_ER_GetAllResourcePermissions); %>
</SELECT>
</DIV>

<DIV ID="idGblPermSelDiv" STYLE="display: none;">
<SELECT ID="idGblPermSel" NAME="idGblPermSel">
<% ERQBControl_GenPermOpts(cMSP_WEB_ER_GetAllGlobalPermissions); %>
</SELECT>
</DIV>


</TD>
<TD></TD>
</TR>
<TR>
<TD>
<BUTTON ID="idSubmitBtn" NAME="idSubmitBtn" CLASS="InputButton"
ONCLICK="SubmitBtn_OnClick()" TITLE="<%= csSUBMITBTN_TOOLTIP %>">
<TABLE CELLSPACING="0" CELLPADDING="0" STYLE="cursor: hand;">
<TR>
<TD NOWRAP><IMG SRC="../images/go_green.gif" ALT="<%= csSUBMITBTN_TOOLTIP %>"></TD>
<TD STYLE="color: windowtext;" NOWRAP> <%= csSUBMITBTN_LABEL %></TD>
</TR>
</TABLE>
</BUTTON>
</TD>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD>
</TR>
</TABLE>

<SCRIPT LANGUAGE="jscript">

// note: changing the default selections here will also require
// editing the default styles in the HTML above:
var nSelectedRT = <%= cRTUser %>;
var nSelectedPT = <%= cPTProject %>;

var nUserID = <%= cAllUsersUserID %>;
var nProjectID = <%= cAllProjectsProjID %>;
var nResourceID = <%= cAllResourcesResID %>;
var nPermissionID = <%= cAllPermissionsActID %>;

function InitERQBControl()
{
// this function must be present, but nothing is required here

} // end function InitERQBControl()

function RTypeSel_OnChange()
{
nSelectedRT = parseInt(document.all.idRTypeSel.value);

if( nSelectedRT == <%= cRTUser %> )
{
document.all.idPTypeSel_RTypeUser_Div.style.display = "block";
document.all.idPTypeSel_RTypeOthers_Div.style.display = "none";
document.all.idPTypeSel_RTypeUser.value = <%= cPTProject %>;
nSelectedPT = <%= cPTProject %>;
}
else
{
document.all.idPTypeSel_RTypeUser_Div.style.display = "none";
document.all.idPTypeSel_RTypeOthers_Div.style.display = "block";
nSelectedPT = <%= cPTUser %>;
}

PTypeSel_OnChange();

} // end function RTypeSel_OnChange()

function PTypeSel_OnChange()
{
document.all.idPrjObjSelDiv.style.display = "none";
document.all.idResObjSelDiv.style.display = "none";
document.all.idUsrObjSelDiv.style.display = "none";
document.all.idNAObjDiv.style.display = "none";

document.all.idPrjPermSelDiv.style.display = "none";
document.all.idResPermSelDiv.style.display = "none";
document.all.idGblPermSelDiv.style.display = "none";

switch( nSelectedPT )
{
case <%= cPTUser %>:
document.all.idUsrObjSelDiv.style.display = "block";

switch( nSelectedRT )
{
case <%= cRTProject %>:
document.all.idPrjPermSelDiv.style.display = "block";
break;

case <%= cRTResource %>:
document.all.idResPermSelDiv.style.display = "block";
break;

case <%= cRTGlobal %>:
document.all.idGblPermSelDiv.style.display = "block";
break;
}
break;

case <%= cPTProject %>:
document.all.idPrjObjSelDiv.style.display = "block";
document.all.idPrjPermSelDiv.style.display = "block";
break;

case <%= cPTResource %>:
document.all.idResObjSelDiv.style.display = "block";
document.all.idResPermSelDiv.style.display = "block";
break;

case <%= cPTGlobal %>:
document.all.idNAObjDiv.style.display = "block";
document.all.idGblPermSelDiv.style.display = "block";
break;
}
} // end function PTypeSel_OnChange()

function PTypeSel_RTypeUser_OnChange()
{
nSelectedPT = parseInt(document.all.idPTypeSel_RTypeUser.value);
PTypeSel_OnChange();
} // end PTypeSel_RTypeUser_OnChange()

function PTypeSel_RTypeOthers_OnChange()
{
nSelectedPT = parseInt(document.all.PTypeSel_RTypeOthers.value);
PTypeSel_OnChange();
} // end PTypeSel_RTypeOthers_OnChange()

function ERQB_RestoreDialog()
{
document.all.idRTypeSel.value = nSelectedRT;

if( nSelectedRT == <%= cRTUser %> )
{
document.all.idPTypeSel_RTypeUser_Div.style.display = "block";
document.all.idPTypeSel_RTypeOthers_Div.style.display = "none";
document.all.idPTypeSel_RTypeUser.value = nSelectedPT;
}
else
{
document.all.idPTypeSel_RTypeUser_Div.style.display = "none";
document.all.idPTypeSel_RTypeOthers_Div.style.display = "block";
}

PTypeSel_OnChange();

document.all.idUsrObjSel.value = nUserID;
document.all.idPrjObjSel.value = nProjectID;
document.all.idResObjSel.value = nResourceID;

switch( nSelectedRT )
{
case <%= cRTProject %>:
document.all.idPrjPermSel.value = nPermissionID;
break;

case <%= cRTResource %>:
document.all.idResPermSel.value = nPermissionID;
break;

case <%= cRTGlobal %>:
document.all.idGblPermSel.value = nPermissionID;
break;

case <%= cRTUser %>:
{
switch( nSelectedPT )
{
case <%= cPTProject %>:
document.all.idPrjPermSel.value = nPermissionID;
break;

case <%= cPTResource %>:
document.all.idResPermSel.value = nPermissionID;
break;

case <%= cPTGlobal %>:
document.all.idGblPermSel.value = nPermissionID;
break;
}
}
break;
}

}

function SubmitBtn_OnClick()
{
nUserID = document.all.idUsrObjSel.value;
nProjectID = document.all.idPrjObjSel.value;
nResourceID = document.all.idResObjSel.value;

switch( nSelectedRT )
{
case <%= cRTProject %>:
nPermissionID = document.all.idPrjPermSel.value;
break;

case <%= cRTResource %>:
nPermissionID = document.all.idResPermSel.value;
break;

case <%= cRTGlobal %>:
nPermissionID = document.all.idGblPermSel.value;
break;

case <%= cRTUser %>:
{
switch( nSelectedPT )
{
case <%= cPTProject %>:
nPermissionID = document.all.idPrjPermSel.value;
break;

case <%= cPTResource %>:
nPermissionID = document.all.idResPermSel.value;
break;

case <%= cPTGlobal %>:
nPermissionID = document.all.idGblPermSel.value;
break;
}
}
break;
}

<%= this.sOnSubmitFunctionName %>;

} // end function SubmitBtn_OnClick()

</SCRIPT>
<%

}
// -----------------------------------------------------
%>


<%
// -----------------------------------------------------
// SEC_AUDIT UI (PAGE)

// CONSTANTS used by both client and server side code

// our pageid:
var cPAGE_ADMIN_SECAUDIT = 9001;

// additional request and tag definitions for PDS ER extension
var XMLREQUEST_ER_GETEFFECTIVERIGHTS = "GetEffectiveRights";
var XMLTAG_ER_USER = "User";
var XMLTAG_ER_USERID = "UserID";
var XMLTAG_ER_GLOBALPERMISSIONS = "GlobalPermissions";
var XMLTAG_ER_RESOURCEPERMISSIONS = "ResourcePermissions";
var XMLTAG_ER_PROJECTPERMISSIONS = "ProjectPermissions";
var XMLTAG_ER_PERMISSION = "Permission";
var XMLTAG_ER_PERMISSIONID = "PermissionID";
var XMLTAG_ER_ID = "ID";
var XMLTAG_ER_NAME = "Name";
var XMLTAG_ER_STATUS = "Status";
var XMLTAG_ER_PROJECTID = "ProjectID";
var XMLTAG_ER_RESOURCEID = "ResourceID";
var XMLTAG_ER_PROJECT = "Project";
var XMLTAG_ER_RESOURCE = "Resource";
var XMLTAG_ER_ALLOWEDBY = "AllowedBy";
var XMLTAG_ER_DENIEDBY = "DeniedBy";
var XMLTAG_ER_PRINCIPLE = "Principle";
var XMLTAG_ER_USERORGROUP = "UserOrGroup";
var XMLTAG_ER_CATEGORY = "Category";
var XMLTAG_ER_LCID = "LCID";
var XMLTAG_ER_ALLPROJECTS = "AllProjects";
var XMLTAG_ER_ALLRESOURCES = "AllResources";
var XMLTAG_ER_ALLPERMISSIONS = "AllPermissions";

// potential query types
var cQTUsersByProject = 1;
var cQTUsersByResource = 2;
var cQTUsersByGlobal = 3;
var cQTProjectByUser = 4;
var cQTResourceByUser = 5;
var cQTGlobalByUser = 6;

// our strings
var csTITLETEXT = "View Effective Rights";
var csIMPLICITTEXT = "(Implicit)";
var csYESTEXT = "Yes";
var csNOTEXT = "No";
var csPERMID_FN = "PERMID";
var csPERMNAME_FN = "PERMNAME";
var csUSERID_FN = "USERID";
var csUSERNAME_FN = "USERNAME";
var csPROJID_FN = "PROJID";
var csPROJNAME_FN = "PROJNAME";
var csRESID_FN = "RESID";
var csRESNAME_FN = "RESNAME";
var csPERMSTATUS_FN = "PERMSTATUS";
var csGRPNAME_FN = "GRPNAME";
var csCATNAME_FN = "CATNAME";

var csGFL_QTUBYP = "PROJID[Project ID],PROJNAME[Project Name],USERID[User ID]," +
"USERNAME[Username],PERMNAME[Permission],PERMSTATUS[Allowed],CATNAME[By Category],GRPNAME[By Group]";

var csGFL_QTUBYR = "RESID[Resource ID],RESNAME[Resource Name],USERID[User ID]," +
"USERNAME[Username],PERMNAME[Permission],PERMSTATUS[Allowed],CATNAME[By Category],GRPNAME[By Group]";

var csGFL_QTUBYG = "PERMID[Perm ID],PERMNAME[Permission Name],USERID[User ID]," +
"USERNAME[Username],PERMSTATUS[Allowed],GRPNAME[By Group]";

var csGFL_QTPBYU = "PROJID[Project ID],PROJNAME[Project Name],USERID[User ID]," +
"USERNAME[Username],PERMNAME[Permission],PERMSTATUS[Allowed],CATNAME[By Category],GRPNAME[By Group]";

var csGFL_QTRBYU = "RESID[Resource ID],RESNAME[Resource Name],USERID[User ID]," +
"USERNAME[Username],PERMNAME[Permission],PERMSTATUS[Allowed],CATNAME[By Category],GRPNAME[By Group]";

var csGFL_QTGBYU = "PERMID[Perm ID],PERMNAME[Permission Name],USERID[User ID]," +
"USERNAME[Username],PERMSTATUS[Allowed],GRPNAME[By Group]";

var csPDS_ER_EXT_LCID = "1033";
var csRESULTS_HEADER = "Results";
var csNOTE_BODY = "<B>NOTE:</B> Each permission is listed once for every group/category membership which grants or denies it. " +
"If a permission is denied by even a single membership, even if it is granted (allowed) by other memberships," +
" it will be denied to the user. " +
"A permission granted or denied by group/category 'User' indicates that the user has been specifically granted " +
" the permission (as opposed to grant through group/category membership). " +
"A permission denied by group/category 'Organization' indicates that this permission has been" +
" disabled across the organization from the 'Server Configuration' page of Microsoft Project Web Access. " +
"A permission denied by group/category '(Implicit)' indicates that" +
" this permission is not granted by default to the user and the user has not been explicited granted the permission.";
var csEMPTY_MSG = "<B>Empty result set.</B>";
var csPDSERROR_MSG = "<B>An error occurred with the PDS while attempting to retrieve the data.</B>";

// Initialize the outer shell UI (common to all subpages)
// we'll do this straight off to assure our client-side script blocks appear
// after head,title etc. tags:

// tell the shell who we are so security can be enforced.
oShell.SetCurrentPage(cPAGE_ADMIN_SECAUDIT);
oShell.SetTitleText(csTITLETEXT);
oShell.Write();

oPJQuery.Connect();

// CLIENT SIDE SCRIPT for QUERY BUILDER:
%>

<SCRIPT LANGUAGE="JScript">

function Workspace_OnResize()
{
// currently nothing required here, but this function must be present
// for the oTabControl to work.

if( typeof(Grid_OnResize)!= "undefined")
{
Grid_OnResize((CommonControls_GetTabHeight() + MSPJGrid_GetHeightAdjustments() + 180), false, 0);
}

} // end function Workspace_OnResize()

var nQueryType = 0;

function Workspace_OnLoad()
{
InitTabControls();
// expand tab controls by default:
SectionLink_OnClick();

<%
if( typeof(Request.QueryString('qtype').Item) != "undefined" )
{
%>
nQueryType = parseInt("<%= Request.QueryString('qtype').Item %>");
nUserID = parseInt("<%= Request.QueryString('usrid').Item %>");
nProjectID = parseInt("<%= Request.QueryString('prjid').Item %>");
nResourceID = parseInt("<%= Request.QueryString('resid').Item %>");
nPermissionID = parseInt("<%= Request.QueryString('permid').Item %>");

// restore query builder's settings
nSelectedRT = parseInt("<%= Request.QueryString('rtype').Item %>");
nSelectedPT = parseInt("<%= Request.QueryString('ptype').Item %>");
ERQB_RestoreDialog();

// WaitCursor.SetWaitCursor();

if( CallERPDSExt() == true )
{
PopulateGrid();
}

// WaitCursor.RestoreCursor();
<%
}
%>

} // end function Workspace_OnLoad()

function OnQuerySubmit()
{
DetermineQueryType();

window.location.href = "sec_audit.asp?qtype=" + nQueryType + "&usrid=" + nUserID +
"&prjid=" + nProjectID + "&resid=" + nResourceID + "&permid=" + nPermissionID +
"&rtype=" + nSelectedRT + "&ptype=" + nSelectedPT;

} // end function OnQuerySubmit()

function DetermineQueryType()
{
// determine query type:
switch( nSelectedRT )
{
case <%= cRTProject %>:
nQueryType = <%= cQTProjectByUser %>;
break;

case <%= cRTResource %>:
nQueryType = <%= cQTResourceByUser %>;
break;

case <%= cRTGlobal %>:
nQueryType = <%= cQTGlobalByUser %>;
break;

case <%= cRTUser %>:
{
switch( nSelectedPT )
{
case <%= cPTProject %>:
nQueryType = <%= cQTUsersByProject %>;
break;

case <%= cPTResource %>:
nQueryType = <%= cQTUsersByResource %>;
break;

case <%= cPTGlobal %>:
nQueryType = <%= cQTUsersByGlobal %>;
break;
}
}
break;
}
} // end function DetermineQueryType()

//--------------------------------------------------------------------------
function SendXMLRequestEx(sXML, recvTimeOutSecs)
{
var sURL = "<%=sPDSURL%>";
if (sURL.length > 0)
{
var oXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
oXMLHttp.open("POST", sURL, true);
oXMLHttp.setRequestHeader("MSPSCookies", "<%=oPJSession.oUser.nCookieLong0%>,<%=oPJSession.oUser.nCookieLong1%>");
oXMLHttp.send(sXML);

while( oXMLHttp.readyState != 4 )
{
;
}

sXMLText = oXMLHttp.responseText;
//alert(s1);
oXMLDOM = oXMLHttp.responseXML;

hResult = -1; // set it to an unobtainable error as a flag
lStatus = -1; // set it to an unobtainable error as a flag

var oNode;
oNode = oXMLDOM;
if ((oNode = FindNode(oNode,"<%=XMLREPLYROOT%>")) == null) return false;
hResult = GetNodeElementValue(oNode,"<%=XMLTAG_HRESULT%>");
if (hResult != 0) return false;
lStatus = GetNodeElementValue(oNode,"<%=XMLTAG_STATUS%>");
if (lStatus != 0) return false;
sPDSUserName = GetNodeElementValue(oNode,"<%=XMLTAG_USERNAME%>");
return true;
}
return false;
} // End of SendXMLRequest().

function CallERPDSExt()
{
try
{
var xmldom = new ActiveXObject("microsoft.xmldom");

var oTopLevel = xmldom.createNode(1, "<%=XMLREQUESTROOT%>", "");
xmldom.appendChild(oTopLevel);

var oEffectiveRights = xmldom.createNode(1, "<%=XMLREQUEST_ER_GETEFFECTIVERIGHTS%>", "");
oTopLevel.appendChild(oEffectiveRights);

var oLCID = xmldom.createNode(1, "<%=XMLTAG_ER_LCID%>","");
oLCID.text = <%= csPDS_ER_EXT_LCID %>;

oEffectiveRights.appendChild(oLCID);

switch( nQueryType )
{
case <%= cQTUsersByProject %>:
{
if( nProjectID == <%=cAllProjectsProjID%> )
{
var oProjectID = xmldom.createNode(1, "<%=XMLTAG_ER_ALLPROJECTS%>", "");
oProjectID.text = "1";
oEffectiveRights.appendChild(oProjectID);
}
else {
var oProjectID = xmldom.createNode(1, "<%=XMLTAG_ER_PROJECTID%>", "");
oProjectID.text = nProjectID;
oEffectiveRights.appendChild(oProjectID);
}
}
break;

case <%= cQTUsersByResource %>:
{
if( nResourceID == <%=cAllResourcesResID%> )
{
var oResourceID = xmldom.createNode(1, "<%=XMLTAG_ER_ALLRESOURCES%>", "");
oResourceID.text = "1";
oEffectiveRights.appendChild(oResourceID);
}
else {
var oResourceID = xmldom.createNode(1, "<%=XMLTAG_ER_RESOURCEID%>", "");
oResourceID.text = nResourceID;
oEffectiveRights.appendChild(oResourceID);
}
}
break;

case <%= cQTUsersByGlobal %>:
{
if( nPermissionID == <%=cAllPermissionsActID%> )
{
var oPermissionID = xmldom.createNode(1, "<%=XMLTAG_ER_ALLPERMISSIONS%>", "");
oPermissionID.text = "1";
oEffectiveRights.appendChild(oPermissionID);
}
else {
var oPermissionID = xmldom.createNode(1, "<%=XMLTAG_ER_PERMISSIONID%>", "");
oPermissionID.text = nPermissionID;
oEffectiveRights.appendChild(oPermissionID);
}
}
break;

case <%= cQTProjectByUser %>:
{
var oUserID = xmldom.createNode(1, "<%=XMLTAG_ER_USERID%>", "");
oUserID.text = nUserID;
oEffectiveRights.appendChild(oUserID);
var oProjectID = xmldom.createNode(1, "<%=XMLTAG_ER_ALLPROJECTS%>", "");
oProjectID.text = "1";
oEffectiveRights.appendChild(oProjectID);
}
break;

case <%= cQTResourceByUser %>:
{
var oUserID = xmldom.createNode(1, "<%=XMLTAG_ER_USERID%>", "");
oUserID.text = nUserID;
oEffectiveRights.appendChild(oUserID);
var oResourceID = xmldom.createNode(1, "<%=XMLTAG_ER_ALLRESOURCES%>", "");
oResourceID.text = "1";
oEffectiveRights.appendChild(oResourceID);
}
break;

case <%= cQTGlobalByUser %>:
{
var oUserID = xmldom.createNode(1, "<%=XMLTAG_ER_USERID%>", "");
oUserID.text = nUserID;
oEffectiveRights.appendChild(oUserID);
}
break;
}

if( nPermissionID != <%= cAllPermissionsActID %> )
{
var oPermissionID = xmldom.createNode(1, "<%=XMLTAG_ER_PERMISSIONID%>", "");
oPermissionID.text = nPermissionID;
oEffectiveRights.appendChild(oPermissionID);
}

var sXML = xmldom.xml;

// WCAlert("xml='" + sXML + "'",0);
if (SendXMLRequest(sXML) == true)
// if (SendXMLRequestEx(sXML) == true)
return true;
}
catch(err)
{
WCAlert(unescape(err.description),<%=(vbOKOnly | vbExclamation)%>);
return false;
}
return false;
} // end of CallPDSERExt()


// permission reader object

function PermissionReader()
{
this.oPR_Node = null;
this.nAllowChildIndex = 0;
this.nDenyChildIndex = 0;
this.nAllowEntries = 0;
this.nDenyEntries = 0;
this.sPRName = "";
this.nPRID = 0;
this.bPRAllowed = false;
this.bPRImplicitDeny = false;

this.bPREAllowed = false;
this.sPREUserOrGroup = "";
this.sPRECategory = "";

this.Init = PermissionReader_Init;
this.GetNext = PermissionReader_GetNext;
}


function PermissionReader_Init( oPermNode )
{
this.oPRNode = oPermNode;

this.nAllowChildIndex = 0;
this.nDenyChildIndex = 0;
this.nAllowEntries = 0;
this.nDenyEntries = 0;

this.sPRName = GetNodeElementValue(this.oPRNode,"<%=XMLTAG_ER_NAME%>");
this.nPRID = parseInt(GetNodeElementValue(this.oPRNode,"<%=XMLTAG_ER_ID%>"));
this.bPRAllowed = GetNodeElementValue(this.oPRNode,"<%=XMLTAG_ER_STATUS%>") == "Allowed";

this.nAllowEntries = FindNode(this.oPRNode,"<%=XMLTAG_ER_ALLOWEDBY%>").childNodes.length;
this.nDenyEntries = FindNode(this.oPRNode,"<%=XMLTAG_ER_DENIEDBY%>").childNodes.length;

if( this.nAllowEntries == 0 && this.nDenyEntries == 0 )
{
this.bPRImplicitDeny = true;
}
}

function PermissionReader_GetNext()
{
if( this.bPRImplicitDeny == true )
{
this.bPREAllowed = false;
this.sPREUserOrGroup = "<%= csIMPLICITTEXT %>";
this.sPRECategory = "";

this.bPRImplicitDeny = false;
return true;
}

if( this.nAllowEntries == 0 && this.nDenyEntries == 0 )
{
return false;
}

var oReasonNode = null;

if( this.nAllowEntries != 0 )
{
oReasonNode = FindNode(this.oPRNode,"<%=XMLTAG_ER_ALLOWEDBY%>").childNodes.item(this.nAllowChildIndex);
this.nAllowEntries--;
this.nAllowChildIndex++;
this.bPREAllowed = true;
}
else
{
oReasonNode = FindNode(this.oPRNode,"<%=XMLTAG_ER_DENIEDBY%>").childNodes.item(this.nDenyChildIndex);
this.nDenyEntries--;
this.nDenyChildIndex++;
this.bPREAllowed = false;
}

this.sPREUserOrGroup = GetNodeElementValue(oReasonNode,"<%=XMLTAG_ER_USERORGROUP%>");
if( FindNode(oReasonNode,"<%=XMLTAG_ER_CATEGORY%>") != null )
{
this.sPRECategory = GetNodeElementValue(oReasonNode,"<%=XMLTAG_ER_CATEGORY%>");
}
else {
this.sPRECategory = "";
}
return true;
}


function PopulateGrid()
{
var adUseClient = 3;
var adVarWChar = 202;
var adBoolean = 11;
var adInteger = 3;

var rs = new ActiveXObject("ADODB.Recordset");
rs.CursorLocation = adUseClient;

var fieldNames = new Array();
var fieldValues = new Array();

var oNode = oXMLDOM;
if ((oNode = FindNode(oNode,"<%=XMLREPLYROOT%>")) == null)
{
document.all.idPDSErrorDiv.style.display = "block";
return;
}
if ((oNode = FindNode(oNode,"<%=XMLREQUEST_ER_GETEFFECTIVERIGHTS%>")) == null)
{
document.all.idPDSErrorDiv.style.display = "block";
return;
}

var sGridFieldList = "";

switch( nQueryType )
{
case <%= cQTUsersByProject %>:
{
rs.Fields.Append("<%= csPROJID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csPROJNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csUSERID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csUSERNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMSTATUS_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csCATNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csGRPNAME_FN %>", adVarWChar, -1, 0);

rs.Open();

sGridFieldList = "<%= csGFL_QTUBYP %>";

fieldNames[0] = "<%= csPROJID_FN %>";
fieldNames[1] = "<%= csPROJNAME_FN %>";
fieldNames[2] = "<%= csUSERID_FN %>";
fieldNames[3] = "<%= csUSERNAME_FN %>";
fieldNames[4] = "<%= csPERMNAME_FN %>";
fieldNames[5] = "<%= csPERMSTATUS_FN %>";
fieldNames[6] = "<%= csCATNAME_FN %>";
fieldNames[7] = "<%= csGRPNAME_FN %>";

for (var i=0;i < oNode.childNodes.length;i++)
{
var oProject = oNode.childNodes.item(i);
if( oProject.nodeName != "<%=XMLTAG_ER_PROJECT%>" )
{
continue;
}

var sRProjName = GetNodeElementValue(oProject,"<%=XMLTAG_ER_NAME%>");
var nRProjectID = GetNodeElementValue(oProject,"<%=XMLTAG_ER_ID%>");

var oPerms = FindNode(oProject,"<%=XMLTAG_ER_PROJECTPERMISSIONS%>")
if (oPerms == null)
{
continue;
}

for( var j=0; j < oPerms.childNodes.length; j++)
{
var oUser = oPerms.childNodes.item(j);
if (oUser.nodeName != "<%=XMLTAG_ER_USER%>")
{
continue;
}

var nRUserID = GetNodeElementValue(oUser,"<%=XMLTAG_ER_ID%>");
var sRUserName = GetNodeElementValue(oUser,"<%=XMLTAG_ER_NAME%>");

for (var k=0;k < oUser.childNodes.length;k++)
{
var oPermission = oUser.childNodes.item(k);
if (oPermission.nodeName != "<%=XMLTAG_ER_PERMISSION%>")
{
continue;
}

var oPermReader = new PermissionReader();
oPermReader.Init(oPermission);

while( oPermReader.GetNext() )
{
fieldValues[0] = nRProjectID;
fieldValues[1] = sRProjName;
fieldValues[2] = nRUserID;
fieldValues[3] = sRUserName;
fieldValues[4] = oPermReader.sPRName;
fieldValues[5] = oPermReader.bPREAllowed ? "<%= csYESTEXT %>" : "<%= csNOTEXT %>";;
fieldValues[6] = oPermReader.sPRECategory;
fieldValues[7] = oPermReader.sPREUserOrGroup;

rs.AddNew(fieldNames, fieldValues);
}
}
}
}
}
break;

case <%= cQTUsersByResource %>:
{
rs.Fields.Append("<%= csRESID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csRESNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csUSERID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csUSERNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMSTATUS_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csCATNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csGRPNAME_FN %>", adVarWChar, -1, 0);

rs.Open();

sGridFieldList = "<%= csGFL_QTUBYR %>";

fieldNames[0] = "<%= csRESID_FN %>";
fieldNames[1] = "<%= csRESNAME_FN %>";
fieldNames[2] = "<%= csUSERID_FN %>";
fieldNames[3] = "<%= csUSERNAME_FN %>";
fieldNames[4] = "<%= csPERMNAME_FN %>";
fieldNames[5] = "<%= csPERMSTATUS_FN %>";
fieldNames[6] = "<%= csCATNAME_FN %>";
fieldNames[7] = "<%= csGRPNAME_FN %>";

for (var i=0;i < oNode.childNodes.length;i++)
{
var oResource = oNode.childNodes.item(i);
if( oResource.nodeName != "<%=XMLTAG_ER_RESOURCE%>" )
{
continue;
}

var sRResourceName = GetNodeElementValue(oResource,"<%=XMLTAG_ER_NAME%>");
var nRResourceID = GetNodeElementValue(oResource,"<%=XMLTAG_ER_ID%>");

var oPerms = FindNode(oResource,"<%=XMLTAG_ER_RESOURCEPERMISSIONS%>")
if (oPerms == null)
{
continue;
}

for( var j=0; j < oPerms.childNodes.length; j++)
{
var oUser = oPerms.childNodes.item(j);
if (oUser.nodeName != "<%=XMLTAG_ER_USER%>")
{
continue;
}

var nRUserID = GetNodeElementValue(oUser,"<%=XMLTAG_ER_ID%>");
var sRUserName = GetNodeElementValue(oUser,"<%=XMLTAG_ER_NAME%>");

for (var k=0; k < oUser.childNodes.length; k++)
{
var oPermission = oUser.childNodes.item(k);
if (oPermission.nodeName != "<%=XMLTAG_ER_PERMISSION%>")
{
continue;
}

var oPermReader = new PermissionReader();
oPermReader.Init(oPermission);

while( oPermReader.GetNext() )
{
fieldValues[0] = nRResourceID;
fieldValues[1] = sRResourceName;
fieldValues[2] = nRUserID;
fieldValues[3] = sRUserName;
fieldValues[4] = oPermReader.sPRName;
fieldValues[5] = oPermReader.bPREAllowed ? "<%= csYESTEXT %>" : "<%= csNOTEXT %>";;
fieldValues[6] = oPermReader.sPRECategory;
fieldValues[7] = oPermReader.sPREUserOrGroup;

rs.AddNew(fieldNames, fieldValues);
}
}
}
}
}
break;

case <%= cQTUsersByGlobal %>:
{
rs.Fields.Append("<%= csPERMID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csPERMNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csUSERID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csUSERNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMSTATUS_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csGRPNAME_FN %>", adVarWChar, -1, 0);

rs.Open();

sGridFieldList = "<%= csGFL_QTUBYG %>";

fieldNames[0] = "<%= csPERMID_FN %>";
fieldNames[1] = "<%= csPERMNAME_FN %>";
fieldNames[2] = "<%= csUSERID_FN %>";
fieldNames[3] = "<%= csUSERNAME_FN %>";
fieldNames[4] = "<%= csPERMSTATUS_FN %>";
fieldNames[5] = "<%= csGRPNAME_FN %>";

if ((oNode = FindNode(oNode,"<%=XMLTAG_ER_GLOBALPERMISSIONS%>")) == null) return;

for (var i=0;i < oNode.childNodes.length;i++)
{
var oPermission = oNode.childNodes.item(i);
if (oPermission.nodeName == "<%=XMLTAG_ER_PERMISSION%>")
{
var nRPermissionID = GetNodeElementValue(oPermission,"<%=XMLTAG_ER_ID%>");
var sRPermissionName = GetNodeElementValue(oPermission,"<%=XMLTAG_ER_NAME%>");

for (var j=0;j < oPermission.childNodes.length;j++)
{
var oUser = oPermission.childNodes.item(j);
if (oUser.nodeName != "<%=XMLTAG_ER_USER%>")
{
continue;
}

var nRUserID = GetNodeElementValue(oUser,"<%=XMLTAG_ER_ID%>");
var sRUserName = GetNodeElementValue(oUser,"<%=XMLTAG_ER_NAME%>");

var oPermReader = new PermissionReader();
oPermReader.Init(oUser);

while( oPermReader.GetNext() )
{
fieldValues[0] = nRPermissionID;
fieldValues[1] = sRPermissionName;
fieldValues[2] = oPermReader.nPRID;
fieldValues[3] = oPermReader.sPRName;
fieldValues[4] = oPermReader.bPREAllowed ? "<%= csYESTEXT %>" : "<%= csNOTEXT %>";
fieldValues[5] = oPermReader.sPREUserOrGroup;

rs.AddNew(fieldNames, fieldValues);
}
}
}
}
}
break;

case <%= cQTProjectByUser %>:
{
rs.Fields.Append("<%= csPROJID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csPROJNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csUSERID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csUSERNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMSTATUS_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csCATNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csGRPNAME_FN %>", adVarWChar, -1, 0);

rs.Open();

sGridFieldList = "<%= csGFL_QTPBYU %>";

fieldNames[0] = "<%= csPROJID_FN %>";
fieldNames[1] = "<%= csPROJNAME_FN %>";
fieldNames[2] = "<%= csUSERID_FN %>";
fieldNames[3] = "<%= csUSERNAME_FN %>";
fieldNames[4] = "<%= csPERMNAME_FN %>";
fieldNames[5] = "<%= csPERMSTATUS_FN %>";
fieldNames[6] = "<%= csCATNAME_FN %>";
fieldNames[7] = "<%= csGRPNAME_FN %>";

var oUser;
if ((oUser = FindNode(oNode,"<%=XMLTAG_ER_USER%>")) == null) return;

var nRUserID = GetNodeElementValue(oUser,"<%=XMLTAG_ER_ID%>");
var sRUserName = GetNodeElementValue(oUser,"<%=XMLTAG_ER_NAME%>");

var oPerms;
if ((oPerms = FindNode(oUser,"<%=XMLTAG_ER_PROJECTPERMISSIONS%>")) == null) return;

for (var i=0;i < oPerms.childNodes.length;i++)
{
var oProject = oPerms.childNodes.item(i);
if( oProject.nodeName != "<%=XMLTAG_ER_PROJECT%>" )
{
continue;
}

var sRProjName = GetNodeElementValue(oProject,"<%=XMLTAG_ER_NAME%>");
var nRProjectID = GetNodeElementValue(oProject,"<%=XMLTAG_ER_ID%>");

for( var j=0; j < oProject.childNodes.length; j++)
{
var oPermission = oProject.childNodes.item(j);
if (oPermission.nodeName != "<%=XMLTAG_ER_PERMISSION%>")
{
continue;
}

var oPermReader = new PermissionReader();
oPermReader.Init(oPermission);

while( oPermReader.GetNext() )
{
fieldValues[0] = nRProjectID;
fieldValues[1] = sRProjName;
fieldValues[2] = nRUserID;
fieldValues[3] = sRUserName;
fieldValues[4] = oPermReader.sPRName;
fieldValues[5] = oPermReader.bPREAllowed ? "<%= csYESTEXT %>" : "<%= csNOTEXT %>";;
fieldValues[6] = oPermReader.sPRECategory;
fieldValues[7] = oPermReader.sPREUserOrGroup;

rs.AddNew(fieldNames, fieldValues);
}
}
}
}
break;

case <%= cQTResourceByUser %>:
{
rs.Fields.Append("<%= csRESID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csRESNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csUSERID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csUSERNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMSTATUS_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csCATNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csGRPNAME_FN %>", adVarWChar, -1, 0);

rs.Open();

sGridFieldList = "<%= csGFL_QTRBYU %>";

fieldNames[0] = "<%= csRESID_FN %>";
fieldNames[1] = "<%= csRESNAME_FN %>";
fieldNames[2] = "<%= csUSERID_FN %>";
fieldNames[3] = "<%= csUSERNAME_FN %>";
fieldNames[4] = "<%= csPERMNAME_FN %>";
fieldNames[5] = "<%= csPERMSTATUS_FN %>";
fieldNames[6] = "<%= csCATNAME_FN %>";
fieldNames[7] = "<%= csGRPNAME_FN %>";

var oUser;
if ((oUser = FindNode(oNode,"<%=XMLTAG_ER_USER%>")) == null) return;

var nRUserID = GetNodeElementValue(oUser,"<%=XMLTAG_ER_ID%>");
var sRUserName = GetNodeElementValue(oUser,"<%=XMLTAG_ER_NAME%>");

var oPerms;
if ((oPerms = FindNode(oUser,"<%=XMLTAG_ER_RESOURCEPERMISSIONS%>")) == null) return;

for (var i=0;i < oPerms.childNodes.length;i++)
{
var oResource = oPerms.childNodes.item(i);
if( oResource.nodeName != "<%=XMLTAG_ER_RESOURCE%>" )
{
continue;
}

var sRResourceName = GetNodeElementValue(oResource,"<%=XMLTAG_ER_NAME%>");
var nRResourceID = GetNodeElementValue(oResource,"<%=XMLTAG_ER_ID%>");

for( var j=0; j < oResource.childNodes.length; j++)
{
var oPermission = oResource.childNodes.item(j);
if (oPermission.nodeName != "<%=XMLTAG_ER_PERMISSION%>")
{
continue;
}

var oPermReader = new PermissionReader();
oPermReader.Init(oPermission);

while( oPermReader.GetNext() )
{
fieldValues[0] = nRResourceID;
fieldValues[1] = sRResourceName;
fieldValues[2] = nRUserID;
fieldValues[3] = sRUserName;
fieldValues[4] = oPermReader.sPRName;
fieldValues[5] = oPermReader.bPREAllowed ? "<%= csYESTEXT %>" : "<%= csNOTEXT %>";;
fieldValues[6] = oPermReader.sPRECategory;
fieldValues[7] = oPermReader.sPREUserOrGroup;

rs.AddNew(fieldNames, fieldValues);
}
}
}
}
break;

case <%= cQTGlobalByUser %>:
{
rs.Fields.Append("<%= csPERMID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csPERMNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csUSERID_FN %>", adInteger, -1, 0);
rs.Fields.Append("<%= csUSERNAME_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csPERMSTATUS_FN %>", adVarWChar, -1, 0);
rs.Fields.Append("<%= csGRPNAME_FN %>", adVarWChar, -1, 0);

rs.Open();

sGridFieldList = "<%= csGFL_QTGBYU %>";

fieldNames[0] = "<%= csPERMID_FN %>";
fieldNames[1] = "<%= csPERMNAME_FN %>";
fieldNames[2] = "<%= csUSERID_FN %>";
fieldNames[3] = "<%= csUSERNAME_FN %>";
fieldNames[4] = "<%= csPERMSTATUS_FN %>";
fieldNames[5] = "<%= csGRPNAME_FN %>";

if ((oNode = FindNode(oNode,"<%=XMLTAG_ER_USER%>")) == null) return;
var sUserName = GetNodeElementValue(oNode,"<%=XMLTAG_ER_NAME%>");
if ((oNode = FindNode(oNode,"<%=XMLTAG_ER_GLOBALPERMISSIONS%>")) == null) return;

for (var i=0;i < oNode.childNodes.length;i++)
{
var oPermission = oNode.childNodes.item(i);
if (oPermission.nodeName == "<%=XMLTAG_ER_PERMISSION%>")
{
var oPermReader = new PermissionReader();
oPermReader.Init(oPermission);

while( oPermReader.GetNext() )
{
fieldValues[0] = oPermReader.nPRID;
fieldValues[1] = oPermReader.sPRName;
fieldValues[2] = nUserID;
fieldValues[3] = sUserName;
fieldValues[4] = oPermReader.bPREAllowed ? "<%= csYESTEXT %>" : "<%= csNOTEXT %>";
fieldValues[5] = oPermReader.sPREUserOrGroup;

rs.AddNew(fieldNames, fieldValues);
}
}
}
}
break;
}

if (rs.RecordCount)
{
rs.Update();
MSPJGrid.Binding = rs;
MSPJGrid.FieldList = sGridFieldList;
MSPJGrid.Refresh();
document.all.idMSPJGridDiv.style.display = "block";
document.all.idResultsBodyDiv.style.display = "block";
}
else
{
document.all.idEmptyResultsDiv.style.display = "block";
}

} // end of PopulateGrid()

</SCRIPT>

<%
// SERVER SIDE SCRIPT for QUERY BUILDER:

var oTabControls = new TabControls();
var oERQBControl = new ERQBControl("OnQuerySubmit()");

oTabControls.AddTabs(oStrings.GetString(IDS_VIEWS_RESREG_VIEWOPTIONS_TAB),
oStrings.GetString(IDS_VIEWS_RESREG_VIEWOPTIONS_ALT),
oStrings.GetString(IDS_VIEWS_RESREG_VIEWOPTIONS_KEY),
oERQBControl);

oTabControls.DisplayTabControls();

if( typeof(Request.QueryString('qtype').Item) != "undefined" )
{
%>

<DIV ID="idResultDiv" NAME="idResultDiv" CLASS="Section">
<DIV ID="idResultHeaderDiv" NAME="idResultHeaderDiv" CLASS="sub_section_text" STYLE="margin-top: 1em; margin-bottom: 1em;">
<%=csRESULTS_HEADER%>
</DIV>

<DIV ID="idMSPJGridDiv" CLASS="idMSPJGridDiv" STYLE="display: none;">

<%

var oMSPJGrid = new MSPJGrid();
oMSPJGrid.bShowPrintLink = true;
oMSPJGrid.Write();
%>
</DIV>

<DIV ID="idResultsBodyDiv" NAME="idResultsBodyDiv" CLASS="SectionContents" STYLE="margin-top: 2em; display: none;">
<%=csNOTE_BODY%>
</DIV>
<DIV ID="idEmptyResultsDiv" NAME="idEmptyResultsDiv" CLASS="SectionContents" STYLE="margin-top: 2em; display: none;">
<%=csEMPTY_MSG%>
</DIV>
<DIV ID="idPDSErrorDiv" NAME="idPDSErrorDiv" CLASS="SectionContents" STYLE="margin-top: 2em; display: none;">
<%=csPDSERROR_MSG%>
</DIV>
</DIV>
<%

}

oPJQuery.Disconnect();

%>

<!-- #include virtual="/ProjectServer/Shell/Bottom.asp" -->


Go to Top of Page
   

- Advertisement -