USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLESINGLEFEATUREPERMISSION
The save procedure used by the edit dataform template "System Role Single Feature Permission Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@FEATURETYPE | tinyint | IN | Feature type |
@FEATUREID | uniqueidentifier | IN | Feature ID |
@GRANTORDENY | tinyint | IN | Grant Or Deny |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_SYSTEMROLESINGLEFEATUREPERMISSION (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@FEATURETYPE tinyint,
@FEATUREID uniqueidentifier,
@GRANTORDENY tinyint
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime;
set @CURRENTDATE=getdate();
declare @PERMISSIONID uniqueidentifier;
/* cache current context information */
declare @contextCache varbinary(128);
begin try
-- data form instance
if @FEATURETYPE = 1
begin
if @GRANTORDENY = 2
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null --CR292752-020408
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.SYSTEMROLEPERM_DATAFORMINSTANCE
where (DATAFORMINSTANCECATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID)
if not @contextCache is null
set CONTEXT_INFO @contextCache
end
else
begin
select @PERMISSIONID =
(select ID from dbo.SYSTEMROLEPERM_DATAFORMINSTANCE
where (DATAFORMINSTANCECATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID))
if @PERMISSIONID is null
insert into dbo.SYSTEMROLEPERM_DATAFORMINSTANCE
(ID, SYSTEMROLEID, DATAFORMINSTANCECATALOGID, GRANTORDENY, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(NewID(), @ID, @FEATUREID, @GRANTORDENY, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
else
update dbo.SYSTEMROLEPERM_DATAFORMINSTANCE
set GRANTORDENY = @GRANTORDENY, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where (ID = @PERMISSIONID) and (GRANTORDENY <> @GRANTORDENY)
end
end
-- data list
else if @FEATURETYPE = 2
begin
if @GRANTORDENY = 2
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.SYSTEMROLEPERM_DATALIST
where (DATALISTCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID)
if not @contextCache is null
set CONTEXT_INFO @contextCache
end
else
begin
select @PERMISSIONID =
(select ID from dbo.SYSTEMROLEPERM_DATALIST
where (DATALISTCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID))
if @PERMISSIONID is null
insert into dbo.SYSTEMROLEPERM_DATALIST
(ID, SYSTEMROLEID, DATALISTCATALOGID, GRANTORDENY, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(NewID(), @ID, @FEATUREID, @GRANTORDENY, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
else
update dbo.SYSTEMROLEPERM_DATALIST
set GRANTORDENY = @GRANTORDENY, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where (ID = @PERMISSIONID) and (GRANTORDENY <> @GRANTORDENY)
end
end
-- record operation
else if @FEATURETYPE = 3
begin
if @GRANTORDENY = 2
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null --CR292761-020408
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.SYSTEMROLEPERM_RECORDOPERATION
where (RECORDOPERATIONCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID)
if not @contextCache is null
set CONTEXT_INFO @contextCache
end
else
begin
select @PERMISSIONID =
(select ID from dbo.SYSTEMROLEPERM_RECORDOPERATION
where (RECORDOPERATIONCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID))
if @PERMISSIONID is null
insert into dbo.SYSTEMROLEPERM_RECORDOPERATION
(ID, SYSTEMROLEID, RECORDOPERATIONCATALOGID, GRANTORDENY, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(NewID(), @ID, @FEATUREID, @GRANTORDENY, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
else
update dbo.SYSTEMROLEPERM_RECORDOPERATION
set GRANTORDENY = @GRANTORDENY, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where (ID = @PERMISSIONID) and (GRANTORDENY <> @GRANTORDENY)
end
end
-- business process
else if @FEATURETYPE = 4
begin
if @GRANTORDENY = 2
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.SYSTEMROLEPERM_BUSINESSPROCESS
where (BUSINESSPROCESSCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID)
if not @contextCache is null
set CONTEXT_INFO @contextCache
end
else
begin
select @PERMISSIONID =
(select ID from dbo.SYSTEMROLEPERM_BUSINESSPROCESS
where (BUSINESSPROCESSCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID))
if @PERMISSIONID is null
insert into dbo.SYSTEMROLEPERM_BUSINESSPROCESS
(ID, SYSTEMROLEID, BUSINESSPROCESSCATALOGID, GRANTORDENY, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(NewID(), @ID, @FEATUREID, @GRANTORDENY, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
else
update dbo.SYSTEMROLEPERM_BUSINESSPROCESS
set GRANTORDENY = @GRANTORDENY, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where (ID = @PERMISSIONID) and (GRANTORDENY <> @GRANTORDENY)
end
end
-- dashboard
else if @FEATURETYPE = 5
begin
if @GRANTORDENY = 2
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.SYSTEMROLEPERM_DASHBOARD
where (DASHBOARDCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID)
if not @contextCache is null
set CONTEXT_INFO @contextCache
end
else
begin
select @PERMISSIONID =
(select ID from dbo.SYSTEMROLEPERM_DASHBOARD
where (DASHBOARDCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID))
if @PERMISSIONID is null
insert into dbo.SYSTEMROLEPERM_DASHBOARD
(ID, SYSTEMROLEID, DASHBOARDCATALOGID, GRANTORDENY, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(NewID(), @ID, @FEATUREID, @GRANTORDENY, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
else
update dbo.SYSTEMROLEPERM_DASHBOARD
set GRANTORDENY = @GRANTORDENY, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where (ID = @PERMISSIONID) and (GRANTORDENY <> @GRANTORDENY)
end
end
else if @FEATURETYPE = 21 --CR292749-020408 begin
begin
if @GRANTORDENY = 2
begin
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.SYSTEMROLEPERM_REPORT
where (REPORTCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID)
if not @contextCache is null
set CONTEXT_INFO @contextCache
end
else
begin
select @PERMISSIONID =
(select ID from dbo.SYSTEMROLEPERM_REPORT
where (REPORTCATALOGID = @FEATUREID) and (SYSTEMROLEID = @ID))
if @PERMISSIONID is null
insert into dbo.SYSTEMROLEPERM_REPORT
(ID, SYSTEMROLEID, REPORTCATALOGID, GRANTORDENY, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(NewID(), @ID, @FEATUREID, @GRANTORDENY, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
else
update dbo.SYSTEMROLEPERM_REPORT
set GRANTORDENY = @GRANTORDENY, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
where (ID = @PERMISSIONID) and (GRANTORDENY <> @GRANTORDENY)
end
end --CR292749-020408 end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;