My Notes

May 17, 2011 at 6:10 PM

Thanks again for doing this.  I'd like to post a link here from my blog, however I wanted to give you my impressions first.  My notes are minor, except for the first one.

 

I downloaded and ran it and I found some issues:

1. The biggest issue is that the calculations are wrong somehow.  The icons in the grid did not reflect the actual permissions when I tested it.

2. I suggest posting a compiled version so that non-programmers can use it.

3. The project has a reference to JustOnesAndZeros.WebServices.  I got it to compile by hooking the 1.0.3.0 version of the DLL, but that's not a good idea since that's synced to Vault 2011.
I consider JustOnesAndZeros.WebServices to be a failed experiment, and I will not be updating it for Vault 2012.  So you might just want to remove it entirely and copy over any code you want to re-use.  

4. You should include a readme file with the source.  If not for your posting, I would have had no idea to click on a cell in the grid.

5. The update idea is good, but you are only updating a single ACE without seeing the full ACL.  I'm of the opinion that you need to see the entire ACL.  Otherwise you will run strange behavior. 
For example, you edit the ACE for user A and give him Allow for everything.  However the permission shows as Read Only because, elsewhere in the ACL, there is an entry denying write and delete for Everyone.

Coordinator
May 18, 2011 at 12:30 AM
Edited May 18, 2011 at 6:27 PM

1.  Did you find that the grid was wrong for just users or groups and users.  I don't think the groups code changed at all from your original.  The user's permissions icons are a little bit different. Obviously a user's permissions are not only dependent on his permissions but also any groups that he belongs to.  I need to make a good test suite to verify it. 

2.  I'll get one up there tomorrow.

3.  The only part of the JustOnesAndZeros.WebServices that was used was the Dialogs.FolderBrowseDialog Class.  It get's used inside the SettingsForm.cs file.  Why did you put a dialog inside of the WebServices DLL?  I may reimplement the dialog at some point it just wasn't high on my list because it seemed to work properly

4.  Good idea!

5.  I'll see what I can do.  I've noticed that behavior and justified it to myself because it was no different than if you were updating a single ACE natively in Vault.  I'm secretly hoping that someone else might contribute a fix though I'm not holding my breath. 

May 18, 2011 at 12:47 PM

1. The grid is wrong for users.  I didn't check the groups tab. 

Here is a screenshot of my EFP and a screenshot of yours.  Notice that many of the cells are different. 

My guess is that your program doesn't take the Everyone group into account properly.  For example, the permissions of the $\_Users folder is { Everyone {allow read}, Administrator {allow read, allow write, allow delete}}.  So Hicks should have read-only permissions, but your app shows no access.

 

3. JustOnesAndZeros.WebServices was used to store common components for my Vault 2011 apps. A folder browse dialog is a common component, so that's why I put it there.

JustOnesAndZeros.WebServices was used mostly for the ServiceManager.  Since that piece was built in to the Vault 2012 API, JustOnesAndZeros.WebServices is less useful.  You might find it easier to just copy the dialog into your project.  That way you have only 1 DLL.

Coordinator
May 18, 2011 at 6:53 PM

Ok I figured out what was wrong with the permission icons not being correct and have updated the code accordingly.  The issue was that I was not running the GatherACL() method after the switch from Groups to Users.  Initially I only had the method run once on Init().  I have also pulled the dialog out of the JustOnesAndZeros project and removed the dll from the references.

Hopefully I'll have some time to work on #5 later. 

Thanks for your feedback!