Welcome to Telelogic Product Support
  Home Downloads Knowledgebase Case Tracking Licensing Help Telelogic Passport
Telelogic DOORS (steve huntington)
Decrease font size
Increase font size
Topic Title: Access Rights Manipulation
Topic Summary:
Created On: 11-Sep-2006 13:34
Status: Post and Reply
Linear : Threading : Single : Branch
Search Topic Search Topic
Topic Tools Topic Tools
Quick Reply Quick Reply
Subscribe to this topic Subscribe to this topic
E-mail this topic to someone. E-mail this topic
Bookmark this topic Bookmark this topic
View similar topics View similar topics
View topic in raw text format. Print this topic.
Answer This question was answered by Octavian Stanescu, on Monday, September 11, 2006 10:26 PM

Answer:
I end up creating a Skip list with all users but the 2 groups. So the code become: for ar in nm do { arName = username(ar) if(arName != "" and arName != valAdmins and arName != valTeam) >> set(nm, read, arName) << put(sList, i, arName) << i++ } then: for arName in sList do set(nm, read, arName I think this is a bug in DOORS, but I am happy I got it to work...
 11-Sep-2006 13:34
User is offline View Users Profile Print this message


Octavian Stanescu

Posts: 39
Joined: 28-Feb-2005

Hi,
I would like to single out 2 groups to have Read Modify rights only to 2 attributes in the entire module and have RMD to the Module itself, so they can delete the module but not add/delete any objects.

The code that I came up with is attached. This code fails half the time and crashes the entire DOORS application.
 
This module should allow only these 2 groups to only modify 2 attributes in it, because it is acually a copy of a baseline. So this way only these 2 attributes can be changed, but the actual module cannot be changed (modifications to Object Text/Heading, deletes/inserts on objects).

Any ideeas of how to achieve the same thing.
Thank you.
Report this to a Moderator Report this to a Moderator
 11-Sep-2006 13:56
User is offline View Users Profile Print this message


Tony Goodman

Posts: 1098
Joined: 12-Sep-2002

Are you running this script as Administrator?
If not you may come unstuck changing acess rights in a loop, because the current user will have his access rights changed within the loop.

-------------------------
Tony Goodman
http://www.smartdxl.com
Report this to a Moderator Report this to a Moderator
 11-Sep-2006 13:56
User is offline View Users Profile Print this message


Octavian Stanescu

Posts: 39
Joined: 28-Feb-2005

This is the error from DXL runner: -R-E- DXL: An unexpected error has occurred: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 001B:005353C3 And this is the error from Diagnostic log: DOORS: **** Translating a structured exception **** DOORS: Version DOORS 7.1, build number 71170, built on Oct 3 2005 13:20:15. DOORS: Whistler Service Pack 2 (Build 2600) DOORS: DOORS: 58 percent of memory is in use. DOORS: There are 1039732 total Kbytes of physical memory. DOORS: There are 435100 free Kbytes of physical memory. DOORS: There are 1467856 total Kbytes of paging file. DOORS: There are 1012172 free Kbytes of paging file. DOORS: There are 1fff80 total Kbytes of virtual memory. DOORS: There are 1e4db4 free Kbytes of virtual memory. DOORS: argv[0]: C:\Program Files\Telelogic\DOORS 7.1\bin\doors.exe DOORS: doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module doors.exe at 001B:005353C3 DOORS: 001B:005353C3 (0x00001AF4 0x03FF95C8 0x00B1DD10 0x043E2EAC) doors.exe DOORS: 001B:0059F9F2 (0x0012E608 0x03FFC2C0 0x03FFAC30 0x00B1DD10) doors.exe DOORS: 001B:007086DD (0x03FF95C8 0x03FFC2AC 0x03FFB144 0x00B1DD10) doors.exe DOORS: 001B:00709295 (0x03FFAC30 0x00000004 0x03FFB0E0 0x00B1DD10) doors.exe DOORS: 001B:00709295 (0x03FFB144 0x00000004 0x03FFB050 0x00B1DD10) doors.exe DOORS: 001B:00709432 (0x03FFB0E0 0x014065B0 0x04391C40 0x04397960) doors.exe DOORS: 001B:00709546 (0x03FFB050 0x04391D80 0x00000000 0x04397960) doors.exe DOORS: 001B:0070E9B0 (0x04391C40 0x00000000 0xFFFFFFFF 0x04397800) doors.exe DOORS: 001B:008CB8E1 (0x04397800 0x04391D80 0x04391C40 0x04397BF0) doors.exe DOORS: **** end of event ****
Report this to a Moderator Report this to a Moderator
 11-Sep-2006 14:01
User is offline View Users Profile Print this message


Octavian Stanescu

Posts: 39
Joined: 28-Feb-2005

I am running it as a member of both groups valAdmin and valTeam, neither of which changes rights where the failure occurs. Also, this script should modify access to the administrators as well, we don't want anybody to change the contents of this module, only delete the entire module if needed.
Report this to a Moderator Report this to a Moderator
 11-Sep-2006 14:34
User is offline View Users Profile Print this message


Tony Goodman

Posts: 1098
Joined: 12-Sep-2002

I tested your code and confirmed my suspicions.
You are setting specific access frights to read-only for yourself - this overwrites the access rights inherited from group membership.

If you are going to change access rights in this way do the following:

First, give yourself (the current user) full access rights (specific, not inherited)
Then change the access rights for groups.
When you have finished
set your own specific access right back.

-------------------------
Tony Goodman
http://www.smartdxl.com
Report this to a Moderator Report this to a Moderator
 11-Sep-2006 14:48
User is offline View Users Profile Print this message


Octavian Stanescu

Posts: 39
Joined: 28-Feb-2005

Thank you for taking the time to paly with the code.
So you are saying that wher iterating over the access rights (for ar in module) not only the groups are ther but the current user too? - this is odd...???
This was part of the copyBaseline script that I am trying to create.
So I will try the following:
1. I will save the access records (ar) ar for the Parent Folder first in a Skip list 
   (hopefully this will only have the groups excluding the two that I am interested in)
2. Copy the baseline
3. specific set to the new module
4  set access from the skip list to Read at the module level - so it will go down to everithing)
5 then deal with the 2 groups that I am part of.

This way I will avoid setting any access in a loop of type: "for ar in module".

Thanks a lot,
Octavian 
Report this to a Moderator Report this to a Moderator
 11-Sep-2006 22:26
User is offline View Users Profile Print this message


Octavian Stanescu

Posts: 39
Joined: 28-Feb-2005

Answer Answer
I end up creating a Skip list with all users but the 2 groups. So the code become: for ar in nm do { arName = username(ar) if(arName != "" and arName != valAdmins and arName != valTeam) >> set(nm, read, arName) << put(sList, i, arName) << i++ } then: for arName in sList do set(nm, read, arName I think this is a bug in DOORS, but I am happy I got it to work...
Report this to a Moderator Report this to a Moderator
Statistics
20925 users are registered to the Telelogic DOORS forum.
There are currently 2 users logged in.
The most users ever online was 15 on 15-Jan-2009 at 16:36.
There are currently 0 guests browsing this forum, which makes a total of 2 users using this forum.
You have posted 0 messages to this forum. 0 overall.

FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.