
End-User
Organization using CiviCRM
1. To maintain a track of all the workshops conducted till date, who attended the program, who funded the program etc.,
2. To regularly keep in touch with all key stakeholders


Implementor, Developer
Unitarian Universalist Church of Lancaster
Contact management, email marketing/management and web site integration.

Implementator End User
Green Geeks
Civi is the best! All my non-profit and community outreach activities are well supported by the platform. I love to help others benefit.

Developer
bidon.ca
The CiviCRM community is a great place for support, to exchange ideas and to contribute back. Working with other developers or users has often allowed me to pool our resources together and lower our costs, while ensuring better quality since there were more people using it.


Consultant, Implementor, Trainer
Northbridge Digital
The community provides excellent forum support, new ideas and feedback on suggestions. The CiviCRM software suits many use cases and allows us to support a large number of diverse UK voluntary sector organisations.


Implementor, Developer, Integrator
Community Builders Australia
CiviCRM enables us and our clients to invest precious funds into configuring the CRM to meet organisational needs, and building innovative new features, rather than paying annual license fees. With access to the source code and tight integration with leading website content management systems, CiviCRM is extremely flexible.


Implementer, Developer
EE-atWork
CiviCRM helps the organizations we support to do what they have to do! At EE-atWork we assist our customers with implementing and using CiviCRM. This includes functional support, training, project management, data migration, integration using the API and customization. We are based in The Netherlands.
Our customers are mainly non-profits, varying from larger organizations continuously improving the way CiviCRM supports them to smaller organizations using the core functionality and perhaps contributing to a Make It Happen. We have been active in the CiviCRM community since 2009. CiviCRM is all about community, sharing and producing together. We truly believe that one and one can be three!

end-user, implementor
consulting/multi
CiviCRM provides a vital tool whereby nonprofits and other social projects can implement strong contact-relationship management capabilities without high monthly fees. It also provides the integration and customization capabilities necessary to make such software useful in the complex, lived reality of doing social engagement work. Plus it continues to build the open source toolset made available to the Commons and grow the common good.


Implementor, Administrator, end-user, Trainer
MC3
I've been working with CiviCRM since 2006 or thereabouts. The community is outstanding in providing support and sharing expertise, which combines with a strong product to enable me in turn to deliver better results for the organisations that I work with. I only hope that over time I will be able to repay the debt by supporting other newcomers to CiviCRM.


End-user, Administrator, Implementor
ZING
We feel there are too many obstacles facing not-for-profits (NFPs) considering commercial CRM offerings, including many of those that are charity oriented. From licensing models which restrict the fluid expansion of an organisation's user base (why should you be punished with higher costs for being successful?), to support from commercial companies being inherently tied to one supplier; a NFP would benefit from the option to 'shop around' for those most appropriate, e.g. based on: proximity and availability on-site, cost, experience, value added services... They also often lack the capacity for charity relevant workflows, necessitating either customisations, complicated and inefficient workarounds or an en-masse call for new functionality, as individual charities do not appear to carry the weight required to influence subtle NFP-only changes to market leading software, without large expense.
On the flip side, CiviCRM is completely free and open-source, carrying with it a friendly, hard-working and enthusiastic community of developers and implementers, constantly listening to the users' needs and sculpting future releases to the requirements of NFP organisations. This is exciting!


Implementor, Developer
Pogstone, Inc.
I have been involved in the CiviCRM community for over 5 years, and enjoy implementing and programming CiviCRM for a variety of non-profits. I have been amazed at the rapid pace of innovation delivered with each new release, and CiviCRM's flexibility in being able to accommodate a variety of requirements. I have learned a lot about CiviCRM by participating in CiviCon, online forums, and CiviCRM book sprint.


94110
Creative Arts Charter School, SFArtsED
Online donations, class registration, school tour registration, online enrollment applications, volunteer hour tracking, organization directories





