<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://groups.drupal.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Access Control</title>
 <link>http://groups.drupal.org/access-control</link>
 <description>Discussions regarding Drupal Access Control mechanisms, and how to make them work better together.</description>
 <language>en</language>
<item>
 <title>First implementation of og_access with ACL</title>
 <link>http://groups.drupal.org/node/13701</link>
 <description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&#039;m a little bit frustrated by the User access implementation proposed for OG, it&#039;s too much complicated and i don&#039;t think that TAC/CA/ACL/OG combination with many many many hacks is the right way (but it&#039;s a very very good work too).&lt;/p&gt;
&lt;p&gt;So, i really need for my project, this simple things:&lt;/p&gt;
&lt;p&gt;1) Organic Group&lt;br /&gt;
2) User can post in Public or in their suscribed groups&lt;br /&gt;
3) AND they must have the possibility to grant other users that can be outside of his group&lt;/p&gt;
&lt;p&gt;I don&#039;t have need of TAC/CA/ACL all together but only this, i&#039;ve produced a custom og_access.module, perfectly integrated with ACL, now when i write a post i can select Public or My OG and add grants (view/update/delete) to other users. Nice ?&lt;/p&gt;
&lt;p&gt;Can i attach the patch here ? Are you interested in this ?&lt;/p&gt;
&lt;p&gt;Bye,&lt;/p&gt;
&lt;p&gt;Paolo&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/13701#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5953">access content</category>
 <category domain="http://groups.drupal.org/taxonomy/term/257">ACL</category>
 <category domain="http://groups.drupal.org/taxonomy/term/15">og</category>
 <category domain="http://groups.drupal.org/taxonomy/term/5954">og_access</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Mon, 04 Aug 2008 16:25:07 +0000</pubDate>
 <dc:creator>paolomainardi</dc:creator>
 <guid isPermaLink="false">13701 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Language Based Access Control</title>
 <link>http://groups.drupal.org/node/12592</link>
 <description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I&#039;m building a multi-lingual site, where I would like different translation groups/roles to be able to work on their language (and only their language) to translate source content.  In some cases translating in response to content being posted, and at other times originating the content.&lt;/p&gt;
&lt;p&gt;Of the current access control methods I&#039;ve looked at, there are ways to control access based on Taxonomies, Node types, and individual nodes... I may be missing something, but is there a way to control access based on language aside from making people specify the language of the content through taxonomy?&lt;/p&gt;
&lt;p&gt;-KT&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/translations&quot;&gt;Translations&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/12592#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1067">access control</category>
 <category domain="http://groups.drupal.org/taxonomy/term/921">internationalization</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2091">locale module</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/i18n">Internationalization</group>
 <group domain="http://groups.drupal.org/translations">Translations</group>
 <pubDate>Fri, 20 Jun 2008 06:10:54 +0000</pubDate>
 <dc:creator>Tshering@drupal.org</dc:creator>
 <guid isPermaLink="false">12592 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Multiple Node Access Logic Patch</title>
 <link>http://groups.drupal.org/node/11360</link>
 <description>&lt;p&gt;It appears that &lt;b&gt;agentrickard&lt;/b&gt; has created the solution to the problem for which the &lt;b&gt;Access Control Group&lt;/b&gt; was originally created: The Multiple Node Access Logic Patch: &lt;a href=&quot;http://drupal.org/node/196922&quot; title=&quot;http://drupal.org/node/196922&quot;&gt;http://drupal.org/node/196922&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have used this patch to successfully get TAC and OG working together.  I&#039;m including it in the next release of OG User Roles (5.x-3.0): &lt;a href=&quot;http://groups.drupal.org/node/3700&quot; title=&quot;http://groups.drupal.org/node/3700&quot;&gt;http://groups.drupal.org/node/3700&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As great as I think this patch is, it probably won&#039;t make it into Drupal core, for a variety of reasons.&lt;/p&gt;
