Author access in a custom database

I have created a database in which I want all the users to have author access. I set the default user in the ACL to be author but, for some reason, it doesn't work. A user can create a document, but once it is saved, that's it, they can't touch it anymore. I tried this with the "Write public documents" enabled and disabled, and neither helped. I have had to resort to giving them all editor access, but this means that they can edit each other's documents, and I don't want this. I tried using the @author command to verify that the author was being set correctly and it looked like it was. Do I need a hidden field to store the author's name? Or is something else wrong?
LVL 7
Z_BeeblebroxAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

sk5tCommented:
Try a computed-when-composed field of type Authors, value= @Username.  (Or editable, with default value= @Username, so the user can specifically let others in to edit.)  I'm pretty sure a names field called "Authors" will do the trick, but I avoid this out of sheer paranoia.

There are known problems associated with omitting an explicit author field.  (In general, save yourself a lot of headache and save the document's creator every time, even when you're not flagging it as author.)
0
HemanthaKumarCommented:
Hi

I had the same problem that u are facing now, Here is tip

Goto the form where u store the name of the user, check whether it is Authors type or Names, change to Authors Type.
Make that field to be computed and hold the formula to be the field value.

Write an agent with Formula @Command([ToolsrefreshselectedDocs]) and set the agent to run on selected docs.

Goto the view where u have the documents, Select all documents and run the agent.

After this is done, go back to the form and change the field formula to hold @USername and make it Computed when composed.


Good Luck
~Hemanth
0
Z_BeeblebroxAuthor Commented:
Perfect solution Hemanth. Even though sk5t had the same idea, you explained how to implement it and it works. One questions though. Why is this necessary. If I call @author it returns the author, so this info is already stored in the document in a default field, so why should I have to explicitly create my own authors field?

There is only one problem with your solution. Each document keeps a record of who has modified it. I want to eliminate my name from the end of that field, since now they all say that I modified the document last. Is there any easy way to do this?

Thanks,

Zaphod.
0
HemanthaKumarCommented:
Well it is not possible to modify the $Updatedby field, which is conrolled totally by Notes. If I remember correctly that @Author will return $updatedby if that doc doesn't contain any authors field.

You can see more info in the help for @Author

~Hemanth
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Lotus IBM

From novice to tech pro — start learning today.