project BLF > class Database Component > method ValidateFieldSecurity

validation procedure

Description

This method validates the field security on the business side. It verifies that business fields that may not be modified are not modified.


Parameters


oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method database.ValidateComponent


program code (program1/database.p)

/* Get the FS rules for this component */
<Q-4 run FieldSecurityForCompActivity (all)  (Read)  (NoCache)  (input vcActivityCode, (ActivityCode) 
                                       input vcFcComponentName, (BusCompName) 
                                       input viUsrId, (UsrID)
                                       output dataset tqFieldSecurityForCompActivity) in BFieldSecurity >

/* iterate over all FS rules */
for each tqFieldSecurityForCompActivity where
         tqFieldSecurityForCompActivity.tlFieldSecurityIsUpdateable = no
         break by tqFieldSecurityForCompActivity.tcFieldSecurityBusFieldName
         on error undo, throw:

    if first-of(tqFieldSecurityForCompActivity.tcFieldSecurityBusFieldName)
    then do:
        <M-2 run ValueChanged (input  tqFieldSecurityForCompActivity.tcFieldSecurityBusFieldName (icFieldName), 
                       output vlFieldValueHasChanged (olChanged)) in database>
        if vlFieldValueHasChanged
        then do:
            assign oiReturnStatus = -1. /* Return an error*/
            <M-3 run SetMessage (input  #T-1'You have no permission to modify this field.':100(6562)T-1# (icMessage), 
                     input  '' (icArguments), 
                     input  tqFieldSecurityForCompActivity.tcFieldSecurityBusFieldName (icFieldName), 
                     input  '' (icFieldValue), 
                     input  'E':U (icType), 
                     input  3 (iiSeverity), 
                     input  '' (icRowid), 
                     input  'BLF-331':U (icFcMsgNumber), 
                     input  '' (icFcExplanation), 
                     input  '' (icFcIdentification), 
                     input  '' (icFcContext), 
                     output viFcReturnSuper (oiReturnStatus)) in database>
        end.
    end.
end.

empty temp-table tqFieldSecurityForCompActivity.