Find an answer 
 
Contact us
 
 My stuff 
  show accessible links  
  Help  
 
 
      Tips
Select a product View Product Hierarchy
Restrict by date range
 

  Answer ID  
7161
  Products  
  FileMaker Pro
    10.x
  FileMaker Pro Advanced
    10.x
  Last Updated  
Oct 23, 2009 09:27 AM PDT

 Printer Friendly Version of This Answer  Print Answer

 Email This Answer  Email Answer
 
  Record Level Access Behavior in FileMaker Pro 10
  Question
 

Why do my Record Level calculations fail in FileMaker Pro 10 even though they work fine in FileMaker Pro 9?

  Answer
 

Record Level Access (RLA) calculations in privilege sets that rely upon Get ( ExtendedPrivileges ) or upon certain elements of the security schema itself will fail in FileMaker Pro 10 even though they worked fine in previous versions.

In FileMaker Pro 10, you have to put the name of the privilege set in the calculation. Since the calculation is in the privilege set definition, it is a constant. Much like when doing calculations in scripts running as full access, all privilege calculations are now evaluated from the standpoint of the [Full Access] Privilege Set.


BACKGROUND:

Record Level Access is a key feature of the security schema introduced with the release of FileMaker Pro 7. At its simplest level, it imposes tests to determine whether a user can view, edit, create, or delete records in a given table of a file. The test returns a Boolean result: True or False. If the test is passed, the action is allowed; otherwise, it is blocked.

All of these actions take place within the confines of and the context of a specific Privilege Set. Indeed, the Granularity of Access Principle inherent in the Role Based security model of FileMaker Pro specifically contemplates that the Privilege Set is the overall “wrapper” of a specific set of RLA calculations, along with most all other security based settings. Each specific Privilege Set defines the rules for a specific role; there can be many roles, and therefore, many Privilege Sets.


BEST PRACTICES:
Use only appropriate tests for RLA. This does not include elements of the security or business logic schema themselves, specifically including Extended Privileges, Privilege Set Name, and Layout Name.

Appropriate RLA tests are those whose determinations lie outside the definition of the Privilege Set itself.  It is almost circular logic to say that a Privilege Set bit’s definition must rely on something within that Privilege Set itself.

The table below attempts to identify some RLA tests of each type.  It surely is not comprehensive, since the access of the calculation engine is so broad.


 APPROPRIATE  INAPPROPRIATE
Get ( AccountName ), although the value for any given Account can be different depending on the authentication method (long name, short name, UNC, UPN) A Custom Extended Privilege value within the active Privilege Set, or likely within another Privilege Set if there were a way to access it.
Get ( WindowMode ) Any tests that will evaluate differently on the client than it will on server, since RLA are sever based.   See answer 6996
Some business-process-driven state of a record, e.g. a lock flag, or record that is not yet committed, etc. Likely the name of the Privilege Set itself.
Get ( ApplicationVersion ) {possible unexpected results in localized versions other than English due to the way decimal separators are managed} Get ( RecordModificationCount ) {has failed in the past in scripted actions}
Get ( SystemVersion ) or Get ( SystemPlatform ) (either at gross level of Macintosh or Windows, or a more discrete level, Tiger vs. Panther, XP vs. Vista, etc.) ScriptNames, LayoutNames. or WindowNames, etc. since they can be spoofed
Get ( CurrentDate ) vs. some other date in the past or future  
Get ( CurrentHostTimeStamp ) vs. an accepted range of times  {e.g. records cannot be edited after 1:00 PM on the day they are created}  
ScriptID  
LayoutID (must be coerced by a custom function as a general rule)  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 
 
 
  
 
  Users who viewed this answer have also viewed
 
Back to Previous Document
  Back to Previous Document  

Tell us about your Knowledge Base experience!
All use of this article is subject to FileMaker's Terms of Use.