&lt;p&gt;If you believe in the mission of this group, to create a mechanism in Drupal by which all Access Control Systems can not only simply co-exist, but also respect each other&#039;s permissions, then I would ask you to support &lt;b&gt;agentrickard&#039;s&lt;/b&gt; efforts.  He needs folks to not only pontificate and theorize, but test out code.&lt;/p&gt;
&lt;p&gt;As many of you know, I came up with a mechanism to make TAC and OG work together over a year ago.  The problem with my approach is that it used an unsupported hook_nodeapi(&#039;access&#039;) and required a heavily customized hook_db_rewrite_sql().  The thought of trying to upgrade to Drupal Version 6.x with this beheamoth was frightening.&lt;/p&gt;
&lt;p&gt;What is better about &lt;b&gt;agentrickard&#039;s&lt;/b&gt; approach is that his integration is based upon the existing Drupal core node grants system.  User configured access control logic is introduced during the node_access_grants_sql process.&lt;/p&gt;
&lt;p&gt;The most significant argument that has been made against this is that it has a potentially negative effect on performance.  I don&#039;t doubt that this is true, but then, within the existing Drupal core grant system, how would you &lt;em&gt;ever&lt;/em&gt; implement mutliple node access requirements without requiring that users have all possible grants in order to view a piece of content?  In short, absent a total re-working of the core system to support multiple node access, you will always have this problem when trying to accomodate more than one Access Control System.&lt;/p&gt;
&lt;p&gt;So, if you really need to get multiple access control systems working together, and you want to do it today, this route seems to be a good way to go.&lt;/p&gt;
&lt;p&gt;Thanks to all who have supported the efforts here to date.  Please continue to do so as that&#039;s the only way we&#039;re going to effect some positive changes.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Fri, 09 May 2008 17:54:02 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">11360 at http://groups.drupal.org</guid>
</item>
<item>
 <title>module-based multiple node_access?</title>
 <link>http://groups.drupal.org/node/11199</link>
 <description>&lt;p&gt;I had a notion the other day of a module to bypass node_access. It seems if you had a module with a very heavy weight and hook_node_access_records, it could fire after all the other hook_node_access_records calls. Then it could:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy all the other modules&#039; node_access records into a table of its own with the same structure as node_access.&lt;/li&gt;
&lt;li&gt;Set all the other modules&#039; node_access records to DENY for everything.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then when node_access fires, it could execute arbitrary logic to set its own grants for view, update, and delete based on the other modules&#039; stored settings. Since core uses and OR, all the other entries would be effectively bypassed since they&#039;ve been set to DENY, and only this module&#039;s logic would have an effect.&lt;/p&gt;
&lt;p&gt;Might this avoid a core hack? Could it be a way for OG, domain, and workflow permissions to exist on one install? It would have to be restricted to superadmins most likely, because you&#039;d have to write a bit of logic up for each of the grants based on all the node_access-enabled modules on the install. If it works in concept, you could establish a sort of cookbook for different module combinations.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11199#comments</comments>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Sun, 04 May 2008 15:28:43 +0000</pubDate>
 <dc:creator>gcassie</dc:creator>
 <guid isPermaLink="false">11199 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Case study: running a small college site with drupal</title>
 <link>http://groups.drupal.org/node/10231</link>
 <description>&lt;p&gt;Hi folks,&lt;/p&gt;
&lt;p&gt;I&#039;m following up on promises I made during the Birds of a Feather sessions at Drupalcon Boston to post a case study of how we&#039;re using Drupal at Amherst College. We&#039;ve developed a module to facilitate hierarchical content creation and permission control that&#039;s also of potential interest to folks outside of the academic community.&lt;/p&gt;
&lt;p&gt;Preamble aside - about 3 years ago the college decided to fundamentally change the way it was approaching the web, and a little over 2 years ago we started building on top of Drupal. The project had some broad goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find a way to gather together all members of the college community under a common web platform. Faculty, Students, Staff and Alumni were our primary focus, though we&#039;ve since incorporated applicants.&lt;/li&gt;
&lt;li&gt;Change the way the college creates and manages web content. Amherst had been on the Dreamweaver + templates + department directories with shared passwords (!!!) model. We also wanted to get a consistent navigation scheme and thematically similar templates applied to the upper levels of the college&#039;s site.&lt;/li&gt;
&lt;li&gt;Begin dynamically building the academic portions of the college&#039;s website. Course listings, faculty listings, course enrollment listings, and more needed to all be delivered out of data instead of built manually by various academic staff and faculty.&lt;/li&gt;
&lt;li&gt;Amherst was disturbed by the legal action Blackboard took against Desire2Learn. We also knew that about 90% of faculty use of Blackboard on our campus was for password protected document sharing. We wanted to move away from Blackboard and replace it with other tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;A partial list of what we&#039;ve delivered so far:&lt;/h2&gt;
&lt;h3&gt;Automation of curricular data:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;every academic department has a dynamically produced list of courses built from Datatel/Registrar data - example, &lt;a href=&quot;https://cms.amherst.edu/academiclife/departments/asian/courses&quot; title=&quot;Amherst College Asian Studies Department course listings&quot;&gt;Asian Studies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;every academic department has a dynamically produced list of faculty  - example, &lt;a href=&quot;https://cms.amherst.edu/academiclife/departments/spanish/faculty&quot; title=&quot;Amherst College Spanish faculty&quot;&gt;Spanish faculty listing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;every course has a dynamically produced course website with numerous components including course rosters and e-reserves; this is delivered with granular permissions for reading and authoring content for each of the website components. Example - &lt;a href=&quot;https://cms.amherst.edu/academiclife/departments/courses/0708S/ECON/ECON-64-0708S&quot; title=&quot;example economics course at Amherst College&quot;&gt;a recent Economics course&lt;/a&gt;. A picture of the permission settings for a course:&lt;br /&gt;
&lt;img src=&quot;https://cms.amherst.edu/media/view/43126/original/casestudy1-rosterreadperms.jpg&quot;&gt;&lt;/li&gt;
&lt;li&gt;every faculty member has a dynamically generated ”CV” page which lists contact info, the courses they&#039;re teaching, have taught, and (soon) will be teaching. Faculty can add to this material as they like. Example - &lt;a href=&quot;https://cms.amherst.edu/people/facstaff/dhudson&quot; title=&quot;Dale Hudson&amp;#039;s faculty page at Amherst College&quot;&gt;Dale Hudson&#039;s CV&lt;/a&gt;        &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Every user gets some or all of the following depending on role:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;A customizable and personalized portal that delivers content specific to their role(s) at the college -- examples being readings and assignments for students, news from their classmates for alums, news from the college, etc. A picture:&lt;br /&gt;
&lt;img src=&quot;https://cms.amherst.edu/media/view/43127/original/casestudy2-studentportal.jpg&quot;&gt;&lt;/li&gt;
&lt;li&gt;personal webspace. Example - &lt;a href=&quot;https://cms.amherst.edu/users/E/seedwards&quot; title=&quot;Susan Edwards&amp;#039; personal website at Amherst College&quot;&gt;Susan Edwards&#039; personal website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;professional “CV” webspace if you&#039;re an employee, with dynamic content inserted into it (office location, email address, courses taught, etc.). A picture:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://cms.amherst.edu/media/view/43128/original/casestudy3-facultypage.jpg&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Authoring permissions on the various resources specific to their role(s) -- examples: faculty members can edit their course websites, alums can add news to their class year&#039;s news page, department coordinators and staff can edit departmental websites, librarians can add e-reserves to course websites, enrolled students can add content to the class blog, etc. There are literally hundreds of groups. A picture:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://cms.amherst.edu/media/view/43129/original/casestudy4-groups.jpg&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;read permissions on the materials specific to their role(s) -- examples: students can see the e-reserves for the courses they&#039;re enrolled in, faculty can review the faculty meeting minutes, etc.&lt;/li&gt;
&lt;li&gt;The ability to maintain their personal information – contact info, family history, professional history, personal interests, more (mostly for alums).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Additional features:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;e-commerce tools providing features like reunion registration for alums and gifts to the college&lt;/li&gt;
&lt;li&gt;a voting tool for trustee elections, faculty committee memberships, and more.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How we did it:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Staff: We have two full time Drupal developers and myself (diplomat/project manager). One of our DBA&#039;s spent about half her time on this over the last two years. Our desktop support folks have spent a ton of time on training, representing about 1/2 of one person&#039;s time over the last 2 years. Our web designer spent at least half her time on this, and probably closer to 75%.&lt;/li&gt;
&lt;li&gt;Process: We opted for a phased rollout strategy, focusing our attention on one college role at a time before moving on to the next, and we&#039;ve followed a “release quickly, adjust later according to user request” philosophy. Results of this approach have been mixed. We&#039;ve managed to do a lot in ~2 years, but nothing is ever “complete” and we&#039;ve often stumbled over unforeseen problems we would have caught had we pursued a more gradual, thoughtful approach. I&#039;m not sure we would change though if given a do-over, because one of the goals was to quickly modernize the college&#039;s approach to the web, and a more deliberate approach conflicts with that goal. &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Code: The main thing we needed that Drupal doesn&#039;t have out-of-the-box was sophisticated hierarchical content authoring with permissions control. To deliver this we built our own module, which we&#039;ve dubbed “monster menus.” A brief overview:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Content is organized in one or more trees, with each level of the tree acting as a container for one or more Drupal nodes. Nodes can appear in more than one container at the same time, allowing content to be reused without the need to update it in more than one place. The user sees branches of a tree as a menu contained within a block. You can specify the depth of the branch to be displayed in a menu block, and menus can be themed as desired.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;Each level of the tree provides an element in the full URL of a given container.&lt;/li&gt;
&lt;li&gt;A granular permissions system:&lt;/li&gt;
&lt;li&gt;uses a Unix-like system of dependence, where a given user&#039;s ability to access one level of the tree depends on his ability at the parent levels; newly-added nodes inherit the permissions of their container, by default&lt;/li&gt;
&lt;li&gt;each container in the tree has separate settings for &quot;who can edit its settings or delete it&quot;, &quot;who can add sub-pages&quot;, &quot;who can assign Drupal nodes to the container&quot;, and &quot;who can read Drupal nodes in the container&quot;.&lt;/li&gt;
&lt;li&gt;includes three types of groups:  pre-defined (where the member list is generated by a SQL query), ad-hoc (access to a single container), and manually edited (where one or more permitted people control the membership list). The ability to edit this last kind of group is, itself, controlled using the same groups-based permissions model. This allows maintenance of access control lists to be distributed to any number of trusted users.&lt;/li&gt;
&lt;li&gt;because this scheme does not use Drupal&#039;s built-in grants tables, it scales well to many thousands of users, groups, and nodes&lt;/li&gt;
&lt;li&gt;Menu settings, allowed themes, and allowed node types can be assigned per container, and cascade downward in the tree.&lt;/li&gt;
&lt;li&gt;Each user has his own &quot;homepage&quot; space where he can create new containers and content&lt;/li&gt;
&lt;li&gt;Based on user feedback, we found it best to change certain terminology, and remove a few node options, thus simplifying the interface a bit. This would be optional, were we to release the module to a wider audience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#039;ve recorded a ~10 minute screencast which runs through most of the features discussed above, which you can &lt;a href=&quot;https://cms.amherst.edu/users/H/dhamilton/demos/screencasts/mmdemo&quot; title=&quot;10 minute screencast demonstrating core features of the monster menus module&quot;&gt;review here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We&#039;ve also done a lot of work on our own profile module (eduprofile), which draws on our backend (Datatel) to display users’ biographical, curricular, and personal information. It lets them edit various portions, depending on their role, and choose which other roles can see each portion of their data. An important distinction is that these are not Drupal roles, they&#039;re created dynamically from institutional data.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cms.amherst.edu/media/view/43130/original/casestudy5-profile-edit.jpg&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Areas we&#039;ve struggled with:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;search. We&#039;ve researched integrating with a Google Mini and, once time permits, will go that route. For now, we&#039;re not too happy with our search relevancy, and we&#039;re only searching across publicly available content.&lt;/li&gt;
&lt;li&gt;data integration. This has nothing to do with Drupal per se, but in terms of time spent, it&#039;s been one of the largest time sinks for us.&lt;/li&gt;
&lt;li&gt;We had to touch core. We have to do integration work when we adopt modules from contrib. We were able to back much of our code out of core when we ported to Drupal 5, and we&#039;re hopeful we can back all the way out when we port to Drupal 6 this summer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;What we&#039;re working on now:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Moving the last of our old, static content into the system&lt;/li&gt;
&lt;li&gt;updating our codebase to Drupal 6&lt;/li&gt;
&lt;li&gt;calendaring for all users, built using a customized version of the events module&lt;/li&gt;
&lt;li&gt;quiz tool and gradebook to supplant most of the remaining Blackboard use on campus.&lt;/li&gt;
&lt;li&gt;migrating our library site&lt;/li&gt;
&lt;li&gt;enhancing our portal to incorporate more features (calendar display, profile management, etc.)&lt;/li&gt;
&lt;li&gt;integration with Views and CCK. When we started these tools didn&#039;t fit our needs. They do now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At present both of our modules are tightly coupled to our Datatel implementation. At Drupalcon there was some interest in how our system worked. We also attended a session led by the Development Seed folks where they presented an alternative approach to some of the issues we worked to resolve, and were struck by one of the things they said at the end, which (paraphrasing) was, “So, we invented a solution off on our own, and now we want to know what the Drupal community thinks of it as an approach.”&lt;/p&gt;
&lt;p&gt;We have the same question. We could work to decouple our code from Datatel and share it, but that represents a significant time investment for us, so we&#039;re curious to hear whether folks have more than an academic interest in what we&#039;ve built.&lt;/p&gt;
&lt;p&gt;Beyond this case study, after we&#039;ve finished our migration to Drupal 6, we&#039;ll put up a test machine so folks can kick the virtual tires and get a sense of how this works. At best we&#039;ll get to that early this summer. In the meantime, I am happy to answer any questions folks have, and if needed I can screencap/screencast additional aspects of the system. We can also work to get a case study of monster menus with more detailed information on how it works up on drupal.org if folks would find that useful.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10231#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/4339">case study</category>
 <category domain="http://groups.drupal.org/taxonomy/term/5081">featured</category>
 <group domain="http://groups.drupal.org/drupal-education">Drupal in Education</group>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Fri, 28 Mar 2008 20:35:36 +0000</pubDate>
 <dc:creator>davidhamilton</dc:creator>
 <guid isPermaLink="false">10231 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Partial forum sharing</title>
 <link>http://groups.drupal.org/node/9554</link>
 <description>&lt;p&gt;Here&#039;s my setup: I have a network with different forums and different content but shared users on one codebase on the same database with different prefixes.&lt;/p&gt;
&lt;p&gt;What I&#039;m hoping for is a way for all of these sites to share the same &#039;off-topic&#039; category but different overall forums. What&#039;s the best way to achieve this? Thanks.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9554#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1067">access control</category>
 <category domain="http://groups.drupal.org/taxonomy/term/574">multisite</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Sat, 08 Mar 2008 21:06:53 +0000</pubDate>
 <dc:creator>Miraploy</dc:creator>
 <guid isPermaLink="false">9554 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Contract PHP Developer with Drupal Experience Needed to Complete a Website Redesign | Ripple Effects Interactive</title>
 <link>http://groups.drupal.org/node/9492</link>
 <description>&lt;p&gt;Overview&lt;/p&gt;
&lt;p&gt;Ripple Effects Interactive (REI) is looking for an independent contractor or service to provide short-term (30 - 90 days) help with a client’s Drupal-based social networking web site. The position will require approximately 20-30 hours a week, possibly more.&lt;/p&gt;
&lt;p&gt;Project Description&lt;/p&gt;
&lt;p&gt;We are redesigning a social networking website that is currently using Drupal 4.6.2. We would like to continue to leverage this version of Drupal and essentially need to apply a new GUI, update the navigation schema,  and add some new custom features such as:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Customized summary nodes where we’ll aggregate content to specific landing pages (news &amp;amp; stories)&lt;/li&gt;
&lt;li&gt;Development of new pages for details of news &amp;amp; stories&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To date, REI has completed UE, interface design, and template coding and can provide the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Link to existing site before development begins&lt;/li&gt;
&lt;li&gt;Approved wireframes for redesigned site in either Visio or .PDF format&lt;/li&gt;
&lt;li&gt;Coded templates written in XHTML 1.0 Transitional and .CSS 2.0&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Qualifications&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Knowledge of Drupal Theming and experience with the creation of page templates and node templates &lt;/li&gt;
&lt;li&gt;Basic Unix skills&lt;/li&gt;
&lt;li&gt;Proven experience with similar web-based projects&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If interested, please send resume to: &lt;a href=&quot;mailto:jprzybysz@r-effects.com&quot;&gt;jprzybysz@r-effects.com&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/pittsburgh-and-southwestern-pa&quot;&gt;Pittsburgh and Southwestern PA&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/drupal-ide">Drupal IDE</group>
 <group domain="http://groups.drupal.org/pittsburgh-and-southwestern-pa">Pittsburgh and Southwestern PA</group>
 <pubDate>Fri, 07 Mar 2008 14:42:37 +0000</pubDate>
 <dc:creator>zdbraham</dc:creator>
 <guid isPermaLink="false">9492 at http://groups.drupal.org</guid>
</item>
<item>
 <title>programmer with drupal experience | BPA</title>
 <link>http://groups.drupal.org/node/9119</link>
 <description>&lt;p&gt;I have a project that has been started and the current programmer is too swamped at the moment.  He will be willing&lt;br /&gt;
to work with you once he finishes out a current project.&lt;/p&gt;
&lt;p&gt;We are under a deadline and need to get the site built out.  Must sign an NDA prior to getting the full site description.&lt;/p&gt;
&lt;p&gt;Details:&lt;br /&gt;
1) Html and design work is complete.&lt;br /&gt;
2) Partial site has been built.&lt;br /&gt;
3) Required back end where corresponding consumer Inputs (answers to questions etc.) will generate outputs in a Personal Plan / Format for the person.&lt;br /&gt;
4) Project is Patent Filed.&lt;br /&gt;
5) Site has a non-profit side to it, but will lead to revenue.&lt;/p&gt;
&lt;p&gt;We would like to complete the build out  in order to populate the site with large bought data files within 30 days.  We plan to soft launch asap and to do a full&lt;br /&gt;
launch in Aug of this year.&lt;/p&gt;
&lt;p&gt;Please reply with past data intense sites that you have built out from start to finish.&lt;/p&gt;
&lt;p&gt;Reply to &lt;a href=&quot;mailto:webyaaba@yahoo.com&quot;&gt;webyaaba@yahoo.com&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/semantic-web&quot;&gt;Semantic Web&lt;/a&gt;&lt;/div&gt;</description>
 <category domain="http://groups.drupal.org/taxonomy/term/838">contract work</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2925">Drupal Jobs</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4188">drupal programmer jobs</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4189">drupal projects</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4187">drupal work</category>
 <category domain="http://groups.drupal.org/taxonomy/term/898">job</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4186">programmer job</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/drupal-ide">Drupal IDE</group>
 <group domain="http://groups.drupal.org/semantic-web">Semantic Web</group>
 <pubDate>Fri, 22 Feb 2008 23:14:30 +0000</pubDate>
 <dc:creator>bpawy123</dc:creator>
 <guid isPermaLink="false">9119 at http://groups.drupal.org</guid>
