Solved

Set Permissions in Access

Posted on 2004-04-18
5
155 Views
Last Modified: 2013-12-24
I want to set permissions inside of folders in a database (Access) so that only certain people can access them.  I have a Users Table and a Folder Table and then a concatenated table of Users/Folders that only has a User ID and Folder ID in it.   If a user indicates a folder name and a user's email address I want to be able to populate the Users/Folders table with the association.

The code I wrote for this was:

<cfquery datasource="datasource">
INSERT INTO Folder_Assignment(user_id, menu_item_id)
VALUES ('user_id', 'menu_item_id')
WHERE email_address = '#email_address#"
  AND folder_name = '#folder_name#'
</cfquery>

But it doesn't seem to work.  Am I totally off base with the way I'm doing this or am I close at all?  
Anyone have any thoughts?

Thanks,
Nancy
0
Comment
Question by:narv813
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 18

Expert Comment

by:Plucka
ID: 10856528
Hi narv813,

What's the problem your having, I think I understand what your trying to do, not sure how menu_item_id relates to the folders though?
0
 
LVL 17

Expert Comment

by:anandkp
ID: 10857441
Hi

With Insert Into - u wont be having where clause ...
its gotta be normal insert strait up ...
Something like this :

INSERT INTO Folder_Assignment(user_id, menu_item_id)
VALUES (<CFQueryParam CFSQLTYPE="CF_SQL_NUMERIC" VALUE="#User_ID#">,
<CFQueryParam CFSQLTYPE="CF_SQL_VARCHAR" VALUE="#Menu_Item_ID#">)

hth

K'Rgds
Anand
0
 
LVL 35

Expert Comment

by:mrichmon
ID: 10861284
Anandkp is correct in that you don't use a WHERE clause in an insert statement.  If you can explain why you thought you needed it we can probably help you write an if statement around the INSERT that will account for the conditions you were trying to test for or help you insert the correct information into your tables.
0
 

Author Comment

by:narv813
ID: 10872507
Maybe I'm just confused on how the database knows which user is being accessed.  I was using the WHERE clause to show which user I'm defining access for.  I want the command to go to the users table, get the user ID for the user that has the email address ____________ put that user ID in the concatenated table along with the folder id that they can access.  Does that explain it?  Or am I just confusing the issue more?
0
 
LVL 35

Accepted Solution

by:
mrichmon earned 75 total points
ID: 10872657
Okay then you actually need 2 or even 3 queries.

It should be in a transaction so that it all happens together.

<cftransaction action="begin">
    <!--- First run a query to find the person's userid --->
    <cfquery datasource="yourdsn" name="GetUser">
          SELECT UserID FROM usertable WHERE EmailAddress = #Form.Email#
    </cfquery>
    <!--- Second run a query to find the folderid--->
    <cfquery datasource="yourdsn" name="GetFolder">
          SELECT FolderID FROM foldertable WHERE foldername = #Form.foldername#
    </cfquery>
     <!--- Now do the insert--->
    <cfquery datasource="yourdsn">
          INSERT INTO Folder_Assignment (user_id, menu_item_id)
          VALUES (#GetUser.UserID#, #GetFolder.FolderID#)
    </cfquery>
   <cftransaction action="commit">
</cftransaction>
0

Featured Post

Enroll in June's Course of the Month

June’s Course of the Month is now available! Experts Exchange’s Premium Members, Team Accounts, and Qualified Experts have access to a complimentary course each month as part of their membership—an extra way to sharpen your skills and increase training.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is a guide to setting up a new WHM/cPanel Server to be used for web hosting accounts. It is intended for web hosting company administrators and dedicated server owners. For under $99 per month (considering normal rate of Big Data Cetnters like …
Lease-to-own eliminates the expenditure of hardware replacement and allows you to pay off the server over time. Usually, this is much cheaper than leasing servers. Think of lease-to-own as credit without interest.
Come and listen to Percona CEO Peter Zaitsev discuss what’s new in Percona open source software, including Percona Server for MySQL (https://www.percona.com/software/mysql-database/percona-server) and MongoDB (https://www.percona.com/software/mongo-…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question