7 Replies Latest reply on May 29, 2009 12:52 PM by TSGal

    How to show only records a user has the ability to view.

    DSM

      Title

      How to show only records a user has the ability to view.

      Post

      Everything was working fine with my database, I have many accounts some of which do not have access to all the records in some of my tables. To prevent those records from showing up when the user opened a particular layout I had a script that ran upon opening the layout that performed a find to omit all files that were marked as "No Access".

       

      Suddenly this no longer works.

       

      Is there a better way to do what I am trying to do? If not, does anyone know why my solution is suddenly not working after months of working fine?

        • 1. Re: How to show only records a user has the ability to view.
          craig5005
            

          Check to make sure your No Access field is still populated properly.  Maybe along the way all the records with no access somehow got changed to access, or the field has been cleared.

           

          I know it sounds like a stupid answer, but sometimes that's all it takes to screw things up like that.

          • 2. Re: How to show only records a user has the ability to view.
            Jade
              

            DSM wrote: 

            Is there a better way…


            I think it is more secure to restrict the user's privileges.  Using Find to omit these records can easily be defeated (e.g. if the user selects "Show All Records").
            Edit the privilege sets for these users and set the Records pop-up menu to 'custom privileges'.  Then set the View pop-up menu to 'limited'.  This will allow you to enter a calculation: yourField ≠ "No Access" into the box labeled "Records can be viewed when" 
            • 3. Re: How to show only records a user has the ability to view.
              DSM
                

              It seems to me that my script has completely stopped working. I have the script scheduled upon the loading of a layout. It performs a find to omit all records that the account has "No Access" to. Otherwise the records appear with "No Access" in all fields.  The script was working, and since this script is so simple, I created a new script and applied it. At first the new script worked, but once I tried to access the layout through the web interface, the new script seems to have stopped working.

               

              This is the second time that I have had problems with a script in Filemaker. The last time I had this problem I simply recreated the script the exact same way I had before, and the script has worked ever since. Has anyone else had problems with scripts suddenly not working?

              • 4. Re: How to show only records a user has the ability to view.
                craig5005
                   Again, might seem like a relatively simple answer, but open your script, click "Indicate Web Compatibility" and make sure none of your script commands get shadded out.  If they do, that is why it is not working when accessing your database from the web.
                • 5. Re: How to show only records a user has the ability to view.
                  DSM
                    

                  First of all I want to thank you all for all of your coments.

                   

                  The script that has stopped working is a simple one line script that I perform upon the loading of a certain layout. All this script does is a "Perform Find" command to omit all records that return a "No Access" because the user that has logged in does not have access to view those records.

                   

                  It would be much more simple if the records that a user did not have access to did not show up in the layout at all, but this simple script was the only way I could find to prevent users from seeing hundreds of records in the layout that only said "No Access".

                   

                  The "Perform Find" command is compatible with the Web Client. Thanks for the suggestion.

                   

                  Still searching for the answer. As I said, this script did the job for a few months, and has now stopped working. I can recreate the script and it works for a short period of time on the Client machines, but will no longer work from the web interface. Another note on the subject: Since the script is only performing a simple find, when I open the web client I can select "Modify Last Find" it prefills info from the script and I can click perform find and everything works great that way. This is very strange to me.

                  • 6. Re: How to show only records a user has the ability to view.
                    DSM
                       Also, I have tried to put a button on the page to run the simple script to see if it was just the "OnLayoutLoad" action that was causing a problem, but the script does not work even when I create a button to run it.
                    • 7. Re: How to show only records a user has the ability to view.
                      TSGal

                      DSM:

                       

                      Thank you for your post.

                       

                      There is obviously something in the script that the web client doesn't like, and it's difficult to determine without seeing the file.  This is what I would try.

                       

                      Create additional fields or a new table with test fields.  For each step in the script, write the information into the fields.  For example, if you are grabbing the User Account, write that to one of the fields.  If you are finding records, put the search criteria into the next field.  Put the found count into the next field.  Continue this through the entire script.  Run this script locally, and run the script via Instant Web Publishing.  Check the differences.  This may (or may not) provide a clue to what is causing the script to fail.

                       

                      TSGal

                      FileMaker, Inc.