Exclusive open mode

All,

I have opened a module in the exclusive mode, however I wasn't able to edit anything. The objects in the module were greyed out. In fact, whichever
mode I was using to open the module, it all ended up with the same result.

However if I use my admin account log in, the issue didn't appear. The thing is that I cannot give everyone admin rights to the module.

Has anyone got any idea what caused this and how to resolve it?

Cheers,
Angela
BPA - Thu Jul 08 21:54:07 EDT 2010

Re: Exclusive open mode
Peter_Albert - Fri Jul 09 02:56:37 EDT 2010

The module seems to have very restrictive access rights, with read-access only for everybody. Check File --> Module properties --> Access. There you can assign Read, Modify, Create, Delete and Admin rights to specific users / groups.

If this does not help, then you have to check the individual attribute's access rights via Edit --> Attributes --> Attribute Name --> Access (Value).

Now that I think about it, as you have been able to open the module in exclusive edit mode, I guess it must be the attribute access rights. Having read-only access to the module prevents exclusive edit mode at all.

Regards,

Peter

Re: Exclusive open mode
llandale - Fri Jul 09 13:24:59 EDT 2010

Most likely you lack modify rights to any of the objects, or less likely lack modify rights to any of the attribute (values). Right click on an object, properties, access; it tells you your rights.

  • Louie

Re: Exclusive open mode
SystemAdmin - Sun Jul 11 23:32:27 EDT 2010

llandale - Fri Jul 09 13:24:59 EDT 2010
Most likely you lack modify rights to any of the objects, or less likely lack modify rights to any of the attribute (values). Right click on an object, properties, access; it tells you your rights.

  • Louie

I kind of wonder if this module has previously been configured for shareable edit mode and some where down the track the module level access rights have been modified to provide edit access to some new users. However, these changes to access rights at the module level will not have any effect on the objects as the "Inherit from parent" option will have been disabled by setting up the module for shareable edit mode. After all of these years - I still don't understand why DOORS doesn't have a menu options to remove or refresh shareable edit mode.


Paul Miller

Re: Exclusive open mode
BPA - Tue Jul 13 21:09:33 EDT 2010

SystemAdmin - Sun Jul 11 23:32:27 EDT 2010
I kind of wonder if this module has previously been configured for shareable edit mode and some where down the track the module level access rights have been modified to provide edit access to some new users. However, these changes to access rights at the module level will not have any effect on the objects as the "Inherit from parent" option will have been disabled by setting up the module for shareable edit mode. After all of these years - I still don't understand why DOORS doesn't have a menu options to remove or refresh shareable edit mode.


Paul Miller

Thanks all for your responses.

Paul you are right that this module has been configured for shareable edit mode. At the time of the configuration, the module level access rights were set as follows:
  • DB Admin (RMCDA)
  • Everyone else (R)

Followed that I added a new user group which has RMCD access to the module. This was when the issue occured - members of the new user group were not able to edit in the exclusive mode.

Peter I have also checked the individual attribute’s access rights, and they all have RMCD (‘Inherit from parent’ option is enabled).

And yes Louie the New User Group has a None access to the objects.

Is there a way to populate the correct rights to objects in bulk?

Is there a way to manually remove the shareable edit mode?

Re: Exclusive open mode
Peter_Albert - Wed Jul 14 03:39:20 EDT 2010

BPA - Tue Jul 13 21:09:33 EDT 2010
Thanks all for your responses.

Paul you are right that this module has been configured for shareable edit mode. At the time of the configuration, the module level access rights were set as follows:

  • DB Admin (RMCDA)
  • Everyone else (R)

Followed that I added a new user group which has RMCD access to the module. This was when the issue occured - members of the new user group were not able to edit in the exclusive mode.

Peter I have also checked the individual attribute’s access rights, and they all have RMCD (‘Inherit from parent’ option is enabled).

And yes Louie the New User Group has a None access to the objects.

Is there a way to populate the correct rights to objects in bulk?

