How is everyone handling record security, when requirements require dynamic visi

How is everyone handling record security, when requirements require dynamic visibility? For instance, we require records for an application to be visible for all application administrators and also to the process initiator (initiator should only see the record for the process isntance they have initiated). Sometimes, company divisional views are necessary as well - divisional administrators should only see records for their specific division. With nearly 40 applications in production, we do not want to have 3+ records for each application. Just wondering if anyone has experience with similar situations. Thanks!

OriginalPostID-155229

OriginalPostID-155229

  Discussion posts and replies are publicly visible

Parents
  • Perfect, thanks for all the help. I was able to get this working using the IN operator - returning all records if the loggedinuser() is in one of 3 groups, otherwise returning only record IDs associated with the loggedinuser(). Awesome :)

    fldID

    IN

    if(or(doesuserbelongtogroup(loggedinuser(),getgroupnamed("Developers")),doesuserbelongtogroup(loggedinuser(),getgroupnamed("SIR - Admins")),doesuserbelongtogroup(loggedinuser(),getgroupnamed("SIR - Approval IT"))),rule!QR_SIR_All().fldID,rule!QR_SIR_ByInitiator(user(loggedinuser(),"username")).fldID)
Reply
  • Perfect, thanks for all the help. I was able to get this working using the IN operator - returning all records if the loggedinuser() is in one of 3 groups, otherwise returning only record IDs associated with the loggedinuser(). Awesome :)

    fldID

    IN

    if(or(doesuserbelongtogroup(loggedinuser(),getgroupnamed("Developers")),doesuserbelongtogroup(loggedinuser(),getgroupnamed("SIR - Admins")),doesuserbelongtogroup(loggedinuser(),getgroupnamed("SIR - Approval IT"))),rule!QR_SIR_All().fldID,rule!QR_SIR_ByInitiator(user(loggedinuser(),"username")).fldID)
Children
No Data