Comments
4.3 Release Date
Does anyone know an estmated release date for version 4.3?
BTW, this is fabulous that this is being addressed. thank you so much!
4.3 release date?
I suspect we'll hit code freeze / alpha by end of novemeber or so. 4.3 will be out early next year
4.3 Release Date
Thanks Lobo!
Directory Listings
Does this mean 4.3 will now enable us to post CiviCRM directory listings to the Wordpress front-end? I believe when I asked about this capability before, the limitation cited was the lack of Access control (or something like that) in Wordpress?
Wordpress user permissions
Can you use the built in Wordpress capabilities to provide a more granular access control? You can add capabilities to a role, so for example when the plugin is installed call wp_civicrm_capability:
// setup capabilities when the plugin is first activated
register_activation_hook(__FILE__, 'wp_civicrm_capability');
instead of the way it is currently called by using an add_action('init', ...
This has the advantage that the capabilities are set ONE time at install and can then be subsequently modified.
Then in wp_civicrm_capability you can add a bunch of custom capabilities to the built in roles of admin, super admin like so:
//access civicrm page menu link to particular roles
$roles = array('super_admin', 'administrator', 'editor');
foreach ($roles as $role) {
$wp_roles->add_cap($role, 'civicrm_access_civicrm');
...
if ($role != 'editor') {
$wp_roles->add_cap($role, 'civicrm_administer_civicrm');
...
}
}
Then when you build out the access control page in CiviCRM you will expose just the civicrm_... capabilities against the current WordPress roles.
You could also check the permissions of the current user by modifying the check() function in wordpress.php something like this:
/**
* given a permission string, check for access requirements
*
* @param string $str the permission to check
*
* @return boolean true if yes, else false
* @static
* @access public
*/
static
function check($str) {
// for administrators give them all permissions
if (!function_exists('current_user_can')) {
return TRUE;
}
$cap = 'civicrm_'.strtolower(str_replace(' ', '_', $str));
if (current_user_can($cap)) {
return TRUE;
}
Inbuilt Wordpress Capabilities Used Currently
Hi Gavin
We already use the inbuilt wordpress capabilities to manage the access control. The below code is used to inject the minimum capabilities for all wordpress roles and also to create a new role 'Anonuymous user' with miminum capabilities to access online events/contribution/profile pages, when civicrm hook is activated.
register_activation_hook( __FILE__, 'civicrm_activate');
function civicrm_activate() {
// Assign minimum capabilities for all wordpress roles and create anonymous_user' role
civicrm_wp_set_capabilities();
}
/*
* Function to create anonymous_user' role, if 'anonymous_user' role is not in the wordpress installation
* and assign minimum capabilities for all wordpress roles
*/
function civicrm_wp_set_capabilities() {
global $wp_roles;
if (!isset($wp_roles)) {
$wp_roles = new WP_Roles();
}
//Minimum capabilities (Civicrm permissions) arrays
$min_capabilities = array(
'make_online_contributions' => 1,
'profile_create' => 1,
'profile_edit' => 1,
'profile_view' => 1,
'register_for_events' => 1,
'view_event_info' => 1,
);
// Assign the Minimum capabilities (Civicrm permissions) to all WP roles
foreach ( $wp_roles->role_names as $role => $name ) {
$roleObj = $wp_roles->get_role($role);
foreach ($min_capabilities as $capability_name => $capability_value) {
$roleObj->add_cap($capability_name);
}
}
//Add the 'anonymous_user' role with minimum capabilities.
if (!in_array('anonymous_user' , $wp_roles->roles)) {
add_role(
'anonymous_user',
'Anonymous User',
$min_capabilities
);
}
}
And the capabilities/permissions are checked for the roles in the check function as below
/**
* given a permission string, check for access requirements
*
* @param string $str the permission to check
*
* @return boolean true if yes, else false
* @static
* @access public
*/
public static function check($str) {
// for administrators give them all permissions
if (!function_exists('current_user_can')) {
return TRUE;
}
if (current_user_can('super admin') || current_user_can('administrator')) {
return TRUE;
}
// Make string lowercase and convert spaces into underscore
$str = strtolower($str);
$str = str_replace(" ","_",$str);
if ( is_user_logged_in() ) {
// Check whether the logged in user has the capabilitity
if (current_user_can($str)) {
return TRUE;
}
}
else {
//check the capabilities of Anonymous user)
$roleObj = new WP_Roles();
if ($roleObj->get_role('anonymous_user') != NULL && array_key_exists($str, $roleObj->get_role('anonymous_user')->capabilities)) {
return TRUE;
}
}
return FALSE;
}
Please review the functions and let me know if i am doing anything wrong.