Jump to content

'ci' permission does not seem to affect merging


lukeb

Recommended Posts

Hi,

 

We've just started using Plastic [5.4.16.651] and I'm trying to set up security.  

 

My plan is to create a 'main' branch, which other developers can create sub-branches from but only I can check changes into.  I've seen this model mentioned in various places and I thought it would simply be a case of removing the 'ci' permission from the main branch for everyone other than me.

 

However, it seems whilst the removing the 'ci' permission prevents users checking changes directly into the branch, it does not prevent changes being checked in as a result of merging from a child branch.

 

Is there some other permission that must be used to prevent changes being checked in as a result of merge in a child branch?

 

Luke

Link to comment
Share on other sites

Hi Luke,

 

can you tell me more about the main branch ACL? Maybe an screenshot or the user permissions might help.

 

Also, how are you performing the merge operation? Is it a regular merge operation or a "merge-to" operation?

 

Thanks.

Link to comment
Share on other sites

  • I've created a group called 'developers' containing a user called 'testuser': post-29086-0-62960000-1429524160_thumb.png
  • The main branch is called 'trunk', owned by an 'admin' user and I've denied the 'ci' permission from the 'developers' group
  • The ACL for 'trunk' is below:
cm sa --extended br:/trunk

ACL: 1

Creator br:/trunk@rep:profile7@repserver:PLASTIC:8087

Entries

developers:

Denied:

ci

Inherited

ACL: 0

Creator rep:profile7@repserver:PLASTIC:8087

Inherited

ACL: 0

Creator repserver:PLASTIC:8087

Entries

administrators:

Allowed:

all

OWNER:

Allowed:

chgperm chgowner view read rename changecomment mkrepository rmr

epository rmchangeset rmlabel rmtrigger rmattr mkchildbranch mktop-levelbranch m

klabel mkattr mktrigger mergefrom applylabel applyattr replicateread replicatewr

ite add change move rm ci advancedquery all

developers:

Allowed:

all 

 

  • I've configured the plastic client to use the 'testuser' user (and confirmed with cm whoami)
  • I then try the following 2 scenarios

Scenario 1 : direct check out

  • checked a file directly from the 'trunk' branch
  • at this point the branch explorer looks like this: post-29086-0-23723600-1429522704_thumb.png
  • when I try and check in I get an error "You don't have permission on ...' as expected

Scenario 2 : child branch merge

  • created a child branch called 'test' from 'trunk'
  • switched workspace to 'trunk/test'
  • checked out a file, made changes, checked back in
  • switched workspace to 'trunk'
  • right clicked on 'trunk/test' and chose 'Merge from this branch...' then 'process all merges'
  • at this point branch explorer looks like this: post-29086-0-78240300-1429523725_thumb.png
  • I then attempted to check in the pending changes expecting to be prevented by lack of permission, but in fact it worked

 

I've tried various changes with Scenario 2 (defining permissions at user rather than group level, attempting the merge in a different way) but the effect is always the same - the checkin following the merge is always allowed.

Link to comment
Share on other sites

  • 4 weeks later...
  • 6 months later...
  • 2 weeks later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...