</item>
<item>
 <title>TODO list: Eventual Version Control migration for drupal.org</title>
 <link>http://groups.drupal.org/node/8102</link>
 <description>&lt;p&gt;This is a loose checklist of items that need to be taken care of to get Version Control API working on drupal.org.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; &lt;em&gt;This effort has been postponed until after the d.o is upgraded to D6.  There&#039;s too much here and the versioncontrol* suite is just not yet ready for prime time.&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;script for migrating from cvs module to versioncontrol_cvs -- &lt;em&gt;in progress&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;script for migrating from cvs module to versioncontrol_project -- &lt;em&gt;done, but could use more testing&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/216371&quot; title=&quot;http://drupal.org/node/216371&quot;&gt;http://drupal.org/node/216371&lt;/a&gt; -- Move item handling and commit branches into the API module -- &lt;em&gt;in progress&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/216373&quot; title=&quot;http://drupal.org/node/216373&quot;&gt;http://drupal.org/node/216373&lt;/a&gt; -- Provide direct hook access to the commit retrieval query&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/216375&quot; title=&quot;http://drupal.org/node/216375&quot;&gt;http://drupal.org/node/216375&lt;/a&gt; -- Port Version Control API &amp;amp; friends to Drupal 6&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/208476&quot; title=&quot;http://drupal.org/node/208476&quot;&gt;http://drupal.org/node/208476&lt;/a&gt; -- add &#039;commit&#039; as a valid GET arg -- &lt;em&gt;done, but mostly deprecated by the following point:&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/209402&quot; title=&quot;http://drupal.org/node/209402&quot;&gt;http://drupal.org/node/209402&lt;/a&gt; -- add legacy &#039;cvs&#039; menu path, to prevent link rot&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/229350&quot; title=&quot;http://drupal.org/node/229350&quot;&gt;http://drupal.org/node/229350&lt;/a&gt; -- Extend the CVS backend so that it supports the optional API function get_directory_contents(), so the release node integration can determine whether or not to package files of a specific branch or tag.&lt;/li&gt;
&lt;li&gt;release node conversion&lt;/li&gt;
&lt;li&gt;Port the package release scripts to use the new infrastructure&lt;/li&gt;
&lt;li&gt;Port or rethink the Form API magic that transforms the harmless file-based release page into a multi-form CVS release drupal.org specific form monster&lt;/li&gt;
&lt;li&gt;install CVS dummy repo at &lt;a href=&quot;http://project.drupal.org&quot; title=&quot;http://project.drupal.org&quot;&gt;http://project.drupal.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;full test install on p.d.o&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8102#comments</comments>
 <group domain="http://groups.drupal.org/revision-control-systems">Revision Control Systems</group>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Thu, 10 Jan 2008 17:14:55 +0000</pubDate>
 <dc:creator>hunmonk</dc:creator>
 <guid isPermaLink="false">8102 at http://groups.drupal.org</guid>
</item>
<item>
 <title>What to do about node_access_rebuild()</title>
 <link>http://groups.drupal.org/node/7956</link>
 <description>&lt;p&gt;So I am &lt;A href=&quot;http://drupal.org/node/205045&quot;&gt;researching&lt;/a&gt; Taxonomy Access Control (TAC) and Domain Access (DA) integration (though this applies to Organic Groups (OG) and other modules as well).  And here&#039;s the problem.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://api.drupal.org/api/function/node_access_rebuild/5&quot;&gt;node_access_rebuild()&lt;/a&gt;, as far as I can tell, is only designed to work with a single access control system.&lt;/p&gt;
&lt;p&gt;When node access modules are enabled and disabled, this function is typically invoked.  (As demonstrated by the &lt;a href=&quot;http://api.drupal.org/api/function/node_access_example_enable/5&quot;&gt;node access example module&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Problem is this first line of the function:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;node_access_rebuild&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;() {&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;db_query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;DELETE FROM {node_access}&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Well, this is great if OG is the only node access module that you use.  But if there are existing node access records, they get deleted as well.&lt;/p&gt;
&lt;p&gt;DA, for example, stores all of its access records in the {node_access} table.  It loads them onto the node during node_load().  If this DELETE statement did not exist, then when node_access_rebuild() finally loaded and re-saved the nodes, existing DA rules would be preserved.&lt;/p&gt;
&lt;p&gt;I see two obvious paths to solving this problem.  One I like; one I do not.&lt;/p&gt;
&lt;p&gt;1)  Make node_access_rebuild() more selective, like cache_clear_all(), in what it chooses to delete from the {node_access} table.  If your module is being uninstalled, you might do this:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;mymodule_disable&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;() {&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;node_access_rebuild&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$remove &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= array(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;my_realm&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;my_other_realm&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;));&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;And then we modify node_access_rebuild() to account for this.&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;node_access_rebuild&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$remove &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= array()) {&lt;br /&gt;&amp;nbsp; if (empty(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$remove&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;db_query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;DELETE FROM {node_access}&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;db_query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;DELETE FROM {node_access} WHERE realm IN (&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;.&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;implode&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;,&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$remove&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) .&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;)&quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;//...&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;I think this is the preferred solution, but it is an API change and would require coordination across contributed modules to make the change work.&lt;/p&gt;
&lt;p&gt;2) Store your node access data in a separate table, so that it is not destroyed by node_access_rebuild().&lt;/p&gt;
&lt;p&gt;I thought about this approach for DA, and decided against it because I did not want to store the same data in two places.&lt;/p&gt;
&lt;p&gt;Am I now going to have to re-think that decision?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7956#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3444">node access</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Thu, 03 Jan 2008 20:22:22 +0000</pubDate>
 <dc:creator>agentrickard@drupal.org</dc:creator>
 <guid isPermaLink="false">7956 at http://groups.drupal.org</guid>
</item>
<item>
 <title>TAC as multisite solution -- groups and domains as roles, using roles.</title>
 <link>http://groups.drupal.org/node/7725</link>
 <description>&lt;p&gt;There&#039;s a new tutorial at &lt;a href=&quot;http://drupal.org/node/200631&quot; title=&quot;http://drupal.org/node/200631&quot;&gt;http://drupal.org/node/200631&lt;/a&gt; which is a different approach to Taxonomy Access Control than I have seen, a very different approach to Groups (as a concept), and multiple Domains (hence a multisite solution).  I am trying to discern what is going on with og, mulltisite, domain access, and TAC generally.&lt;/p&gt;
&lt;p&gt;This tutorial suggests similar functionality to the combination of Domain Access module with Organic Groups, but without either and promises to offer more fine grained control over permissions, although the OG_User_Roles module is perhaps offering similar functionality.  It would be interesting to link that concept of a group (i.e. AccountTypes module?) to an OG.  How does this approach sit with the OG User Roles people?  Does it offer any unique functionality?&lt;/p&gt;
&lt;p&gt;The tutorial looks really interesting, although I&#039;m sure that building UI modules will be needed (and perhaps other OG like modules as well). My question for those who know the OG_User_Roles module, what are the advantages to sticking with OG as opposed to a completely new concept of groups?  And regarding the Taxonomy Access Control module, what is the maximum number of suggested roles which Drupal is optimized for?&lt;/p&gt;
&lt;p&gt;It&#039;s an interesting approach to skinning the multisite problem. What do you think?&lt;/p&gt;
&lt;p&gt;Seasons Greetings!&lt;br /&gt;
ps. sorry for cross-posting similar questions with taxonomy and multisite groups.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/taxonomy&quot;&gt;Taxonomy&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7725#comments</comments>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/multisite">Multisite</group>
 <group domain="http://groups.drupal.org/taxonomy">Taxonomy</group>
 <pubDate>Sun, 16 Dec 2007 20:27:18 +0000</pubDate>
 <dc:creator>freeburj</dc:creator>
 <guid isPermaLink="false">7725 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Request for comments -- Setting OG group defaults on a group type by group type basis</title>
 <link>http://groups.drupal.org/node/7175</link>
 <description>&lt;p&gt;Currently, within OG, all the group settings are set sitewide for all types of group nodes. We are looking to implement group type by group type default permissions to allow for different types of groups within the same site --&lt;/p&gt;
&lt;p&gt;We will be working out a solution to this issue and releasing the code back as a contrib module -- however, before we start coding we want to get some feedback/see if anyone else was thinking along similar lines.&lt;/p&gt;
&lt;p&gt;The issue is here: &lt;a href=&quot;http://drupal.org/node/192933&quot; title=&quot;http://drupal.org/node/192933&quot;&gt;http://drupal.org/node/192933&lt;/a&gt; -- please centralize any discussion on the issue queue.&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Bill&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7175#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/15">og</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1568">organic groups</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Sat, 17 Nov 2007 00:44:42 +0000</pubDate>
 <dc:creator>billfitzgerald</dc:creator>
 <guid isPermaLink="false">7175 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Least permissions and node_access</title>
 <link>http://groups.drupal.org/node/7095</link>
 <description>&lt;p&gt;OK, so I&#039;m working on integrating Domain Access with OG.&lt;/p&gt;
&lt;p&gt;Problem is, the current node_access system uses OR based permissions.  What I really need is the option to set AND based permissions.  For example:&lt;/p&gt;
&lt;p&gt;-- Current node_access rules&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt; return TRUE IF (og == TRUE) OR (Domain Access == TRUE);&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;-- Desired rules&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt; return TRUE IF (og == TRUE) AND (Domain Access == TRUE);&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;See &lt;a href=&quot;http://drupal.org/node/191375&quot; title=&quot;http://drupal.org/node/191375&quot;&gt;http://drupal.org/node/191375&lt;/a&gt; for a full discussion and some possible options.&lt;/p&gt;
&lt;p&gt;To summarize, I&#039;m thinking about rewriting the node_access function and adding a hook_access_logic() function to allow for this type of granularity.&lt;/p&gt;
&lt;p&gt;There is also a related problem that node_access checks don&#039;t run if $node-&amp;gt;status == 0 -- which is a problem for my use case.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/multisite&quot;&gt;Multisite&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7095#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3444">node access</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/contributed-module-ideas">Contributed Module Ideas</group>
 <group domain="http://groups.drupal.org/multisite">Multisite</group>
 <pubDate>Tue, 13 Nov 2007 15:24:50 +0000</pubDate>
 <dc:creator>agentrickard@drupal.org</dc:creator>
 <guid isPermaLink="false">7095 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Domain Access uninstall and update questions</title>
 <link>http://groups.drupal.org/node/7039</link>
 <description>&lt;p&gt;OK, &lt;a href=&quot;http://drupal.org/node/190940&quot;&gt;beta6&lt;/a&gt; is out and the release is looking pretty good.&lt;/p&gt;
&lt;p&gt;But I introduced the Domain Prefix module -- it creates a UI for dynamic table prefixing.  So, for example, each of your subdomains can have a different watchdog table.  The $db_prefix array is dynamically set on bootstrap.&lt;/p&gt;
&lt;p&gt;Two big issues -- notwithstanding the lack of pgSQL support, which I&#039;ll get to shortly.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I have not found a way to run a function any time hook_uninstall() is run.&lt;br /&gt;
Attempts to add a #submit handler using hook_form_alter() failed.  As a resut&lt;br /&gt;
I may have to create an admin page for uninstalling domain_prefix tables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is important, because if you uninstall a module that has prefixed tables, I need to delete those tables as well.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I also failed to find a way to automate the update.php process -- hook_form_alter()&lt;br /&gt;
also fails to add a #submit handler in that case.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Same thing here; the update.php script works for each subdomain, but you should not have to run them all manually.&lt;/p&gt;
&lt;p&gt;Anyone know how these two issues are generally handled in a MultiSite setup?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/multisite&quot;&gt;Multisite&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/7039#comments</comments>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/multisite">Multisite</group>
 <pubDate>Sat, 10 Nov 2007 02:23:03 +0000</pubDate>
 <dc:creator>agentrickard@drupal.org</dc:creator>
 <guid isPermaLink="false">7039 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Domain Access</title>
 <link>http://groups.drupal.org/node/6444</link>
 <description>&lt;p&gt;For a project, we just came up with another way to skin the multisite problem.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/project/domain&quot;&gt;Domain Access&lt;/a&gt; is a node access module that enables multiple sites to be run from one installation.&lt;/p&gt;
&lt;p&gt;The beta has been released.&lt;/p&gt;
&lt;p&gt;See the module in action at &lt;a href=&quot;http://skirt.com/map&quot; title=&quot;http://skirt.com/map&quot;&gt;http://skirt.com/map&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/multisite&quot;&gt;Multisite&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/6444#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1067">access control</category>
 <category domain="http://groups.drupal.org/taxonomy/term/574">multisite</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/multisite">Multisite</group>
 <pubDate>Thu, 04 Oct 2007 21:12:56 +0000</pubDate>
 <dc:creator>agentrickard@drupal.org</dc:creator>
 <guid isPermaLink="false">6444 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Help needed understanding Access Control in OG</title>
 <link>http://groups.drupal.org/node/5863</link>
 <description>&lt;p&gt;Hello,&lt;br /&gt;
I&#039;m here because it seems like the only place I am likely to find some help with Access Control, having scoured the internet for help elsewhere...&lt;/p&gt;
&lt;p&gt;I just set up OG on my 5.1 installation and although I have the groups working nicely (well, single group in my case), I can&#039;t for the life of me work out how to restrict access to either the individual posts, or the group homepage. In fact, when I enable access control in the OG settings, both my group and the posts within it suddenly become editable by anonymous/unauthenticated users. I have scoured the settings setting everything to be as private as possible, but with no joy. Is it possible that I&#039;m missing some fundamental point?&lt;/p&gt;
&lt;p&gt;I have a site full of open content with a few bloggers and content editors. I need one private area restricted to 2 users (as 2 roles). One role has read access only, the other has read/write access. I don&#039;t need any per-node per-user access, but I do need that part of the site to not be open to the public.&lt;/p&gt;
&lt;p&gt;Apologies if this is the wrong place to ask - do tell me where to go.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;Dorian&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/5863#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1067">access control</category>
 <category domain="http://groups.drupal.org/taxonomy/term/15">og</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Mon, 27 Aug 2007 23:48:17 +0000</pubDate>
 <dc:creator>tachekent</dc:creator>
 <guid isPermaLink="false">5863 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Addition of permission for read/write ability based on topic/blog entry for each user</title>
 <link>http://groups.drupal.org/node/5567</link>
 <description>&lt;p&gt;I am in involved in a customization of Drupal 5.2 for our company. I need the following things to be&lt;br /&gt;
 done:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;When a user creates a blog or a forum topic, he/she needs controls to give access to other users&lt;br /&gt;
who would be able to read the blog, read &amp;amp; reply comments etc for each blog/forum topic. The access&lt;br /&gt;
control should be in the format of a) Public or Private b) Company c) Department/Division d) Individ&lt;br /&gt;
ual.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Any reply comments or new creation of blog/forum topic should be send as emails to the particular&lt;br /&gt;
user email ids as in the case above.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Please help me in this issue as soon as possible. Thanks for your prompt help.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;
Mnjose&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/5567#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2806">Blog wise access control</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Mon, 13 Aug 2007 11:03:51 +0000</pubDate>
 <dc:creator>mnjose</dc:creator>
 <guid isPermaLink="false">5567 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Using Content Access and ACL with OG User Roles</title>
 <link>http://groups.drupal.org/node/5392</link>
 <description>&lt;p&gt;The following documentation was originally written for OGR releases prior to 5.x-3.0.  As of OGR Release 5.x-3.0, the &quot;Multiple Node Access logic patch&quot; &lt;a href=&quot;http://drupal.org/node/196922&quot; title=&quot;http://drupal.org/node/196922&quot;&gt;http://drupal.org/node/196922&lt;/a&gt; is used for TAC/OG/CA/ACL Integration.&lt;/p&gt;