Is there a way to manually remove the shareable edit mode?

> Is there a way to populate the correct rights to objects in bulk?

This depends on what you mean with "correct rights". If you just want to set the access rights to inherit from parent, then the "inherited (Object obj)" routine and a loop through all objects is all you need. This also answers your second question about removing shareable edit mode, which you effectively do when all objects inherit access rights.

I have attached a script originally written by Craig Forant which displays the sections currently set for shareable edit, and which allows you to easily add and remove sections. Just select "Uncheck all" and "Create sections" to remove all sections (Hmm, press "Create sections" to remove all sections, ... probably there is room for improvement regarding the button titles).

It is overkill for just removing all sections, but nice to have anyway.

If you do want to specify specific access rights to objects, you will need too look up the "set(Object obj, Permission ps, string user)" routine.

Regards,

Peter
Attachments

attachment_14486489_setShare.dxl

Re: Exclusive open mode
llandale - Wed Jul 14 11:13:25 EDT 2010

BPA - Tue Jul 13 21:09:33 EDT 2010
Thanks all for your responses.

Paul you are right that this module has been configured for shareable edit mode. At the time of the configuration, the module level access rights were set as follows:

  • DB Admin (RMCDA)
  • Everyone else (R)

Followed that I added a new user group which has RMCD access to the module. This was when the issue occured - members of the new user group were not able to edit in the exclusive mode.

Peter I have also checked the individual attribute’s access rights, and they all have RMCD (‘Inherit from parent’ option is enabled).

And yes Louie the New User Group has a None access to the objects.

Is there a way to populate the correct rights to objects in bulk?

Is there a way to manually remove the shareable edit mode?

Sadly, shared sections are implemented via object access rights. Once you set an object to 'Specific' and no longer 'Inherited', you get a shared sections. But since it does not 'Inherit', adding a group to the module will not add it to these objects. You need to 'refresh' the module's objects with the new Module rights.

The following should do this 'refresh'. Note that if you already provided certain folks access to certain objects, those will be erased.



void  RefreshSection(Object obj) 
{ 

if (

null obj) 

return bool  IsInherit Object oChild isAccessInheritied(obj, IsInherit)   

if (!IsInherit) 
{  specific(obj) inherited(obj) 
} 

for oChild in obj 

do 
{  RefreshSection(oChild)  
// *** RECURSION *** 
} 
}  
// end recursive RefreshSection()   Object oTop 

for oTop in top (current Module) 

do 
{  RefreshSection(oTop) 
}

The normal "for obj in entire module" loop might not work since you must insure that all parent objects of an object are refreshed before you refresh this object.

An alternative method is to store all the 'specific' objects in the module, set them all 'inherited', then set those back to 'specific'.

  • Louie

Re: Exclusive open mode
BPA - Tue Jul 20 21:54:01 EDT 2010

llandale - Wed Jul 14 11:13:25 EDT 2010
Sadly, shared sections are implemented via object access rights. Once you set an object to 'Specific' and no longer 'Inherited', you get a shared sections. But since it does not 'Inherit', adding a group to the module will not add it to these objects. You need to 'refresh' the module's objects with the new Module rights.

The following should do this 'refresh'. Note that if you already provided certain folks access to certain objects, those will be erased.




void  RefreshSection(Object obj) 
{ 

if (

null obj) 

return bool  IsInherit Object oChild isAccessInheritied(obj, IsInherit)   

if (!IsInherit) 
{  specific(obj) inherited(obj) 
} 

for oChild in obj 

do 
{  RefreshSection(oChild)  
// *** RECURSION *** 
} 
}  
// end recursive RefreshSection()   Object oTop 

for oTop in top (current Module) 

do 
{  RefreshSection(oTop) 
}

The normal "for obj in entire module" loop might not work since you must insure that all parent objects of an object are refreshed before you refresh this object.

An alternative method is to store all the 'specific' objects in the module, set them all 'inherited', then set those back to 'specific'.

  • Louie

Thankyou. Problem is solved.