Hello,
I am interested in the multi-site feature but I have questions.
I have a Drupal site for students to upload work. The problem is that all schools use the same site and now teachers want to be able to reset student passwords which requires admin rights.
If I had a multi-site, each school could have its own site and the teachers could be admins. That sounds good, but I have some concerns:
1) MIGRATION:
How can I transfer user accounts to the new sites? How can I transfer existing content?
Moving users and accounts to their respective sites seems quite difficult. I don't know what I can do there.
2) DRAWBACKS:
Are there any drawbacks I should know about?
I imagine that I would lose the ability to do an over-all search among all the sites. I can live with that. Maintenance would be more difficult because I'd have to create a new site every time we get a new school, but that seems manageable.
Is there anything I've missed?
I'm totally new at the multi-site idea, so I'm not even sure what questions to ask. If you have any comments or advice for me I would very much like to hear it.
Thanks, Daniel.
Daniel Carrera ha scritto:
Hello,
I am interested in the multi-site feature but I have questions.
I have a Drupal site for students to upload work. The problem is that all schools use the same site and now teachers want to be able to reset student passwords which requires admin rights.
If I had a multi-site, each school could have its own site and the teachers could be admins. That sounds good, but I have some concerns:
- MIGRATION:
How can I transfer user accounts to the new sites?
copy table users
How can I transfer existing content?
Moving users and accounts to their respective sites seems quite difficult. I don't know what I can do there.
Hi, have you tried http://drupal.org/project/backup_migrate ?
- DRAWBACKS:
Are there any drawbacks I should know about?
I imagine that I would lose the ability to do an over-all search among all the sites. I can live with that. Maintenance would be more difficult because I'd have to create a new site every time we get a new school, but that seems manageable.
No no no. Multisite in drupal is maked with a subdirectory of sites/ path. One directory for one site.
Example: sites/classA/settings /module /themes
sites/classB/settings /module /themes
And for global modules and themes:
sites/all/themes /modules
Read http://drupal.org/node/43816
M.
Michel Morelli wrote:
- MIGRATION:
How can I transfer user accounts to the new sites?
copy table users
Thanks. That helps a lot. I can copy individual rows from the users table and that way I can move each user to their corresponding academy.
It's extra work, but what matters is that it's doable. Excellent.
I hope I can do something similar with the content. I guess I need to make a list of tables with content (e.g. node, node_revisions, etc).
How can I transfer existing content?
Moving users and accounts to their respective sites seems quite difficult. I don't know what I can do there.
Hi, have you tried http://drupal.org/project/backup_migrate ?
Thanks. That could be useful.
- DRAWBACKS:
Are there any drawbacks I should know about?
I imagine that I would lose the ability to do an over-all search among all the sites. I can live with that. Maintenance would be more difficult because I'd have to create a new site every time we get a new school, but that seems manageable.
No no no. Multisite in drupal is maked with a subdirectory of sites/ path. One directory for one site.
Yeah, but I still have to run the installer, login as admin, and re-configure everything. Right? Or am I missing something?
*Click* Thanks! A lot of information there.
Thanks for the help.
Daniel.
Daniel Carrera wrote:
Michel Morelli wrote:
- MIGRATION:
How can I transfer user accounts to the new sites?
copy table users
Thanks. That helps a lot. I can copy individual rows from the users table and that way I can move each user to their corresponding academy.
It's extra work, but what matters is that it's doable. Excellent.
How do you prevent users from one academy working with others data now? You could just copy the entire table and after a year, remove the ones from each site that haven't logged onto the site in that time.
I hope I can do something similar with the content. I guess I need to make a list of tables with content (e.g. node, node_revisions, etc).
Again, how do you filter the content for users now?
How can I transfer existing content?
Moving users and accounts to their respective sites seems quite difficult. I don't know what I can do there.
Hi, have you tried http://drupal.org/project/backup_migrate ?
Thanks. That could be useful.
And take a look at http://drupal.org/project/domain which could be a better solution for you.
- DRAWBACKS:
Are there any drawbacks I should know about?
I imagine that I would lose the ability to do an over-all search among all the sites. I can live with that. Maintenance would be more difficult because I'd have to create a new site every time we get a new school, but that seems manageable.
No no no. Multisite in drupal is maked with a subdirectory of sites/ path. One directory for one site.
Yeah, but I still have to run the installer, login as admin, and re-configure everything. Right? Or am I missing something?
Yes, and I think you don't want that. The more DB the greater the overhead. The Domain Access module I pointed you to above uses Drupal's Node Access system to determine which site get's what data.
*Click* Thanks! A lot of information there.
Yes, but don't get hung up on the dpkg-reconfigure thing. Automation is good but it can remove the thinking process. Manually creating the DB, the DB user and the sites directory can be check points.
Earnie Boyd wrote:
How do you prevent users from one academy working with others data now? You could just copy the entire table and after a year, remove the ones from each site that haven't logged onto the site in that time. ...
Again, how do you filter the content for users now?
I'm not sure I understand. You are saying that I will have a hard time knowing which users belong to which academy? If so, yes, that's a problem and I don't have a solution yet.
And take a look at http://drupal.org/project/domain which could be a better solution for you.
Thanks. Looks very interesting. I have a few questions:
1. Can I choose /not/ to share users between domains? 2. Can I have admins for just one domain? The idea is that the "domain admin" would be able to add/edit users but only within his domain. 3. Can I get a list of users associated with one domain?
Item 2 is the main thing I am looking for. Let teachers manage kids in their school without being able to affect users in other schools.
Yes, and I think you don't want that. The more DB the greater the overhead. The Domain Access module I pointed you to above uses Drupal's Node Access system to determine which site get's what data.
Indeed. I'd rather not have the overhead. I'll take a good look at Domain Access.
My biggest concern is not about sharing or not sharing content. It's about giving out admin rights limited to a group.
Daniel.
On Sat, 13 Mar 2010, Daniel Carrera wrote:
Earnie Boyd wrote:
How do you prevent users from one academy working with others data now?
Do you have some way for that, or is it somewhat on the honor system?
Again, how do you filter the content for users now?
I'm not sure I understand. You are saying that I will have a hard time knowing which users belong to which academy? If so, yes, that's a problem and I don't have a solution yet.
That question related to your current configuration, not the one you are trying to create. What are you doing right now, to manage content and users, to prevent cross contamination between schools?
Answering that question, may provide some here with a better idea of how to advise you.
And take a look at http://drupal.org/project/domain which could be a better solution for you.
Thanks. Looks very interesting. I have a few questions:
(Earnie, I'd particularly appreciate your comments on the below described framework)
- Can I choose /not/ to share users between domains?
I can not answer that, but I'd bet there is a way to categorize users so that they only have access to the content for their particular domain (the one they signed up on?) through some of the node access and taxonomy access modules.
If you would like users who login anywhere on the entire system (E.G. another school's page) to get automatically sent to their intended school's page, one of these should be able to take care of that for you: http://drupal.org/project/login_destination http://drupal.org/project/logintoboggan
- Can I have admins for just one domain? The idea is that the "domain
admin" would be able to add/edit users but only within his domain.
I'm not sure how you would pull that off. I am thinking that if you had a taxonomy for schools, and had just one school set per user of the system, you might be able to find a way to make users with the add user permission, only be able to add users who also had that taxonomy field set. I.E. every user that Joe from school1 added, would have school1 as their school taxonomy. Then, since you're also doing access permission checks based on that taxonomy, that user will only be able to access content on school1.schools.org (or school1.org, or whatever). Since the login module directs users which have the school taxonomy set to a valid school to that school's frontpage (E.G. http://school1.schools.org/ for any user with school1 set), you're covered on that angle.
The only part of this I am not sure can be done without definite custom code, is the user add inherits schools taxonomy portion. Might need a small custom module for that. Someone in the paid forum could probably do it for a reasonable fee.
Oh also, there is the issue of namespaces. You might want to convert to using email addresses for login instead of usernames. http://drupal.org/project/email_registration Some slight changes to this module should allow it to generate a school based "real" username, instead of the email address lhs001, lhs002 system that it uses now.
- Can I get a list of users associated with one domain?
If you go the taxonomy route, a view with a filter for the schools taxonomy, set to display users with it set, would do the trick.
Also, if you are okay with using subdomains, the subdomains module (http://drupal.org/project/subdomain), mode 3, would take care of dividing content. You would have to have new content auto tagged with the school taxonomy, of course, which again might require that same custom helper module.
Regards,
Luke
Luke wrote:
Earnie Boyd wrote:
How do you prevent users from one academy working with others data now?
Do you have some way for that, or is it somewhat on the honor system?
...
That question related to your current configuration, not the one you are trying to create. What are you doing right now, to manage content and users, to prevent cross contamination between schools?
Answering that question, may provide some here with a better idea of how to advise you.
Ok. I think I understand the question now.
In brief: Users don't have the permission to edit a page created by somebody else.
Basically, we have students learning about HTML, image formats, blogs and other web-related stuff. Basically, they are learning how to make a web page and how to use it to make a "web portfolio" of their work. Each student makes his/her own pages and cannot edit someone else's pages.
Teachers and schools don't create any meaningful content. The teacher helps the student make a web page, that's it. Then the student gets a grade for the work.
For this reason, the issue of cross-contamination between schools really doesn't arise. As for organization, I have basically none. We use the profile module so students write down the name of their school, but that's not a very practical way to find students.
I hope that answers the question. Thanks for having patience with me :-)
Thanks for the information in your email. It gave me some to think about. I know you didn't ask about what I'm trying to do, but let me state briefly:
1. Some teachers want to reset students' passwords or create student accounts. I don't understand why the students can't do it themselves, but apparently the customer is always right. :-P
2. A teacher recently asked if he can get a list of the pages for all the students in his class. Naturally we have no idea.
Thanks for the help.
Cheers, Daniel.
On Sat, 13 Mar 2010, Daniel Carrera wrote:
Ok. I think I understand the question now.
In brief: Users don't have the permission to edit a page created by somebody else.
Basically, we have students learning about HTML, image formats, blogs and other web-related stuff. Basically, they are learning how to make a web page and how to use it to make a "web portfolio" of their work. Each student makes his/her own pages and cannot edit someone else's pages.
Teachers and schools don't create any meaningful content. The teacher helps the student make a web page, that's it. Then the student gets a grade for the work.
Okay, I don't know about anybody else, but I had entirely the wrong idea about what you were going after here. Much clearer now, thanks.
That said, all of my former taxonomy suggestions stand.
However, there may be another way to go about this. (Actually, I am sure there are about twenty different ways, but I digress...)
Roles...
Create a taxonomy for your classes and schools, as described, to make searching and views easier. Create a role for each of your classes.
Give your teachers user editing/addition capability, and assign the user the class role.
Then, use these to bring it together: http://drupal.org/project/administerusersbyrole http://drupal.org/project/role_delegation
about. I know you didn't ask about what I'm trying to do, but let me state briefly:
After reading the above, I was going to, so thanks for saving the time.:)
- Some teachers want to reset students' passwords or create student
accounts. I don't understand why the students can't do it themselves, but apparently the customer is always right. :-P
Teachers, rightly so, have a mistrust of the motives of their students. Put simply, anything students can get away with, some of them will eventually attempt. Therefore, anything over which the teachers can not take instant control should they need it, is a potential weapon in their eternal power struggle. In addition, students prank each other all the time (not just K-12 students: college students, weekend computer students, etc.): "oh he left himself logged in? I'll just change his password here, and that'll teach him".:) So yeah, there are good reasons, if far fetched ones.
As I said before, this is the only part of the thing where my taxonomy plan was not ideal, possibly requiring a custom module.
Maybe some combination of roles and taxonomy would do it for you?
There is likely a content type visibility by role module, and the method you are using now for preventing users from editing each other's stuff is probably sufficient.
- A teacher recently asked if he can get a list of the pages for all
the students in his class. Naturally we have no idea.
Oh, so not just schools, but classes too--forgot about that. A single parentage multi level taxonomy can probably take care of that. Then you could view by school or class.
Hth.
Oh, see also: http://drupal.org/project/user_import http://drupal.org/project/userprotect (hack to allow for different admins if roles don't work for you?)
Luke
Luke wrote:
On Sat, 13 Mar 2010, Daniel Carrera wrote:
Earnie Boyd wrote:
And take a look at http://drupal.org/project/domain which could be a better solution for you.
Thanks. Looks very interesting. I have a few questions:
(Earnie, I'd particularly appreciate your comments on the below described framework)
- Can I choose /not/ to share users between domains?
I can not answer that, but I'd bet there is a way to categorize users so that they only have access to the content for their particular domain (the one they signed up on?) through some of the node access and taxonomy access modules.
Looking at the write ups whose links are given directly on the project page I have determined that the answer is yes. There is a domain users sub-module that allows you to assign the user to a domain. But I've never used this module, I have only heard about it.
If you would like users who login anywhere on the entire system (E.G. another school's page) to get automatically sent to their intended school's page, one of these should be able to take care of that for you: http://drupal.org/project/login_destination http://drupal.org/project/logintoboggan
So these shouldn't be necessary.
- Can I have admins for just one domain? The idea is that the
"domain admin" would be able to add/edit users but only within his domain.
I'm not sure how you would pull that off.
My guess, is that the domain user module would allow you to assign a role for a user that would allow for the domain admin. I really need to take another look at this module, it could save me some cycle time.
--8<--
- Can I get a list of users associated with one domain?
If you have a profile entry for the user that contains the school, yes. I think you said that you did that already. The Advanced User (advuser) module will allow you to select users for the profile field. You might want to look at the Advanced Profile module as well.