&lt;p&gt;As of this writing, I know that CA (Content Access) and ACL (Access Control List) now work with TAC/OG Integration &lt;a href=&quot;http://groups.drupal.org/node/3700&quot; title=&quot;http://groups.drupal.org/node/3700&quot;&gt;http://groups.drupal.org/node/3700&lt;/a&gt;.  But, because of the new way this integration   is achieved (using the &lt;b&gt;multinode_access table&lt;/b&gt;), there are now a variety of ways you can now configure access.&lt;/p&gt;
&lt;p&gt;This is complicated stuff, but I&#039;m going to try.&lt;/p&gt;
&lt;h2&gt;Multiple Node Access Logic&lt;/h2&gt;
&lt;p&gt;As of OGR Release 5.x-3.0, TAC/OG Integration is achieved by configuring the new &quot;multinode_access&quot; table for the logic you desire between the access control systems.  This is the logic recommended for TAC/OG Integration:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;(all OR og) AND (tac) OR (ogr)&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;This says that I always want og and tac rules integrated to respect each other, but they can be overriden by ogr rules.  I explain here &lt;a href=&quot;http://groups.drupal.org/node/3700&quot; title=&quot;http://groups.drupal.org/node/3700&quot;&gt;http://groups.drupal.org/node/3700&lt;/a&gt; what I mean when I say &quot;integrated to respect each other&quot;.&lt;/p&gt;
&lt;p&gt;OG User Roles now supports these two modules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Content Access: &lt;a href=&quot;http://www.drupal.org/project/content_access&quot; title=&quot;http://www.drupal.org/project/content_access&quot;&gt;http://www.drupal.org/project/content_access&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ACL: &lt;a href=&quot;http://www.drupal.org/project/acl&quot; title=&quot;http://www.drupal.org/project/acl&quot;&gt;http://www.drupal.org/project/acl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These modules allow you to custom define roles and/or users who can access particular nodes.&lt;/p&gt;
&lt;p&gt;In order to add them to our TAC/OG Integration, I recommend this:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;(all OR og) AND (tac) OR (ogr) OR (ca) OR (acl)&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;This says I want tac and og rules always integrated to respect each other, except when overriden by ogr, ca and/or acl rules.  If node has a taxonomy term, belongs to a group, and has some content_access permission, a user must have either the group AND taxonomy permissions OR the content_access permissions OR the ogr permissions to access the node.&lt;/p&gt;
&lt;p&gt;Now, it&#039;s possible to look at this another way:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;(all OR og OR ca) AND (tac) OR (ogr) OR (acl)&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;This says I want tac and og AND ca rules always integrated to respect each other.  So, if node has a taxonomy term, belongs to a group, and has some content_access permission, a user must have ALL of these permissions to access the node, not just one or the other, OR the acl permissions OR the ogr permissions.&lt;/p&gt;
&lt;h2&gt;Configuring TAC/OG/CA/ACL Integration&lt;/h2&gt;
&lt;p&gt;The following discussion assumes you have, in addition to OG User Roles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;installed both Content Access and ACL modules as well as Taxonomy Access Control (TAC)
&lt;li&gt;you have installed the &quot;&lt;b&gt;node.module.multinode.patch&lt;/b&gt;&quot; &lt;a href=&quot;http://groups.drupal.org/node/4026&quot; title=&quot;http://groups.drupal.org/node/4026&quot;&gt;http://groups.drupal.org/node/4026&lt;/a&gt; provided in the OGR 5.x-3.0 or higher release download
&lt;li&gt;turned on TAC/OG Integration in OGR Settings &lt;a href=&quot;http://drupal.org/node/163567&quot; title=&quot;http://drupal.org/node/163567&quot;&gt;http://drupal.org/node/163567&lt;/a&gt;
&lt;li&gt;created a content type called &amp;quot;Document&amp;quot;. You can use any content type you wish, but for this discussion and testing, we&amp;#39;ve created a content type called &amp;quot;Document&amp;quot;.&lt;br /&gt; 
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuration&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Go to OGR Settings &lt;b&gt;Admin-&amp;gt;Organic groups-&amp;gt;Organic groups user roles&lt;/b&gt; and click on the &quot;Multinode access UI&quot; tab.  You should configure this screen exactly as you see below:&lt;br /&gt;
&lt;img src=&quot;http://drupal.org/files/issues/OGRConfigureMultinodeUI_ACL.jpg&quot; alt=&quot;TAC/OG/CA/ACL Multinode Configuration&quot; title=&quot;TAC/OG/CA/ACL Multinode  Configuration&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Configure your screen exactly as you see above, and click on &quot;Save changes&quot; button.  The above creates the following logic:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;(all OR og) AND (tac) OR (ogr) OR (ca) OR (acl)&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;If you desire another logic possibility but aren&#039;t sure how to configure it, please post a support request to OGR Issues: &lt;a href=&quot;http://drupal.org/project/issues/149373&quot; title=&quot;http://drupal.org/project/issues/149373&quot;&gt;http://drupal.org/project/issues/149373&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Next, configure &amp;quot;Document&amp;quot; content type (assumes you have already created it):&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://clients.brixrealtyinc.com//&quot;&gt;http://www.yoursite.com/admin/content/types/document&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://clients.brixrealtyinc.com//&quot;&gt;Home&lt;/a&gt; › &lt;a href=&quot;http://clients.brixrealtyinc.com/admin&quot;&gt;Administer&lt;/a&gt; › &lt;a href=&quot;http://clients.brixrealtyinc.com/admin/content&quot; title=&quot;Manage your site&amp;#039;s content.&quot;&gt;Content management&lt;/a&gt; › &lt;a href=&quot;http://clients.brixrealtyinc.com/admin/content/types&quot; title=&quot;Manage posts by content type, including default status, front page promotion, etc.&quot;&gt;Content types&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Click on &amp;quot;Access Control&amp;quot; tab for this content type:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://www.yoursite.com/admin/content/types/document/access&quot; title=&quot;http://www.yoursite.com/admin/content/types/document/access&quot;&gt;http://www.yoursite.com/admin/content/types/document/access&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;From this screen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Enable per node access control settings&lt;/li&gt;
&lt;li&gt;Uncheck all roles&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;http://www.scbbs.com/system/files/u1/content_accessBRIXDocument.gif&quot; alt=&quot;Content Access Content Type Configuration&quot; title=&quot;Content Access Content Type Configuration&quot; width=&quot;500&quot; height=&quot;429&quot; /&gt;&lt;/p&gt;
&lt;p&gt; &amp;quot;Document&amp;quot; content type is now set up to use Content Access.&lt;/p&gt;
&lt;p&gt;You should repeat this process for every content type used on your site that should respect this multinode access logic configuration.&lt;/p&gt;
&lt;h3&gt;Note: The following original documentation steps are recommended, but required&lt;/h3&gt;
&lt;p&gt;To be honest, I am no longer sure that the following is required as it once was.  The new integration architecture appears to allow you to support CA and ACL with or without TAC.&lt;/p&gt;
&lt;p&gt;I&#039;m leaving this documentation just to be on the safe side.  But, I suggest you play around and see what works best on your site.&lt;/p&gt;
&lt;p&gt;I create a &amp;quot;Document&amp;quot; vocabulary and add the &amp;quot;Document&amp;quot; content type to it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Home &amp;gt; Administer &amp;gt; Content management &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.scbbs.com/system/files/u1/content_accessVocabulary.gif&quot; alt=&quot;Document Vocabulary&quot; title=&quot;Document Vocabulary&quot; width=&quot;500&quot; height=&quot;492&quot; /&gt;  &lt;/p&gt;
&lt;p&gt;I then use the &amp;quot;add terms&amp;quot; link to add a &amp;quot;NONE&amp;quot; term to the &amp;quot;Document&amp;quot; vocabulary.&lt;/p&gt;
&lt;p&gt;Using Taxonomy Access Permissions (TAC), I grant NO role access to this term (except for privileged &amp;quot;Admin&amp;quot; users). This means that any node you assign this term to will not be viewable by anyone. This is the recommended category to use for content for which you intend to use Content Access (i.e., assign customized permissions). &lt;/p&gt;
&lt;p&gt;You must do this because you cannot use Content Access to revoke permisisons granted by TAC. However, you can use Content Access to grant permissions to content that TAC does not grant permissions to.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://clients.brixrealtyinc.com/&quot;&gt;Home&lt;/a&gt; › &lt;a href=&quot;http://clients.brixrealtyinc.com/admin&quot;&gt;Administer&lt;/a&gt; › &lt;a href=&quot;http://clients.brixrealtyinc.com/admin/user&quot; title=&quot;Manage your site&amp;#039;s users, groups and access to site features.&quot;&gt;User management&lt;/a&gt; &amp;gt; Taxonomy Access: Permissions&lt;/p&gt;
&lt;p&gt; &lt;img src=&quot;http://www.scbbs.com/system/files/u1/tacPermissionsForNONE.gif&quot; alt=&quot;TAC Permissions for NONE&quot; title=&quot;TAC Permissions for NONE&quot; width=&quot;470&quot; height=&quot;488&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Note: Your Admin role(s) should be given List/Create permisisons here for &amp;quot;NONE&amp;quot; term. &lt;/p&gt;
&lt;p&gt;In: &lt;a href=&quot;http://clients.brixrealtyinc.com//&quot;&gt;Home&lt;/a&gt; › &lt;a href=&quot;http://clients.brixrealtyinc.com/admin&quot;&gt;Administer&lt;/a&gt; › &lt;a href=&quot;http://clients.brixrealtyinc.com/admin/user&quot; title=&quot;Manage your site&amp;#039;s users, groups and access to site features.&quot;&gt;User management&lt;/a&gt; &amp;gt; Roles:&lt;/p&gt;
&lt;p&gt;Give your Admin users permission to &lt;strong&gt;grant content access&lt;/strong&gt;. &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;a href=&quot;http://www.yoursite.com/admin/user/roles&quot; title=&quot;http://www.yoursite.com/admin/user/roles&quot;&gt;http://www.yoursite.com/admin/user/roles&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gave &amp;quot;Admin&amp;quot; and &amp;quot;GroupAdmin&amp;quot; roles these permissions: &lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;table border=&quot;0&quot; id=&quot;permissions&quot;&gt;
&lt;tbody&gt;
&lt;tr class=&quot;even&quot;&gt;
&lt;td class=&quot;permission&quot;&gt;grant content access&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt; &lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=&quot;odd&quot;&gt;
&lt;td class=&quot;permission&quot;&gt;grant own content access&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;These are my Admin roles which can create Content Access nodes. These roles need to be able to List/Create &amp;quot;NONE&amp;quot; term (use Taxonomy Access: Permissions). &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Usage&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;It is first important to remember that if you want to create custom access to a node you create, that node must NOT have access granted by a vocabulary term. From a technical standpoint, Content Access and Taxonomy Access (TAC) do not work together. So, you can&amp;#39;t, for example, assign a node a vocabulary in which TAC allows Role A to view it, then try to use Content Access to restrict Role A from viewing it.&lt;/p&gt;
&lt;p&gt;In order to use Content Access, you must assign the node for which access is to be customized to the &amp;quot;NONE&amp;quot; category (you have used TAC to grant NO users access to &amp;quot;NONE&amp;quot; content, except for Admin users). Then from the node&amp;#39;s &amp;quot;Access Control&amp;quot; tab (which will appear once the node is submitted) you assign what roles and/or users can view/edit/delete the node.&lt;/p&gt;
&lt;p&gt;To create a node with customized content access (using the &amp;quot;Document&amp;quot; content type):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click on &amp;quot;Create document&amp;quot; link from Group menu.&lt;/li&gt;
&lt;li&gt; Create node as usual, except for &amp;quot;Category&amp;quot; select &amp;quot;NONE&amp;quot;. Click on &amp;quot;Submit&amp;quot;.&lt;/li&gt;
&lt;li&gt;At this point, no one can see the node but you.   &lt;/li&gt;
&lt;li&gt;When the node is saved, you will see an &amp;quot;Access Control&amp;quot; tab next to the &amp;quot;View&amp;quot; and &amp;quot;Edit&amp;quot; tabs. Click on &amp;quot;Access Control&amp;quot; tab.
&lt;/li&gt;
&lt;li&gt;You will see the &amp;quot;Role access control settings&amp;quot;:&lt;br /&gt;     &lt;img src=&quot;http://www.scbbs.com/system/files/u1/content_accessRoleAccess.gif&quot; alt=&quot;Role Access Control Settings&quot; title=&quot;Role Access Control Settings&quot; width=&quot;484&quot; height=&quot;331&quot; /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Below that you will see the &amp;quot;User access control lists&amp;quot; (ACL) section which has the individual Grant view/update/delete lists. Here is where you enter invidual user IDs to grant a particular permission for this node:&lt;br /&gt;     &lt;img src=&quot;http://www.scbbs.com/system/files/u1/content_accessUserACL.gif&quot; alt=&quot;User Access Control List&quot; title=&quot;User Access Control List&quot; width=&quot;478&quot; height=&quot;326&quot; /&gt;   &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;On this screen, you can select the roles to give view/update/delete permissions for this node. Or, you can enter the users to grant view/update/delete permissions for this node.&lt;/p&gt;
&lt;p&gt; If you make any changes to this screen, don&amp;#39;t forget to click on &amp;quot;Submit&amp;quot;.&lt;/p&gt;
&lt;p&gt; Don&amp;#39;t forget that if you add users to the ACL using the &amp;quot;Add User&amp;quot; button, you must still click on the &amp;quot;Submit&amp;quot; button at the bottom of the screen for your entries to be valid. &lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/5392#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2723">og user roles content access acl</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Tue, 31 Jul 2007 17:58:27 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">5392 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Overriding taxnomony_access_db_rewrite_sql()</title>
 <link>http://groups.drupal.org/node/5263</link>
 <description>&lt;p&gt;I&#039;ve posted this in the Drupal Forums, but want to post it here as well.&lt;/p&gt;
