OK I've spent hours reading through the various shared database multisite options including TAC, multi-domain, OG, Domain-access and a number of others. Many of them seem to be very much concerned with access control for a community of logged-in users. One thing I'm not seeing clearly is the ability of a solution that allows a good old fashioned Web 1.0 webmaster to control exactly what content goes to which site.
By this I mean that for a casual visitors, google bots, etc
- Story A is on site1.com
- Story B is on site2.com
- Story C is on site1.com and site site2.com
Ideally this would be set by the 'webmaster' when they are entering the story. The important thing would be that Story B doesn't appear anywhere on site1.com, not on any list of stories or any menu on site1. Even if a you manually changed the URL to from site2.com to site1.com you still couldn't find story B on site1.com (hopefully you would get a custom 'Page Not Found' if you tried that).
I have the feeling that something like this may exist already but that it is hidden behind all the descripions of fine grained access control. Multi-Domain seems like it might be close to what I'm looking for but I'm a bit uncertain about the 'small patch to Drupal core',reliance on 'single signon' and the lack of activity.
Comments
DA
DA will do this for you -- so can the other modules. The technical descriptions are a bit much, because there are some very precise implications to how each performs, and those should influence your decision.
DA is meant to do exactly what you describe, however. See www.skirt.com for example, or www.activote.com -- then choose a location.
With the SEO option turned on, DA will only link to one specific version of the content. The node_access tricks are used to perform this control.
This thread (especially the final note) is also very helpful: http://groups.drupal.org/node/7725
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Clarification
One of the differences in design between DA and OG -- and TAC shares this, I think -- is that access control is not based on the user role or any of their account settings.
In Domain Access, the access rules are based entirely on which domain the browser request comes from. So access rules are the same for anonymous or logged in users. This is by design, and sometimes confuses people who are used to user or role based access.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Not sure I understand how this works
Thanks for your reply. I've installed Domain Access on top af a clean Drupal installation. Enabled/installed all the sub modules and installed the patches. So I have 3 domain - dom.com, ftp.dom.com and mail.dom.com to play with. I've added them all and set different themes which works fine on the different sites.
So when adding a story I see the extra 'Publishing Options' of
Publish to all affiliates
[or]
Publish to
- dom.com
- FTP.dom.com
- Mail.dom.com
Which all seems great. But I've added content with various options selected and found that for an anonymous user the only content that will show is that which is 'Published to all affiliates'. If I deselect that option and used the 'Publish to' option then it doesn't show up. On the other hand when I'm logged in in I see everything on every domain. Is it not working properly or is there something I am missing?
Edit : Don't worry. I worked it out. I had the 'strict domain' module enabled and disabling it seems to fix the problem. I wasn't expecting it to just do it's thing without me changing setting. Module is looking promising now.
Yes
Domain Strict can bite you like that. I should put a big red warning in the documentation. None of the submodules is required, by the way.
Also note that if you have the 'administer nodes' permission, node access rules do not apply, and you will always be able to see all content.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Administer nodes seeing everything
Yes the fact that those with 'administer nodes' access can see everything one every site could be a pain. However I'm actually planning to use this on different domains (not sub domains) so without a multi-site login solution it won't be a problem on the other sites since the admin won't be logged in. So two wrongs can make a right! Seriously though it is a nice module.
Easy
There are easy ways around this limitation. The simplest is to only let user 1 administer nodes, and not to give that permission to any other roles.
For multiple subdomains without logins, see http://www.itgjamaica.com/ which is running on Domain Access.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Hi!
Sorry to hijack this thread, but anyways,
I have been working on something similar. Just to elaborate, I have this project with two webfronts, one an organisational news feed update kind of things that needs to be maintained absolutely professional, and another something which involves community participation. The point is that the community site needs to draw content off the news feed update, or vice versa - it doesn't matter, the point is that, they share content.
So my idea is that, I'm going to share the node-related tables using database prefixes and I managed to get the content to appear on both sites. Exposing the content is simple as I'm going to use menus for individual sites or simply just views and other stuff.
My question now is that, because the node table has this field uid which does not acknowledge multisite users, so UID 1 corresponds to the first user on both sites which can be different people. It further complicates things when if the organisation site has 10 users and the other site has 100, the user 100 on the community site will be undefined when viewed in the organisation site.
I need a solution that enables just, the sharing of authoring credentials. Is there such a module? For example, the admin in the organisational site can see like STORY ABC is posted by USER100@SITECOMMUNITY but the USER100 does not have any credentials whatsoever to log into the organisational site. It is kinda akin to how I can log in to groups.drupal using my username @ drupal.org just that in this case, the site can see the credentials but not allow me to log in.
My stipulated solution is to write a module that appends a shared user table that controls login credentials, but from my observation and thinking it is not going to be an elegant solution.
I would appreciate if anyone can provide any insight into this problem. Thanks!
To elaborate on my idea, I
To elaborate on my idea, I was thinking that I can write a module that does something like this:
When a user is created, there is an option (only on the admin side) that allows the user to be a user in both sites. If this is checked, then the user will be come "active" on both sites. If not, the backend writes the user info into the user table of the other side, but "blocks" the user. I'm not sure if this is going to create any problems, but theoretically it seems to work. So the crux is, the user table is seperated for both sites but the module writes into both when a user is created, only meddling with the status variable. Of course, the first user, superuser, is excluded.
Just to clarify, the site above, at least I would like it to be hosted on one codebase, one database and two domains, or subdomains.
Not sure
I'm not sure I follow exactly what you're saying, but Domain Access should allow for this. Users who register on the Community side can be forced to enter all their content on that site. Users of the "professional" side could be allowed to choose.
You could do that without any table prefixing at all. But read the documentation carefully, since you will have to tweak your configuration to make it work as you expect.
To clarify. In the Domain Acccess view of the world, all users are members of all sites. But members can be given write and edit privileges only for select sites, using the 'edit domain nodes' and 'view domain publishing' permissions and the provided configuration options.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Domain Access with Company / Multiple Brand / Extranet sites
http://www.audijm.com/ is close to our needs. We just need to add an Extranet for the External Distributor & Internal Sale team.
Company.com
Brand1.com
Brand2.com
Brand3.com
Extranet.com
Webmaster would log in to a seperate Admin.com to admin (or would it make more sense to loin to the already existing Extranet.com?)
The Extranet would need to hold both the public info from the other sites and private files. The Users on this site should only have access to the content for the brands they represent. These users should only be able to view and download plus administrate the user accounts and groups.
I have been trying to figure this out for a month. I just downloaded your new release. How would I set this up?
Thanks for all your efforts and time. I am really excited about finding a solution and promoting Drupal.
Private files
Can you elaborate on the private files needs?
Drupal 5 handling of private files is complex, and would require either that Extranet.com ran on a separate installation or that all the sites use "private file handling."
Under private file handling, all requests for attachments are routed through Drupal instead of the file server. It adds a layer of complexity and security.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
I will try
If I post a brochure.pdf file for Brand1 it should appear on the Brand1 site and on the Extranet.com. Brochures are public documents.
If I post a manual.pdf file for Brand1 it should only appear on the Extranet.com. Manuals are private documents. Not for public consumption.
Can you route anonymous users through Drupal via the Company/Brand sites?
We are redeveloping the sites for http://www.4frontes.com.
We have an overlap of content as some products are cross branded between 2 competing brands. Some of our distributors represent all brands including both competing in a particular territory. Some territories have a distributor for each competing brand and then they may or may not rep all the reaming brands.
This is the inevitable result of the merging of competition into one company. We want to unify the content on the admin side, but brand it appropriately on the UI side.
I wonder if it is a combination of taxonomy and the DA module.
Thanks for your response. I may have just complicated this more with mine.
"private"
The complication I see is about what "private" means.
You do not really want to use private file downloads. But you want to restrict which users can access Extranet.com.
If that site is restricted to a few users, the best approach would be an extension module that only grants access to nodes on that site for users of a specific role.
Domain Strict does something like this now, but is probably not the right solution.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Just another question about DA with other modules
There are all these postings about combinations of modules.
Domain Access
Multiple Domains
Multisite Manger
SSO
OG
Taxonomy
I am confused on what combination to use. I'm really confused on how you would even use any combo of the first three. Not all the other modules are as well outlined as DA, but I'm not using it as it was originally intended.
What is your opinion? I with more people would post about their scenarios and the combo they used after they find success. I know I will. Mostly so "I" can duplicate it myself...
Thanks. Mystical
Right
Here's what I can tell you about how DA behaves. This is not intended to reflect on the value of other modules.
-- Use DA instead of Multiple Domains and Multisite Manager. Really, pick one of the three and use it. Whichever works best for you. These three approaches really are not compatible, as far as I know. They each have benefits and drawbacks.
-- DA works fairly well with Single Sign On. However, we think there is a known bug in SSO. See http://drupal.org/node/180514 and http://drupal.org/node/132015
If you share top-level domains (like one.example.com, two.example.com), you do not need SSO, since setting $cookie_domain to '.example.com' is enough.
-- DA and OG work fine together. You have the option (with the multiple node access patch) of making DA's access rules either check both OG and DA or to use the default OG or DA behavior. Generally, you want the AND behavior. See the documentation for DA.
-- DA and Taxonomy work fine together, as do DA and Taxonomy Access Control. You can also use Domain Prefix to establish different Vocabularies and Terms for each domain.
--
http://ken.therickards.com/
http://savannahnow.com/user/2
http://blufftontoday.com/user/3
--
http://ken.therickards.com/
Thanks
Thank you for your responses. They have been very helpful.
Myst
Post content to different sites from one administration page?
I've been searching around for a couple of days, and so far this thread appears to be the closest thing to what I am attempting to achieve.
I want two sites, the first will contain a variety of content, but the second site will consist exclusively of a blog. Both sites will have their own domain. For example:
mainsite.com
blogsite.com
I would like to be able to sign into mainsite.com and when making a blog post have it published on the other domain.
I'm not sure if DA is the write module to help me accomplish this. It gives me a "Publish to" option for content, but I don't want a choice for where blog entries are published (they should always be published on the blog domain). Also, I've been having difficulty experimenting with DA. Whenever I try to access other domains, I'm denied (even as the super user).
Here's one way to go about
Here's one way to go about it.
Install Views as well as Domain Access with the optional Domain Configuration submodule onto mainsite.com.
Create a new content type for the blog posts (or just use the built-in "Story" type if you're not using it for anything else already), then create a View which shows only nodes of that type. Make it available as a Page and give it a nice path.
In Domain Access's settings, create the blogsite.com domain. With the additional settings that Domain Configuration allows you to change, set the front page for blogsite.com to the path for your View.
Now, whenever someone goes to mainsite.com, they'll see your standard front page, but if they go to blogsite.com, they'll see the blog posts. This alone won't stop the blog content from being accessible from mainsite.com or vice versa, but as long as the content is visibly separate, few are likely to notice.
The Boise Drupal Guy!
Thanks Garrett! I'm running
Thanks Garrett!
I'm running into a couple of problems.
First, I can't access the settings for my blogsite domain. When I click settings in the domain list, I get an "Access Denied" error. I've checked the affiliate association box in the user settings for the super user and my administrator user. I also set the $cookie_domain variable to my mainsite domain. Finally, I added the require statment to import the domain_conf module. None of that helped. I can't access the blogsite domain settings :-(
Second, despite the access error, I went ahead and set up the view. I was still able to set the front page of the blogsite domain via the batch settings in DA. It works when I go to blogsite.com. However, when I click on the primary link (I added the link in the view), it displays the content under my primary domain. How do I get the link to take me to the blogsite domain?
First, I can't access the
Did you try just logging in at blogsite.com/user? It couldn't hurt.
Ah… well… ya gotta assign it to the domain… Sorry, guess I didn't think that much through when I wrote it up.
If you're not afraid of some custom development, I suppose you could write a module which uses hook_form_alter() to take note of when you're submitting a blog post and automatically assign it to the proper domain…
The Boise Drupal Guy!
Still having problems
Thanks again.
Signing in through blogsite.com/user did not work. I was able to sign in, but was given the same "Access Denied" error. I only get this error when I click on the "settings" link in the DA module. I can point my browser to blogsite.com and it's fine. But I would like to access the settings so I change the theme, etc.
I'm not afraid to do some custom development, I'm just new enough that I haven't done that yet :-) Could you point me to some threads talk about using hook_form_alter()? Thanks.
I am able to post content to the blogsite domain and I can view that content by going to the domain. But how do I add a link to the primary links that goes to that domain. The path defined in the view is relative to the mainsite domain and when I add it to the primary links, I can't change the path definition to the blogsite domain. In general, how do you add custom link address to primary links?
Well, that's weird. I'm
Well, that's weird. I'm not sure what to tell ya. You could try posting in Domain Access's issue queue or contacting its brilliant creator Ken Rickard by email. I'm out of ideas.
I don't know of any threads in particular, but for any Drupal API function, you can find documentation at http://api.drupal.org/ . If you're just starting out with Drupal development, I highly recommend getting a copy of Pro Drupal Development.
Just add a menu item, and when it asks for the path, put in the full domain name of the other site, including the http:// part. This works for any other domain on the internet, not just your own multisite domains. (To add a menu item, go to Administer > Site building > Menus and click the "Add item" tab.)
The Boise Drupal Guy!
Ok, I'll go bark up
Ok, I'll go bark up Richard's tree :-)
I do have a Pro Drupal Development, looks good, just haven't started it yet.
That worked. Thanks. :-)
Settings working now
I followed this thread: http://drupal.org/node/285325
And changed my settings.php file as directed in the last post of that thread. Then I went to my blogsite domain and logged in as the super user like you suggested.
Now it works and I can access my domain settings :-)
What variable in hook_form_alter?
Ok, I successfully created my own module to utilize hook_form_alter() on blog posts. But I can't figure out how to manipulate the "Domain access options."
I can hide access to different form elements and change values by setting different variables in the $form array. When I print out the $form array (with the code below), however, there is no variable corresponding to domain access.
$form['form_array'] = array( '#value' => '<pre>'. print_r($form, 1) .'</pre>', '#weight' => '99', );At the moment I'm at a loss as to how to manipulate domain access within the form alter hook :-(
Article + request to see code.
This article shows how to see the form variables:
http://www.lullabot.com/articles/modifying-forms-5-and-6
In drupal 6, you will likely want to use the hook_form_FORM_ID_alter if you are only dealing with one form. It behaves like hook_form_alter, but is only called for a particular form. hook is replaced with the name of your module and FORM_ID is replaced with the blog post form id.
http://api.drupal.org/api/function/hook_form_FORM_ID_alter/6
Can you show us your whole module of code as an attachment?
www.johnbarclay.com
Code
This is my module :-) It just prints out the form ID of the form I'm looking at and the elements on the form. The problem is, I can't see anywhere in the array where I would set/change/modify the values in the Domain Access section.
function clean_forms_form_alter(&$form, $form_state, $form_id)
{
print $form_id;
$form['form_array'] = array(
'#value' => '<pre>'. print_r($form, 1) .'</pre>',
'#weight' => '99',
);
}
Adendum
I'm using Drupal 6.x and playing around with DA 6.x-1.2
I'm facing the same issue as GearedDesign
Hi,
Thanks for sharing the info on this thread, really really useful. I think DA modules is by far the best solution if you're building multisites that's more content-centric (sharing posting, content delegations etc).
Of all the options of modules that are mentioned here, there's none that I've found "complete". I have similar issue to GearedDesign that is besides being able to network the contents across subdomains, I need to restrict the files according to subdomains too. At this moment I use WebFM as file manager on my site. With DA method, all my subsites (140+ subdomains) will be able to see all this upload folder. Unfortunately WebFM access control is given per 'roles'. I have 5 roles times 140+ subdomains== a lot of roles combination to take care.
The alternative is to implement Drupal's multisite. This ensures each subdomain has its own file folder. But I can't find a module that will allow cross-postings of contents between multisites as advanced as DA.
What I need is similar to the case study given by DA's documentation (a news portal having a national site and several affiliates). The main site editor may promote contents from one affiliate to the main site or to other affiliate(s). While the local affiliates may request to promote their contents onto the main site and/or other affiliates (the request will be approved by each affiliate editors who receive such a request).
Thanks for reading this.
Dont share a node content to other unpublished domains
Hi All,
There are three sub domains including domain:
Example.com(localhost)
One.example.com
Two.example.com
Three.example.com
(Or)
All Affiliates sites
1) Article1(nid=1) published to one.example.com, example.com
Article have to show in the following url Example.com/node/1 and one.example.com/node/1 (it working)
but not to show two.example.com/node/1 three.example.com/node/1 (it not working)
2) If article2(nid=2) published to two.example.com
Article have to show in the following url two.example.com/node/2
but not to show example.com/node/2 example.com/node/2 three.example.com/node/2
please let me know how i can achieve above point function in Domain module?
Advance Thanks,
Kapil
@jkapilraj, On DA's project
@jkapilraj, On DA's project page there are links to videos. They explain exactly what you want.