Jump to content

Restricted access to directories in repository


Recommended Posts

Hi,

 

We recommend to separate projects in different repositories: (1 repository per project).

 

This way, if you need to combine different projects, you can use Xlinks to combine the repositories. The advantage of using Xlinks is that you can configure view permissions for the different repositories. You can also mount the different repositories (projects) according your needs.

 

I think Xlinks would fit in your scenario (http://www.plasticscm.com/releases/4.1/manuals/en/xlinksguide.pdf)

 

repA

|______ repB

|______ repC

|______ repD

repA is repository who has links to other repositories (projects). You can manage permission at repository level to configure the different users you want to access to repB, repC, rep D.

 

For example: user1: with permissions to all repositories

                    user2: with permissions to repD.

 

 

Regards,

Carlos

Link to comment
Share on other sites

  • 1 month later...

I tried to solve my problem by xlinks.

Unfortunately it does not work (plastic scm v 4.2.39.466).

 

Here is my test setup:

 

Repositories:

- Subproj1

- Subproj2

- SubProj3

- TestProject

 

TestProject is main project with xlinks,  it has directories:

Subproj1 (xlink to  Subproj1 repo)

Subproj2 (xlink to  Subproj2 repo)

SubProj3 (xlink to  Subproj3 repo)

 

 

Users:

- admin. Admin has access to all repos

- user1: User has access to Subproj1, Subproj3 but not to Subproj2 (user1 has deny all permissions to Subproj2 repo)

 

 

I have some files in all repos, now user1 want to checkout TestProject files and he see message about update problems:

"Path: Subproj2 You don't have permissions for operation view". It's confusing because user1 should not know anything about Subproj2.

 

Worse: plasticscm creates an empty directory Subproj2 in user1 workspace.

User1 look at it and comes to the conclusion that the directory is unnecessary. So delete it and make checkin.

Consequently xlink to Subproj2 is deleted in the main project.

 

So User1 can make changes to mainproject and destroy the xlink configuration. His mistake affects other users.

 

In old plasticscm version (with permissions on file/directory level) I could completely hide the directory from the user. The user can do checkin/checkout and not know anything about hidden directory.

Why in the current version that is not possible? This means that the program is useless in more advanced configurations.

Link to comment
Share on other sites

Hi,

 

In your scenario, (if you want to completely hide the directory from the User1), the best solution would be to a create two repositories. Admin user uses "Admin_repo" and User1 uses "Outsourcing_repo", where only has two Xlinks charged.

e.g:

 

Admi_repo

- Subproj1

- Subproj2

- SubProj3

 

Outsourcing_repo

- Subproj1

- SubProj3

 

This way, you avoid "User1" to commit changes to "Subproj2" repository.

 

Regards,

Carlos

Link to comment
Share on other sites

Hi,

 

In your scenario, (if you want to completely hide the directory from the User1), the best solution would be to a create two repositories. Admin user uses "Admin_repo" and User1 uses "Outsourcing_repo", where only has two Xlinks charged.

e.g:

 

Admi_repo

- Subproj1

- Subproj2

- SubProj3

 

Outsourcing_repo

- Subproj1

- SubProj3

 

This way, you avoid "User1" to commit changes to "Subproj2" repository.

 

Regards,

Carlos

 

 

Yes, this is a solution.

But this solution is acceptable only for simple setup. This is no problem if you have small number of users (or user groups).

 

What if I have more users with different rights?

For example: I have admin and five users. Each of these users have access to a common repository, and each has its own repository.

So I need:

common repository, five subproject repositories, six (admin + five users) user repositories with xlinks

 

In summary: 12 repos for one simple project ...

And I need to edit xlinks after user changes.

For example If admin make changes in common repo, each user must change xlink to common repository.

In branch explorer user dont see the changes in common repo, so admin must send message to the user about new version.

 

This all is very complicated ....

 

Is there any other solution ?

Old permissions system on file/directory level was good for our needs. Why it was changed in the new version ?

Link to comment
Share on other sites

Hi,

 

In your scenario you could need more repos, but it´s only in case you need to completely hide the directory from the User1. The more common workflow using Xlinks is to have a repo containing some lineked subrojects. Then you can edit user permissions at repository level.

 

For instance, you can deny checkin permissions to "User1" in "Subproj2" and deny chekin, remove, add and move permissions to "User3"  in "Subproj2".  If you need to completely hide the directory from a user, the best solution would be to a create a new repository as I explained in my last post. 

 

We have companies that have 2 or 3 profiles (eg. developers, outosourcing, designers) and they create a custom repo for each profile using Xlinks, but not a repo per every Plastic user.

 

Regarding the problem of two people working on the same Xlink: Let´s say that "User1" make a change in a common repo. "User2" doesn´t know about this change and perform another change. A merge window will appear, and after the merge, a new changeset is created. Your Xlink will point to the last changeset (you don´t need to manually edit it). 

 

In Plastic 4, you can also manage path permissions. Right click on a file --> Path permissions.

 

Regards,

Carlos

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...