&lt;p&gt;As you know, I created patches to the node, og, and taxonomy_access modules which allow them to work together: &lt;a href=&quot;http://groups.drupal.org/node/3700&quot; title=&quot;http://groups.drupal.org/node/3700&quot;&gt;http://groups.drupal.org/node/3700&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What I want to do now is start removing some of these patches by putting the functionality I need into one separate module.&lt;/p&gt;
&lt;p&gt;First up: taxonomy_access_db_rewrite_sql().  Curently, I patch this function in order to get the taxonomy_access module to display terms and nodes while respecting OG access control.  What I would like to do is take this patched code, put it into another module, and have that module override the default taxonomy_access_db_rewrite_sql() function (therefore removing my need to patch it).&lt;/p&gt;
&lt;p&gt;Put another way, I would like to have the db_rewrite_sql() function of Module B override (not add to or augment, but replace) the db_rewrite_sql() function of Module A.&lt;/p&gt;
&lt;p&gt;Is this even possible?  And if so, any suggestions on how would I go about doing it?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/5263#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1705">taxonomy access control</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Sun, 22 Jul 2007 21:57:18 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">5263 at http://groups.drupal.org</guid>
</item>
<item>
 <title>OG User Roles now official Drupal Project</title>
 <link>http://groups.drupal.org/node/4415</link>
 <description>&lt;p&gt;The OG User Roles module is now finally a Drupal project: &lt;a href=&quot;http://www.drupal.org/project/og_user_roles&quot; title=&quot;http://www.drupal.org/project/og_user_roles&quot;&gt;http://www.drupal.org/project/og_user_roles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The TAC/OG access control has now been added to the og_user_roles module, and the module is now required for implementation of this functionality.  The TAC/OG patches are now located here: &lt;a href=&quot;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop/TAC_OG/&quot; title=&quot;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop/TAC_OG/&quot;&gt;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop...&lt;/a&gt; and have now been modified to reflect this change.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/4415#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2279">og user roles taxonomy_access node</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Tue, 05 Jun 2007 19:45:25 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">4415 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Another aproach</title>
 <link>http://groups.drupal.org/node/4274</link>
 <description>&lt;p&gt;Hi:&lt;/p&gt;
