Closed (won't fix)
Project:
Hosting
Version:
6.x-0.4-alpha3
Component:
User interface
Priority:
Minor
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
1 Sep 2010 at 19:05 UTC
Updated:
25 Apr 2015 at 16:12 UTC
Jump to comment: Most recent
Comments
Comment #1
sfyn commentedThis was originally submitted by cmcintosh in the uc_hosting documentation.
I think it is a feature request for hosting and am submitting it as such.
Comment #2
cmcintosh commentedSo here is a quick use case to get an Idea of why i think this is useful in some cases:
Say you have a group of Users/Clients running a Drupal 6 platform. You want to make sure that they have only access to create, migrate, and clone sits in this Drupal 6 platform area. Well currently you could go per User/Client and give them permissions to do this. Now here is where the problem would come in, lets say you have around 100 -200 users/clients and you are now releasing a security update say from D6.16 to D6.17, you would have to go to each user/client and give them permission to use the new platform. This is tedious and not realistic way to run a hosting service.
Instead you should have a way to group users and give these user/client groups permissions, keeping granularity for special cases. So something like the existing permissions system in drupal, applied to the platforms available in your aegir host. this way when you add a new Drupal 6.17 platform you can add permissions to use it to the groups you wish, then presto your users/clients in this group can upgrade their site to the new platform when needed. This sort of automation is needed for setups where you have a lot of clients or where you have low-end clients whom you dont or cant profitably spend a lot of time on upgrading/giving permissions too.
Comment #3
cmcintosh commenteda suggestion was made by vertice to try Taxonomy Access to accomplish, before using custom code or a new module I will try and report back here.
Comment #4
ergonlogicIt looks like adding access control based on taxonomy (http://drupal.org/project/taxonomy_access) is likely the best solution to accomplish this.
From a recent IRC conversation:
Comment #5
cmcintosh commentedOkay so a couple of issues going on here. I tried TAC and it did not work, switched to Node Access module, and it did not work at filtering either. Turns out that there is not any real tracking going on for the platforms as far as permissions goes. So what i did first was change:
in site/hosting_site.form.inc change this line:
if ($platform->platform_status != HOSTING_PLATFORM_LOCKED ) {
to this
if ($platform->platform_status != HOSTING_PLATFORM_LOCKED && node_access('view', $platform)) {
There is more to come, but i got a quick meeting, and will follow up a bit more after
Comment #6
cmcintosh commentedokay so the above solution does not work fully, the reason being is if you give a user access to view a node, they could then go to the Platform's actual node. Per vertice we need a List permision so that we can list the node, but not give access to it.
So what i did was change the hosting_platform.module line 79 to this:
$perms = array('create platform', 'view platform', 'list all platforms', 'edit platform', 'delete platform', 'view locked platforms');
$obj = _hosting_get_platforms();
foreach($obj as $platform){
if($platform !== 'hostmaster'){
$perms[] = 'list '.$platform.' platform';
}
}
return $perms;
then in hosting_site.form.inc we do this on line 126:
if ($platform->platform_status != HOSTING_PLATFORM_LOCKED && user_access('list all platforms', $user) || user_access('list '.$title.' platform', $user) ) {
this gives the ability to filter based on a new view permission that is being set in the hosting_platform.module
Comment #7
Robin Millette commentedsubbing
Comment #8
anarcat commentedA better title. I think this should focus on filtering and frontend access control, and this would give users creation rights on the sites, but not necessarily rights to the whole platform itself, see #1345120: platform access control settings should allow full access to the platform for resolving that ambiguity.
In a way, maybe this is outside the scope of aegir - maybe a thirdparty module or just some fiddling with access control should do this. Platforms should be node_access-ready, but beyond that, I am not sure it's that important we deal with this further, within the scope of Aegir, because uc_hosting or other modules will have different ways of doing this (a custom table for uc_hosting, taxonomy for development teams, etc).
So in a way, I see this issue as a duplicate of #725952: implement node-level access permissions for platforms - am I missing something here?
Comment #9
cmcintosh commentedprobably. i have moved on from needing this my self. with having a front end store for aegir, most of my users do not have any way to know what the platforms are. We probably could close this issue unless someone else still needs it
Comment #10
ergonlogicThis could be handled in contrib, and no activity in 3+ years, so closing here.