Have a question about CiviCRM? Get it answered quickly at the new CiviCRM Stack Exchange Q+A siteThis forum was archived on 25 November 2017. Learn more.How to get involved.What to do if you think you've found a bug.
pretty sure 1 is nowhat happens in the front end when u give a specific joomla role* access CiviCRM* view / edit all contacts* add contactlobo
I suspect we are quite close to having this. We just need a joomla / civi developer or two (besides brian s) to help out and figure out what else needs to be done to make this happensergei / nant: do u think u'll can help out? if so ping us on irc and we can help you get startedbottom line: people longing for it helps but does not help the code make any progress So any code / development help / resources u'll can provide would great and help civi-joomla integration make bigger strideslobo
there is a plugin that ships with civicrm that handles some of the navigation resetting. check to make sure it's enabled in the plugin manager. it's called: CiviCRM User Management
if it is enabled, and you have a found a workflow where the navigation should be rebuilt and is not, let's try to identify exactly what should be triggering it. we should be able to identify a joomla event or civicrm hook and then just extend that existing plugin.
re: permissioning traditionally backend pages for frontend access --here's the prob -- there are certain elements of the page (e.g. breadcrumbs) and links that are built which assume the backend environment. you may be able to expose some pages to the frontend, but you would need to really kick the tires and make sure form submissions, redirects, validation, and any links on the page, respect your frontend environment.i had a project where we exposed the activity create and edit forms to the frontend. it wasn't a problem providing access to that form (with the appropriate permissions), but I had to strip out some elements and tweak form handling to make it properly retain that frontend environment.from a code perspective, here's the issue --civi handles "frontend" pages differently than most joomla components. ALL of the civi code base resides in the administrator/components path. for pages that are intended for frontend access, there's a param in the CRM_Utils_System::url() method to indicate it is intended for frontend access. if flagged, civi strips the administrator path when building the url. kind of cludgy, but it does the trick. however -- it does mean we are explicitly determining what urls are intended for frontend access. so if you can find a way to overcome that in a more dynamic way, you might be able to achieve the desired results.that said --one could argue that Civi is actually in a better position (in terms of code architecture) to allow the flexibility you're looking for. most joomla components retain frontend pages in the root/components path and admin in root/administrator/components -- with no (easy) possibility of bridging the gap.
re: 2 --I agree, but we just need to proceed cautiously. for most orgs, the front/back great wall of separation is really important.
the onUserAfterSaveGroup() event is a little weak in the documentation area. but I implemented it with the understanding that it is fired whenever an ACL group is saved -- including when permissions are changed for the group.when those triggers are fired, they call CRM_Core_BAO_Navigation::resetNavigation( );that is definitely the right CiviCRM method to call, and should take care of the user's navigation cache. the function clears the navigation value in the setting table (for the user) and also removes any navigation rows from the main cache table. I suspect that in some scenario, onUserAfterSaveGroup() is not getting fired as we expect, and that's where the problem lies.I'm not opposed to clearing the nav cache on user login. we would use the onUserLogin($user, $options = array()) event to do that. i'll take a look.