&lt;p&gt;I&#039;ve read the posts about having TAC and OG access control systems working together...&lt;br /&gt;
I think you have done a great job with t¡hose patchs but I like to avoid using patch as much as possible so I have been thinking in a way of doing the same with existing modules...&lt;/p&gt;
&lt;p&gt;Modules used:&lt;br /&gt;
- OG promote&lt;br /&gt;
- TAC&lt;br /&gt;
- OG&lt;br /&gt;
- Node Auto Term [NAT]&lt;/p&gt;
&lt;p&gt;The idea is to use the way TAC works with multi term nodes. From admin/help/taxonomy_access:&lt;br /&gt;
&quot;The DENY directives are processed after the ALLOW directives. (DENY overrides ALLOW.) So, if a multicategory node is in Categories &quot;A&quot; and &quot;B&quot; and a user has ALLOW permissions for VIEW in Category &quot;A&quot; and DENY permissions for VIEW in Category &quot;B&quot;, then the user will NOT be permitted to VIEW the node. (DENY overrides ALLOW.)&quot;&lt;/p&gt;
&lt;p&gt;Think of this as an logical AND of permissions (ALLOW=1/DENY=0)&lt;/p&gt;
&lt;p&gt;Procedure:&lt;br /&gt;
First we need to create a vocabulary named Groups in which the terms would be the different groups names.&lt;br /&gt;
We need to activate this vocabulary for all content types planned to be used in groups.&lt;/p&gt;
&lt;p&gt;For each new group we need to take the following steps:&lt;br /&gt;
1.- We create a term in Groups vocabulary for each new group created (this can be automated with the NAT module by creating a term in Groups vocab for each node of type Group created).&lt;br /&gt;
3.- We create a role for each new group created (this can&#039;t be automated)&lt;br /&gt;
4.- We go to TAC  an set permissions for the new role to deny all actions in all terms but its own term (we can set the defaults to deny all to allow automatic deny of all actions in future groups), so we only have to change it one time.&lt;br /&gt;
5.- We need to tag each node created in the group with the corresponding Groups vocabulary term.&lt;br /&gt;
6.- We can now assign all the other taxonomy terms we want...&lt;/p&gt;
&lt;p&gt;This way the TAC permissions given to regular taxonomy terms would be ANDed with the permissions for the Groups term and this would result in any user who access a group node to be forgiven to do any action if it doesn&#039;t belong to the group.&lt;/p&gt;
&lt;p&gt;This is only an idea for discussion... I haven&#039;t tried it.&lt;/p&gt;
&lt;p&gt;If this is feasible, we can think in a solution to automate all the process.&lt;br /&gt;
Perhaps with a modification in OG to allow optional creation of  a term (if we don&#039;t want to use NAT) and a role for each group (and setting TAC permissions) plus a way to do automatic tagging of the nodes attached to an OG would be enough?&lt;br /&gt;
Or perhaps it would be better to do it in a new module to avoid unneeded add dependencies to OG.&lt;/p&gt;
&lt;p&gt;Bye.-&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/4274#comments</comments>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Mon, 28 May 2007 23:41:01 +0000</pubDate>
 <dc:creator>neurojavi</dc:creator>
 <guid isPermaLink="false">4274 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Helpful hint to access control module users</title>
 <link>http://groups.drupal.org/node/4261</link>
 <description>&lt;p&gt;I am reporting some findings that I hope will help others who decide to try any access control module currently available to Drupal 5.1 or earlier.&lt;/p&gt;
&lt;p&gt;There is currently an issue in the 5.1 build of Drupal which will cause a site with high numbers of nodes (4000 in my case)  to error out when rebuilding node access permissions or when enabling / disabling a node access control module. This error is due to node_access_rebuild() calling node_load() and loading every node into cache thus causing an out of memory error.   This occurs not only when using the rebuild permissions function in Content Management -&amp;gt; Post Settings but also anytime the node_access_rebuild() function is called such as when enabling or disabling access control modules.&lt;/p&gt;
&lt;p&gt;The patch for this issue can be found here: &lt;a href=&quot;http://drupal.org/node/108752&quot; title=&quot;http://drupal.org/node/108752&quot;&gt;http://drupal.org/node/108752&lt;/a&gt; , or users can update to the current HEAD version of 5.x for the fix.  There are plans to further address the issue in 6.x via a batching process.&lt;/p&gt;
&lt;p&gt;It would be nice if module developers would include some information in the module documentation specifically about this issue.  I believe after reading many different memory error issues throughout DO, that this is a big contributor to many mystery error issues.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/relationships-site-structuring&quot;&gt;Relationships &amp;amp; site structuring&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/4261#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1067">access control</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1704">forum access</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2216">memory errors</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1931">nodeaccess</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1705">taxonomy access control</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/community">Community</group>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/relationships-site-structuring">Relationships &amp;amp; site structuring</group>
 <pubDate>Mon, 28 May 2007 11:55:06 +0000</pubDate>
 <dc:creator>jlmeredith</dc:creator>
 <guid isPermaLink="false">4261 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Openmusic:a barter Social Network for Musicians, Bands and Fans</title>
 <link>http://groups.drupal.org/node/4215</link>
 <description>&lt;p&gt;Greetings fellow Drupallers!&lt;br /&gt;
I began working on OpenMusic, a social network that aims at letting fans help music artists. By giving appropriate roles to its fans - thus getting them involved -  an artist can build a network of valuable friends where each can provide a service to help the artist.&lt;br /&gt;
I&#039;ve been in a band many times ( and still am!) and I&#039;ve seen how fans crave to be involved into bands in one or another way. Designing posters, building websites, making a connection to a local radio station, giving haircut advices each fan can throw in his own 2 cents. What we all need is a platform to allow us to find each other, discovering new music in the middle, making successful gigs and throwing parties. It sounds so much fun, it even gives me the illusion that over there music could eventually be Free.&lt;/p&gt;
&lt;p&gt;Now that I finished drooling, on to the serious part. Your opinion is &lt;b&gt;deeply&lt;/b&gt; appreciated in forming a framework of functionality for the following diagram:&lt;br /&gt;
&lt;img src=&quot;http://groups.drupal.org/files/openmusic_by_Christopher_Skauss.gif&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I&#039;ve been striving to work out the best approach but I am always at dead ends. Organic groups, buddylist, taxonomy access, a more granular form of access control, &lt;a href=&quot;http://groups.drupal.org/access-control&quot;&gt;somebodysysop&#039;s og_user_roles&lt;/a&gt;, which of all!? How can a user be a fan of Band A and simultaneously be Band A&#039;s manager. From what I&#039;ve gathered so far, organic groups seems to be the best approach, where a generic og member is a fan, and roles specific to each group tell what kind of a fan one is. A band&#039;s manager should be given the right to publish an event node to the band&#039;s og page, a band&#039;s graphic designer to publish an image node, much like a music artist should be able to create an audio node in his bands og page.&lt;/p&gt;
&lt;p&gt;Am I missing something here? Can this be done without organic groups? What about artists that are not bands, how can they have fans?&lt;br /&gt;
Could all this ever be made into a distribution profile?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/social-networking-sites&quot;&gt;Social Networking Sites&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/4215#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2199">music bands</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2196">music network</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2198">openmusic</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2197">social musicnetwork</category>
 <category domain="http://groups.drupal.org/taxonomy/term/846">social network</category>
 <enclosure url="http://groups.drupal.org/files/openmusic_by_Christopher_Skauss.gif" length="28166" type="image/gif" />
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <group domain="http://groups.drupal.org/art-music">Art &amp;amp; Music</group>
 <group domain="http://groups.drupal.org/community">Community</group>
 <group domain="http://groups.drupal.org/distributions">Distribution profiles</group>
 <group domain="http://groups.drupal.org/social-networking-sites">Social Networking Sites</group>
 <pubDate>Thu, 24 May 2007 22:50:34 +0000</pubDate>
 <dc:creator>christopher_skauss@drupal.org</dc:creator>
 <guid isPermaLink="false">4215 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Content Access 1.0 released!</title>
 <link>http://groups.drupal.org/node/4141</link>
 <description>&lt;p&gt;Yet another node access module..&lt;br /&gt;
Read more at &lt;a href=&quot;http://more.zites.net/content_access&quot; title=&quot;http://more.zites.net/content_access&quot;&gt;http://more.zites.net/content_access&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/4141#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2159">content_access</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1931">nodeaccess</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Sat, 19 May 2007 17:15:56 +0000</pubDate>
 <dc:creator>fago@drupal.org</dc:creator>
 <guid isPermaLink="false">4141 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to Make OG and TAC Work Together: Step 3</title>
 <link>http://groups.drupal.org/node/4026</link>
 <description>&lt;p&gt;The patch for modifications I discussed in TAC/OG Integration Step 2 (&lt;a href=&quot;http://groups.drupal.org/node/3700&quot; title=&quot;http://groups.drupal.org/node/3700&quot;&gt;http://groups.drupal.org/node/3700&lt;/a&gt;) is located here as well as the latest OGR distribution:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop/TAC_OG/&quot; title=&quot;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop/TAC_OG/&quot;&gt;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop...&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Instructions for OGR Release 5.x-3.0 and higher&lt;/h2&gt;
&lt;p&gt;Once OG User Roles module is downloaded and installed, you must:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install the &lt;b&gt;node.module.multinode.patch&lt;/b&gt;&lt;/li&gt;
&lt;p&gt;This patch is included in OGR Release 5.x-3.0 and higher.  It is also available from here: &lt;/p&gt;
&lt;p&gt;   &lt;a href=&quot;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop/TAC_OG/&quot; title=&quot;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop/TAC_OG/&quot;&gt;http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/somebodysysop...&lt;/a&gt;&lt;br /&gt;
   &lt;a href=&quot;http://ftp.scbbs.com/pub/drupal/TAC_OG/&quot; title=&quot;http://ftp.scbbs.com/pub/drupal/TAC_OG/&quot;&gt;http://ftp.scbbs.com/pub/drupal/TAC_OG/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Download and place this patch file into your Drupal web site &quot;/modules/node&quot;&lt;br /&gt;
directory.  Then, execute this command:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;patch -p0 &amp;lt; node.module.multinode.patch&lt;/code&gt;&lt;/div&gt;
&lt;li&gt;Go to OG User Roles settings and place check in &quot;TAC/OG Access&lt;br /&gt;
   Control Integration&quot; (&quot;Integrate TAC and OG Access Control&quot;).&lt;/li&gt;
&lt;li&gt;Go to OG User Roles settings and click on the &quot;Configure multinode UI&quot;&lt;br /&gt;
   tab.  You will see the &quot;multinode_access&quot; table listing of node&lt;br /&gt;
   grant realms.  You need to make the following changes to this table:&lt;/li&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp; ogr_access&lt;br /&gt;&amp;nbsp;&amp;nbsp; ==========&lt;br /&gt;&amp;nbsp;&amp;nbsp; Place check in checkbox next to &amp;quot;ogr_access&amp;quot; Realm name.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Enter &amp;quot;ogr&amp;quot; in Group column.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Select &amp;quot;OR&amp;quot; as Logic.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Select &amp;quot;1&amp;quot; as Weight.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Select &amp;quot;0&amp;quot; for Check.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; term_access&lt;br /&gt;&amp;nbsp;&amp;nbsp; ===========&lt;br /&gt;&amp;nbsp;&amp;nbsp; Place check in checkbox next to &amp;quot;term_access&amp;quot; Realm name.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Enter &amp;quot;tac&amp;quot; in Group column.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Select &amp;quot;AND&amp;quot; as Logic.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Select &amp;quot;0&amp;quot; as Weight.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Select &amp;quot;0&amp;quot; for Check.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; All other realms should remain unchecked.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; See the screenshot of what your table modification should look&lt;br /&gt;&amp;nbsp;&amp;nbsp; like: &lt;a href=&quot;http://drupal.org/files/OGRConfigureMultinodeUI.jpg&quot; title=&quot;http://drupal.org/files/OGRConfigureMultinodeUI.jpg&quot;&gt;http://drupal.org/files/OGRConfigureMultinodeUI.jpg&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; Click on &amp;quot;Save changes&amp;quot; button to save your changes.&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;If you do not see &lt;b&gt;ogr_access&lt;/b&gt; realm in multinode access table, see: &lt;a href=&quot;http://drupal.org/node/300421&quot; title=&quot;http://drupal.org/node/300421&quot;&gt;http://drupal.org/node/300421&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
&lt;p&gt;How to apply patches: &lt;a href=&quot;http://drupal.org/node/60108&quot; title=&quot;http://drupal.org/node/60108&quot;&gt;http://drupal.org/node/60108&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Instructions for OGR releases prior to 3.0&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;Previous to release 2.0 of OG User Roles&lt;/b&gt;, there are were 3 patches:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;og.module.TAC_OG.patch
taxonomy_access.module.TAC_OG.patch
node.module.TAC_OG.patch
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;As of OG User Roles release 2.0, but previous to 3.0&lt;/b&gt; there is only one patch:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    og_user_roles.nodeapi_access.patch
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As you read in Step 2, there were several modules that I modified for my own customizations, but the OG, Node and Taxonomy Access Control modules were the basic modules that needed to be modified in order for TAC and OG to work together.  In release 2.0 of OG User Roles, I managed to put most of these modifications into the OG User Roles module itself.&lt;/p&gt;
&lt;p&gt;The only remaining modification was to the node_access function in the node.module, to handle the updated process of access control.  For this, I use the Nodeapi Access patch, which is discussed in length here: &lt;a href=&quot;http://drupal.org/node/143075&quot; title=&quot;http://drupal.org/node/143075&quot;&gt;http://drupal.org/node/143075&lt;/a&gt; and here: &lt;a href=&quot;http://drupal.org/node/122173&quot; title=&quot;http://drupal.org/node/122173&quot;&gt;http://drupal.org/node/122173&lt;/a&gt;.  It is my hope that this patch will make it&#039;s way into Drupal 7 core.&lt;/p&gt;
&lt;p&gt;You can also retrieve this patch from here: &lt;a href=&quot;http://ftp.scbbs.com/pub/drupal/TAC_OG&quot; title=&quot;http://ftp.scbbs.com/pub/drupal/TAC_OG&quot;&gt;http://ftp.scbbs.com/pub/drupal/TAC_OG&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And, it is included in the OG User Roles 2.0 and higher distributions.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/4026#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2119">og node taxonomy access db_rewrite_sql</category>
 <enclosure url="http://groups.drupal.org/files/TAC_OG_README_3.txt" length="1951" type="text/plain" />
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Fri, 11 May 2007 19:51:06 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">4026 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to Make OG and TAC Work Together: Step 2</title>
 <link>http://groups.drupal.org/node/3700</link>
 <description>&lt;h2&gt;Notes as of OGR Release 3.0 and higher&lt;/h2&gt;
&lt;p&gt;This has been a long process.  In short, I&#039;ve been able to get TAC (Taxonomy Access Control) and OG (Organic Groups) working together with OGR (Organic Groups User Roles).  The history of this process is discussed below under &lt;b&gt;Notes previous to OGR Release 3.0&lt;/b&gt;.  I feel it is important to maintain this documentation.  If you are considering using TAC/OG Integration, you should read it to understand the background and important issues of this project.&lt;/p&gt;
&lt;p&gt;The latest progress on this project involves use of the &quot;Multiple Node Access logic patch&quot; which is discussed at length here: &lt;a href=&quot;http://drupal.org/node/196922&quot; title=&quot;http://drupal.org/node/196922&quot;&gt;http://drupal.org/node/196922&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Instructions and patch locations for installing current OGR TAC/OG Integration are located here: &lt;a href=&quot;http://groups.drupal.org/node/4026&quot; title=&quot;http://groups.drupal.org/node/4026&quot;&gt;http://groups.drupal.org/node/4026&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Please submit any questions you may have regarding this project in the Issues for OG User Roles: &lt;a href=&quot;http://drupal.org/project/issues/og_user_roles?categories=support&amp;amp;states=all&quot; title=&quot;http://drupal.org/project/issues/og_user_roles?categories=support&amp;amp;states=all&quot;&gt;http://drupal.org/project/issues/og_user_roles?categories=support&amp;amp;states...&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Notes previous to OGR Release 3.0&lt;/h2&gt;
&lt;p&gt;At first, I was going to provide the patches for the module updates in this step, but this is a big step because here is where you modify all the access control mechanisms.  I wanted to break this down into smaller steps, but it&#039;s pretty difficult since all the changes have to be done at once.  So, I decided to make this step an educational step designed to share my philosophy and approach to the access control changes I made, and how they came about.&lt;/p&gt;
&lt;p&gt;To recap, I needed OG (Organic Groups) and TAC (Taxonomy Access Control) to work together.  In the default Drupal access control setup, if you have a node that is in a group and has a particular taxonomy, any user can see the node if he EITHER belongs to the group OR has access to the taxonomy term.  What I wanted was a mechanism that only allowed access to the node if the user BOTH belongs to the group AND has access to the taxonomy term.&lt;/p&gt;
&lt;p&gt;This discussion with the TAC maintainer was very instrumental in pointing me in the right direction to achieve my goal:  &lt;a href=&quot;http://drupal.org/node/122712&quot; title=&quot;http://drupal.org/node/122712&quot;&gt;http://drupal.org/node/122712&lt;/a&gt;.  It also helped to make clear what I was dealing with:&lt;/p&gt;
&lt;p&gt;There are basically two major elements of access control: grants and permissions (this is my terminology).  Grants are things like &quot;grant_list&quot;, &quot;grant_view&quot;, &quot;grant_update&quot;, &quot;grant_delete&quot;, and are generally assigned through taxonomy.  Permissions are assigned to roles via the Drupal &quot;access control&quot; menu, and typically are things like &quot;access content&quot;, &quot;create document content&quot;, &quot;administer organic groups&quot;.&lt;/p&gt;
&lt;p&gt;There are three functions which are primarily used to determine what access users have to content: &quot;user_access&quot; (from the user.module) and &quot;node_access&quot; (from the node.module) and db_rewrite_sql (a module hook).  &quot;user_access&quot; deals primarily with permissions but &quot;node_access&quot; looks at permissions and grants.  db_rewrite_sql handles access with respect to node listings.&lt;/p&gt;
&lt;p&gt;Note: I know that there are those of you who are going to mention things like &quot;taxonomy_access_node_access_records($node)&quot; and &quot;hook_node_access_records($node)&quot; and &quot;hook_node_grants&quot;, etc... But, not matter how I look at it, the access control always seems to come down to &quot;user_access&quot;, &quot;node_access&quot; and &quot;db_rewrite_sql&quot;.  Bringing back a load of grants with no way to establish which have priority over which just doesn&#039;t seem to solve the problem.&lt;/p&gt;
&lt;p&gt;So, to recap, &quot;create&quot; access is usually determined by &quot;user_access&quot; function.  Node &quot;view&quot;, &quot;update&quot; and &quot;delete&quot; access by &quot;node_access&quot;.  And, node listing by &quot;db_rewrite_sql&quot;.  So, with respect to access control modification, these are the Drupal core functions I need to be able to change.&lt;/p&gt;
&lt;p&gt;I have already modified &quot;user_access&quot; with my OG User Roles module which allows granting of role permissions by group.  The next step was to modify &quot;node_access&quot; for viewing, updating and deleting content while respecting both OG and TAC grants.  Enter the &quot;Extensible Node Access/Authorisation Capability&quot; patch: &lt;a href=&quot;http://drupal.org/node/122173&quot; title=&quot;http://drupal.org/node/122173&quot;&gt;http://drupal.org/node/122173&lt;/a&gt;.  Read up on this because this is the core of my modifications.&lt;/p&gt;
&lt;p&gt;Using the &quot;Extensible Node Access/Authoriisation Capability&quot; patch, I was able to modify &quot;node_access&quot; to use a &quot;nodeapi&quot; hook that allowed me to write access control code that made sure that both OG and TAC grants were respected.&lt;/p&gt;
&lt;p&gt;If Drupal node listings utilized &quot;user_access&quot;, my problem would have been solved right here.  Unfortunately it does not.  For node listing access, I had to look to &quot;node_db_rewrite_sql&quot;.   This seemed crazy to me: After all the work I did with the access nodeapi hook, I still had to turn around and basically re-write node_db_rewrite_sql to do the same thing the access nodeapi was doing.  However, there was no way around this:  I needed to modify this function if I wanted my node listing to reflect both OG and TAC access controls.  Actually, Drupal states (in the &quot;node_access&quot; comments) that this seemingly inexplicable inconsistency is for performance reasons, but I think this is what makes it near impossible for contributors to write modules whose access controls respect each other and work in concert.  This is my opinion only.&lt;/p&gt;
&lt;p&gt;After modifying &quot;node_db_rewrite_sql&quot; for the new access control, I pretty much had everything working, with the exception of one problem: My vocabulary pulldown select lists within nodes didn&#039;t seem correct.  They were either missing vocabulary terms, or listing terms that should not be there. The taxonomy pulldown lists are created by &quot;taxonomy_form_alter&quot; (in the taxonomy.module), but if you have the taxonomy_access.module (TAC) installed, the access for this list is controlled by &quot;taxonomy_access_db_rewrite_sql&quot;.   So, I also needed to modify the &quot;taxonomy_access_db_rewrite_sql&quot; function in the Taxonomy Access Control module to respect OG and TAC together.&lt;/p&gt;
&lt;p&gt;After these modifications, I had a system that worked as I wanted: People can only see the content they have access to see.  I can have dozens of groups without having to define dozens of dozens of roles - each group can use the same roles because users role access can be defined by group (or site wide).  Furthermore, within the groups, I can define further restrictions to content using taxonomy.&lt;/p&gt;
&lt;p&gt;The only drawback to this system is that all content must have taxonomy and either belong to a OG group, or be explicitly marked as &quot;public&quot; to be seen.  Obviously, these modifications are for a site that is OG-centric and security minded.  If your site does not primarily consist of multiple groups which contain highly private content, then you should not waste your time on these modifications.&lt;/p&gt;
&lt;p&gt;Below is the list of modules I have installed, and the modifications to each that I have made. These are notes I made as I went through this process.  Essentially, the core modifications are limited to just three modules: node, og and taxonomy_access.  This is so you will know what to expect when you get to Step 3 - the patches:&lt;/p&gt;
&lt;p&gt;• Forums&lt;br /&gt;
(None of these modifications required for access control)&lt;br /&gt;
Modified: theme_forum_display($forums, $topics, $parents, $tid, $sortby, $forum_per_page) Added functionality to use content submission page CSP “addform” node to create forum topics.  Also put in group context on group forum “General discussion” page.  (These are customizations and not necessary for access control)&lt;/p&gt;
&lt;p&gt;• Node (updated).&lt;br /&gt;
Modified: Installed Extensible Node Access/Authorisation Capability patch: &lt;a href=&quot;http://drupal.org/node/122173&quot; title=&quot;http://drupal.org/node/122173&quot;&gt;http://drupal.org/node/122173&lt;/a&gt; in node_access() function.&lt;br /&gt;
Modified: db_node_rewrite_sql(),_node_access_join_sql(),_node_access_where_sql()&lt;/p&gt;
&lt;p&gt;• NodeFamily&lt;br /&gt;
Had to modify php.ini: allow_call_time_pass_reference = On&lt;/p&gt;
&lt;p&gt;• NodeProfile&lt;br /&gt;
Tutorial here: &lt;a href=&quot;http://drupal.org/node/130489&quot; title=&quot;http://drupal.org/node/130489&quot;&gt;http://drupal.org/node/130489&lt;/a&gt; and here &lt;a href=&quot;http://drupal.org/node/130756&quot; title=&quot;http://drupal.org/node/130756&quot;&gt;http://drupal.org/node/130756&lt;/a&gt;&lt;br /&gt;
To display node profiles as profile categories (in “my account”): &lt;a href=&quot;http://drupal.org/node/84541&quot; title=&quot;http://drupal.org/node/84541&quot;&gt;http://drupal.org/node/84541&lt;/a&gt;&lt;br /&gt;
Had to apply the patch as well as implement modification discussed in #31.&lt;br /&gt;
Permissions required to get one role to edit all uprofiles, and user to only be able to edit his own: authenticated role: ignore VUD|Create/List checked.  User Profile Admin role: allow VUD|Create/List checked.&lt;/p&gt;
&lt;p&gt;• OG&lt;br /&gt;
Ran into problems here: &lt;a href=&quot;http://drupal.org/node/122385&quot; title=&quot;http://drupal.org/node/122385&quot;&gt;http://drupal.org/node/122385&lt;/a&gt; and here: &lt;a href=&quot;http://drupal.org/node/116756&quot; title=&quot;http://drupal.org/node/116756&quot;&gt;http://drupal.org/node/116756&lt;/a&gt;&lt;br /&gt;
Using TAC, if user role matches node vocabulary, user can see node even if he is not in the node’s group.  That’s not good.&lt;/p&gt;
&lt;p&gt;Possible solution: Extensible Node Access : &lt;a href=&quot;http://drupal.org/node/122173&quot; title=&quot;http://drupal.org/node/122173&quot;&gt;http://drupal.org/node/122173&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Added:  Added og_node_access() function.&lt;br /&gt;
Modified:  og_nodeapi() and og_db_rewrite_sql() functions.&lt;/p&gt;
&lt;p&gt;(Below are my own customizations not necessarily related to access control)&lt;/p&gt;
&lt;p&gt;Modified: og_og_create_links($group) function to use addform (custom node creation content submission CSP page).&lt;br /&gt;
Modified: og_form_add_og_audience() function.  This changes puts a value in gids on node edits, which causes OG Config to respect the “Audience checkbox” on content edit.  That is, if “Audience checkbox” is unchecked, then NO checkbox is presented on content edit (before this modification, the checkboxes would not appear on content creation, but would appear on content edits).&lt;br /&gt;
Modified: og_search_form($group) to say “Search Group”.  Makes it a little less confusing.&lt;/p&gt;
&lt;p&gt;• OG Forum (required for og_user_roles)&lt;/p&gt;
&lt;p&gt;• OG User Roles (custom module updated from 4.7: SDL)&lt;br /&gt;
Using this format to create documents:&lt;/p&gt;
&lt;p&gt;http://clients.mysite.com/node/addform?type=document&amp;amp;gids[]=12&lt;br /&gt;
(where &#039;12&#039; = groupID)&lt;br /&gt;
Note: When users get “access denied” using the above url, it’s usually because the addform node (node/20) contains vocabulary that has been updated.  The node itself needs to be re-saved with “public” box clicked on OR all groups checked (so all group users can use it).&lt;/p&gt;
&lt;p&gt;Added these functions: expand_checkbox_columns($element), og_user_roles_elements() for multi column checkboxes as per: &lt;a href=&quot;http://drupal.org/node/41936&quot; title=&quot;http://drupal.org/node/41936&quot;&gt;http://drupal.org/node/41936&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;• Taxonomy&lt;br /&gt;
Note: “Categories” pulldown menu of vocabulary terms is created in taxonomy_form_alter.  The db_rewrite_sql is actually handled by taxonomy_access_db_rewrite_sql.&lt;/p&gt;
&lt;p&gt;• Taxonomy Access&lt;br /&gt;
(allow access according to roles – this will be used for documents)&lt;br /&gt;
Discovered that I need to set to “Deny” (not ignore) all permissions that are NOT allowed in a role.  That is, if the role can list Term 1 but not Term 2, then Term 2 must be specifically “Deny”-ed.  This is discussed in TAC Help: &lt;a href=&quot;http://clients.mysite.com/?q=admin/help/taxonomy_access&quot; title=&quot;http://clients.mysite.com/?q=admin/help/taxonomy_access&quot;&gt;http://clients.mysite.com/?q=admin/help/taxonomy_access&lt;/a&gt;&lt;br /&gt;
Also here: &lt;a href=&quot;http://drupal.org/node/68883&quot; title=&quot;http://drupal.org/node/68883&quot;&gt;http://drupal.org/node/68883&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Added: taxonomy_access_node_access() function.&lt;br /&gt;
Modified:  taxonomy_access_nodeapi() and taxnonomy_access_db_rewrite_sql() functions.&lt;br /&gt;
Modified: function taxonomy_access_node_grants($user, $op) (to use user_all_roles_array($user))&lt;/p&gt;
&lt;p&gt;• User (updated)&lt;br /&gt;
Modified: user_access&lt;br /&gt;
Added: user_all_roles($user), user_all_roles_array($user), getgid($nodeID, $uid), user_table_exists($table).&lt;/p&gt;
&lt;p&gt;• UserNode&lt;br /&gt;
Don’t forget to set permissions – Give Authenticated users node: create uprofile / edit own uprofile and usernode: edit own usernode.&lt;/p&gt;
&lt;p&gt;• Views&lt;br /&gt;
Modified: views_taxonomy.inc: Exposed “user_roles” and “term_access” tables to Views.&lt;br /&gt;
Modified: views_upload.inc: Created field to show file attachment descriptions instead of filenames.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3700#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/5085">og taxonomy_access_control db_rewrite_sql multinode access</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Tue, 17 Apr 2007 18:29:35 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">3700 at http://groups.drupal.org</guid>
</item>
<item>
 <title>nodeaccess module for 5.x</title>
 <link>http://groups.drupal.org/node/3620</link>
 <description>&lt;p&gt;I&#039;ve put some work into a 5.x nodeaccess module. It could be the superior from the current nodeaccess module, and perhaps also from the simple_access module. I&#039;m waiting for feedback from the authors..&lt;/p&gt;
&lt;p&gt;So my module provides extended role based access control per content type, but it can be configured to manage per user access control per node - it does this by integrating with the ACL module, as well as role based per node access control.&lt;/p&gt;
&lt;p&gt;Like simple_access it doesn&#039;t touch any permissions when it&#039;s activated. It also does some performance optimizations and tries to keep the UI simple.&lt;/p&gt;
&lt;p&gt;Read a more detailed description or download and test the module at &lt;a href=&quot;http://drupal.org/node/135693&quot; title=&quot;http://drupal.org/node/135693&quot;&gt;http://drupal.org/node/135693&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3620#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/102">access</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1067">access control</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1931">nodeaccess</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Thu, 12 Apr 2007 11:27:50 +0000</pubDate>
 <dc:creator>fago@drupal.org</dc:creator>
 <guid isPermaLink="false">3620 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to Make OG and TAC Work Together: Step 1</title>
 <link>http://groups.drupal.org/node/3591</link>
 <description>&lt;p&gt;As I stated in the Group Description, my goal is to figure out how to make various access control mechanisms work together.  I started this by trying to make OG and Taxonomy Access Control work together: &lt;a href=&quot;http://drupal.org/node/122712&quot; title=&quot;http://drupal.org/node/122712&quot;&gt;http://drupal.org/node/122712&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I now intend to share with you all exactly what I did.  There are a number of hacks involved that I&#039;m sure most of you won&#039;t want to get involved with, but the idea here is to demonstrate what I did, step by step, in order to solicit ideas from others on betters ways to accomplish the goal.&lt;/p&gt;
&lt;p&gt;Step 1:&lt;/p&gt;
&lt;p&gt;Install the OG User Roles 5.x module: &lt;a href=&quot;http://drupal.org/node/87679&quot; title=&quot;http://drupal.org/node/87679&quot;&gt;http://drupal.org/node/87679&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I created this module in order to define roles that are restricted by group.  This plays a major role in my access control as my site is group oriented -- that is, virtually all of it&#039;s content is organized by groups.&lt;/p&gt;
&lt;p&gt;The module can be downloaded here: &lt;a href=&quot;http://ftp.scbbs.com/pub/drupal/og_user_roles/&quot; title=&quot;http://ftp.scbbs.com/pub/drupal/og_user_roles/&quot;&gt;http://ftp.scbbs.com/pub/drupal/og_user_roles/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Buyer Beware: It is not an official Drupal contribution, but my own hack to accomplish the stated goal.  You may want to read the background on it (&lt;a href=&quot;http://drupal.org/node/87679&quot; title=&quot;http://drupal.org/node/87679&quot;&gt;http://drupal.org/node/87679&lt;/a&gt;) thoroughly before deciding to install.&lt;/p&gt;
&lt;p&gt;Anyway, this is step one to getting TAC and OG working together.  I&#039;ll continue with the next step shortly.&lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3591#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1913">og taxonomy_access_control</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Wed, 11 Apr 2007 05:11:28 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">3591 at http://groups.drupal.org</guid>
</item>
<item>
 <title>my goal in joining</title>
 <link>http://groups.drupal.org/node/3590</link>
 <description>&lt;p&gt;Hey Folks, you got another members. Here&#039;s is why I joined. I am new to drupal, and loving it. I have an install that is using OG, and again, I am loving it. I have added a wiki content type, and have started to create some wiki pages... and am loving it :)&lt;/p&gt;
&lt;p&gt;then one day I said, &quot;you know, i would really like my wiki pages only to be viewable to members, and not viewable to visitors.&quot; So I started looking into TAC, and the other node access modules. And what I found was what has already been described by the founder. My private groups were now accessible to people... argh.... i must be doing something wrong... after playing around with settings for days, and going to the IRC, I came to the conclusion that OG and TAC (and other node access modules) just don&#039;t work together.&lt;/p&gt;
&lt;p&gt;So I said... ok... this really can&#039;t be a issue that nobody else is ever gonna do... it must be common, and if it isn&#039;t common, it is gonna be, and more people use both OG and TAC... I I looked around, and found at least one other person that saw this same issue, and apparently had overcome it. I wanna hang out with him!&lt;/p&gt;
&lt;p&gt;So here I am. Hopefully, I will learn how to make my wiki pages only available to members, and not destory the permissioning of my private groups, and in the long run will learn how, and then will be happy to document for others how this is done.&lt;/p&gt;
&lt;p&gt;Feel free to ask me to do anything documentation, or testing wise... and... here I am.&lt;/p&gt;
&lt;p&gt;Cheers!  Ricco&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3590#comments</comments>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Wed, 11 Apr 2007 03:35:55 +0000</pubDate>
 <dc:creator>Ricco</dc:creator>
 <guid isPermaLink="false">3590 at http://groups.drupal.org</guid>
</item>
<item>
 <title>deny is possible</title>
 <link>http://groups.drupal.org/node/3393</link>
 <description>&lt;p&gt;perhaps some people don&#039;t realize that any module can propose a DENY for a given nid. just implement hook_node_access_records() and return a 0 0 0 grant with priority = -10 and you will effectively deny access. it doesn&#039;t matter that user is a member of a group or has access to a term.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3393#comments</comments>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Thu, 29 Mar 2007 03:35:31 +0000</pubDate>
 <dc:creator>moshe weitzman</dc:creator>
 <guid isPermaLink="false">3393 at http://groups.drupal.org</guid>
</item>
<item>
 <title>OG User Roles</title>
 <link>http://groups.drupal.org/node/3377</link>
 <description>&lt;p&gt;My first step is to figure out a way to open up user_access so other modules can add roles as they deem necessary.  Here is the request for assistance I posted to the Drupal Development list which describes what I&#039;m trying to do.  Any asisstance will be highly appreciated and help move this project forward:&lt;/p&gt;
&lt;p&gt;I am proposing a new project: OG User Roles. I have written to this list before and what I discovered was that I really needed to formulate a proposal for some sort of user_access hook that would include permissions granted from other modules to the final list of permissions for a user during a particular process.&lt;/p&gt;
&lt;p&gt;That, essentially, is the modification to user_access that I have created so that my module would work.  Briefly, my OG User Roles module is designed to assign role(s) to a user restricted to the OG group he is in.  Details on it are here: &lt;a href=&quot;http://drupal.org/node/87679&quot; title=&quot;http://drupal.org/node/87679&quot;&gt;http://drupal.org/node/87679&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What I have found is that my modified user_access (and therefore my proposed hook) works for node listing/view/updating/deleting, but NOT creating.  I am able to create nodes with  the modified user_access only if I call the node_add() function directly.  Not a real good solution.&lt;/p&gt;
&lt;p&gt;So, I&#039;m back here to ask:&lt;/p&gt;
&lt;p&gt;What else, besides user_access, does the default node/add mechanism call for permissions checks?&lt;/p&gt;
&lt;p&gt;Here&#039;s the scenario:  I&#039;ve given a user in a group a role which allows him to create a document.  When his group menu comes up, he sees a &quot;create&quot; link to the document he&#039;s been given access to create (that means my modified user_access is working).  However, when he clicks on the &quot;create document&quot; link, he gets &quot;Access Denied&quot; message.&lt;/p&gt;
&lt;p&gt;I wrote some debug code that writes out to a file the variable values from my modified user_access function when the user clicks on the &quot;create document&quot; link.  What I noted is that the corect permissions and group context are always returned.  What happens when it fails, i.e., user receives &quot;Access Denied&quot;, is that the function loses the arg (arg(0), arg(1), arg(2)) values.  They just disappear. This never happens on successful submissions.&lt;/p&gt;
&lt;p&gt;As you can probably see, I can&#039;t very well propose a hook if my simulated hook is not working correctly.  Can someone give me some clue as to where I need to look in the node/add process to figure out why I&#039;m losing the arg values and getting the denied error when user_access is bringing back the correct permissions?&lt;/p&gt;
&lt;p&gt;Thanks so much.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/access-control&quot;&gt;Access Control&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/3377#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2229">og user roles access control</category>
 <group domain="http://groups.drupal.org/access-control">Access Control</group>
 <pubDate>Wed, 28 Mar 2007 08:12:28 +0000</pubDate>
 <dc:creator>somebodysysop@drupal.org</dc:creator>
 <guid isPermaLink="false">3377 at http://groups.drupal.org</guid>
</item>
</channel>
</rss>
