Skip to main content
July 28, 2023
Solved

Application Security Role update with Business Rules

  • July 28, 2023
  • 13 replies
  • 0 views

Is it possible to update the Application Security roles with in an extender Business rule? I want to be able to update the Modifydata role with the push of a button.

Best answer by photon

I've been able to update security groups without an IIS reset using a BR, here are the relevant pieces:

Dim objMember As WritableMember = BRApi.Finance.Members.ReadWritableMemberNoCache(si, DimType.Entity.Id, memberName)

objMember.ReadDataGroupUniqueID = BRApi.Security.Admin.GetGroup(si,groupName).Group.UniqueID

BRApi.Finance.MemberAdmin.SaveMemberInfo(si, True, objMember, False, properties, False , descriptions, TriStateBool.FalseValue)

 We've had this running on a nightly schedule to keep our descriptions up to date with MDM but it could be hooked to a button press just the same. I don't know how it compares to Jack's method and his certainly looks simpler but maybe it will be of some use.

13 replies

July 31, 2023

It's OneStream, of course it's possible 😎

Check out BRApi.Security.Admin.GetRole and .SaveRole.

July 31, 2023

Thanks JackLacava .  To put a little more structure around this, the requirement is to lock a scenario (using a button) for a period of time, then set it back to its original access with another button.

Use Case:
An all day meeting with the CFO commences to discuss and refine a forecast.  During this meeting the scenario needs to be locked down to prevent a potential moving target, changing values.  When the meeting is over the scenario is opened back up and FAs are given tasks to update the forecast.
The admin wants a simple set of on/off buttons to accomplish the locking/unlocking of the scenario.

July 31, 2023

Would locking/unlocking the workflow not be a valid approach for this?

photonAnswer
July 31, 2023

I've been able to update security groups without an IIS reset using a BR, here are the relevant pieces:

Dim objMember As WritableMember = BRApi.Finance.Members.ReadWritableMemberNoCache(si, DimType.Entity.Id, memberName)

objMember.ReadDataGroupUniqueID = BRApi.Security.Admin.GetGroup(si,groupName).Group.UniqueID

BRApi.Finance.MemberAdmin.SaveMemberInfo(si, True, objMember, False, properties, False , descriptions, TriStateBool.FalseValue)

 We've had this running on a nightly schedule to keep our descriptions up to date with MDM but it could be hooked to a button press just the same. I don't know how it compares to Jack's method and his certainly looks simpler but maybe it will be of some use.

August 1, 2023

I actually got something similar to work last night! This is great tho, thanks for sharing!