179 lines
7.8 KiB
Plaintext
179 lines
7.8 KiB
Plaintext
Compile function REACTOR_MODES_Services(@Service, @Params)
|
|
|
|
Declare function Database_Services, React_Prob_Cat_Services, Reactor_Modes_Services, Memberof, Error_Services
|
|
Declare subroutine Error_Services, Database_Services, delete, RList
|
|
|
|
#pragma precomp SRP_PreCompiler
|
|
$insert LOGICAL
|
|
$insert REACTOR_MODES_EQUATES
|
|
$insert rlist_equates
|
|
|
|
GoToService
|
|
|
|
Return Response or ""
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// SERVICES
|
|
//-----------------------------------------------------------------------------
|
|
|
|
Service AddNotificationGroup(ReactorModesKey, Class)
|
|
If ReactorModesKey NE '' AND Class NE '' then
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
|
Locate Class in ReactorModesRec<REACTOR_MODES_NOTIFY_CLASS$> using @VM setting dummy then
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': Notifcation already exists')
|
|
end else
|
|
ReactorModesRec<REACTOR_MODES_NOTIFY_CLASS$, -1> = Class
|
|
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
|
if Error_Services('HasError') then
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': ' : Error_Services('GetMessage'))
|
|
end
|
|
end
|
|
end else
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Class ID.')
|
|
Return
|
|
end
|
|
end service
|
|
|
|
Service DeleteNotificationGroup(ReactorModesKey, Class)
|
|
If ReactorModesKey NE '' AND Class NE '' then
|
|
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
|
Locate Class in ReactorModesRec<REACTOR_MODES_NOTIFY_CLASS$> using @VM setting classPos then
|
|
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_NOTIFY_CLASS$,classPos,0)
|
|
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
|
end else
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Class ID.')
|
|
end
|
|
end
|
|
end service
|
|
|
|
Service AddEnterPermission(ReactorModesKey, Group)
|
|
If ReactorModesKey NE '' AND Group NE '' then
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
|
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$> using @VM setting dummy then
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': Group permission already exists')
|
|
end else
|
|
ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$, -1> = Group
|
|
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
|
if Error_Services('HasError') then
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': ' : Error_Services('GetMessage'))
|
|
end
|
|
end
|
|
end else
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Group ID.')
|
|
Return
|
|
end
|
|
end service
|
|
|
|
Service AddReleasePermission(ReactorModesKey, Group)
|
|
If ReactorModesKey NE '' AND Group NE '' then
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
|
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$> using @VM setting dummy then
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': Group permission already exists')
|
|
end else
|
|
ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$, -1> = Group
|
|
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
|
if Error_Services('HasError') then
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES ' : Service : ': ' : Error_Services('GetMessage'))
|
|
end
|
|
end
|
|
end else
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey or Group ID.')
|
|
Return
|
|
end
|
|
end service
|
|
|
|
Service AddServiceCategory(ReactorModesKey, NewServiceName, NewServiceCategory)
|
|
If ReactorModesKey EQ '' then
|
|
Error_Services('Add', 'Error in REACTOR_MODES_SERVICES: Null parameter ReactorModesKey.')
|
|
Return
|
|
end
|
|
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey)
|
|
NewCatKey = React_Prob_Cat_Services('Create',NewServiceName,NewServiceCategory)
|
|
ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORIES$, -1> = NewServiceName
|
|
ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORY_ID$, -1> = NewCatKey
|
|
|
|
Database_Services('WriteDataRow','REACTOR_MODES',ReactorModesKey,ReactorModesRec,1,0,1)
|
|
|
|
|
|
End Service
|
|
|
|
Service DeleteServiceCategory(ReactorModesKey, CatId)
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
|
Locate CatId in ReactorModesRec<REACTOR_MODES_SERVICE_CATEGORY_ID$> using @VM setting catPos then
|
|
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_SERVICE_CATEGORY_ID$,catPos,0)
|
|
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_SERVICE_CATEGORIES$,catPos,0)
|
|
end
|
|
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
|
end service
|
|
|
|
Service DeleteEnterPermission(ReactorModesKey, Group)
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
|
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_ENTER$> using @VM setting groupPos then
|
|
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_GROUPS_ENTER$,groupPos,0)
|
|
end
|
|
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
|
end service
|
|
|
|
Service DeleteReleasePermission(ReactorModesKey, Group)
|
|
ReactorModesRec = Database_Services('ReadDataRow', 'REACTOR_MODES', ReactorModesKey,1,0,1)
|
|
Locate Group in ReactorModesRec<REACTOR_MODES_GROUPS_RELEASE$> using @VM setting groupPos then
|
|
ReactorModesRec = Delete(ReactorModesRec,REACTOR_MODES_GROUPS_RELEASE$,groupPos,0)
|
|
end
|
|
Database_Services('WriteDataRow', 'REACTOR_MODES',ReactorModesKey,ReactorModesRec)
|
|
end service
|
|
|
|
Service GetAllModes()
|
|
Statement = 'SELECT REACTOR_MODES BY DESCRIPTION'
|
|
rlist( Statement, target_activelist$, '', '', '' )
|
|
ModeList = ''
|
|
IF @RecCount then
|
|
EoF = 0
|
|
NumKeys = @RecCount
|
|
Cnt = 0
|
|
Loop
|
|
ReadNext ReactorModeID Else EoF = 1
|
|
until EoF
|
|
ModeList<-1> = ReactorModeID
|
|
Repeat
|
|
end
|
|
Response = ModeList
|
|
end service
|
|
|
|
Service AvailableModes(ReactorModesKey, CurrUser)
|
|
|
|
CurrMode = ReactorModesKey
|
|
AllModes = Reactor_Modes_Services('GetAllModes')
|
|
AllowedModes = ''
|
|
curModeReleasePerms = XLATE('REACTOR_MODES', ReactorModesKey, REACTOR_MODES_GROUPS_RELEASE$, 'X')
|
|
canRelease = 0
|
|
//Check can release from current mode
|
|
for each releaseMode in curModeReleasePerms using @VM
|
|
if Memberof(currUser, releaseMode) then
|
|
canRelease = 1
|
|
end
|
|
Next releaseMode
|
|
if canRelease then
|
|
for each mode in AllModes using @FM
|
|
modeEnterPerms = XLATE('REACTOR_MODES', mode, REACTOR_MODES_GROUPS_ENTER$, 'X')
|
|
x = 1
|
|
loop
|
|
while x LE DCount(modeEnterPerms, @VM)
|
|
If Memberof(currUser, modeEnterPerms<1,x>) then
|
|
Locate mode in AllowedModes using @FM setting DUMMY else
|
|
AllowedModes<-1> = mode
|
|
end
|
|
end
|
|
|
|
x += 1
|
|
|
|
repeat
|
|
|
|
Next mode
|
|
end
|
|
Response = AllowedModes
|
|
end service
|
|
|
|
|