function farm_access_sync_perms in farmOS 7
Synchronize all available farm permissions farm roles.
4 calls to farm_access_sync_perms()
- farm_access_enable in modules/farm/ farm_access/ farm_access.install 
- Synchronize all available farm role permissions.
- farm_access_flush_caches in modules/farm/ farm_access/ farm_access.module 
- Implements hook_flush_caches().
- farm_access_modules_enabled in modules/farm/ farm_access/ farm_access.module 
- Implements hook_modules_enabled().
- farm_access_permissions_form_submit in modules/farm/ farm_access/ farm_access.module 
- Submit function for the core permissions form.
File
- modules/farm/ farm_access/ farm_access.module, line 256 
- Farm Access module.
Code
function farm_access_sync_perms() {
  // Get a list of farm roles.
  $roles = farm_access_roles();
  // Iterate through the available roles.
  foreach ($roles as $name => $role) {
    // Compare current perms to available perms.
    $compare = farm_access_compare_perms($name);
    // Start with a blank array of changes.
    $changes = array();
    // Add perms.
    if (!empty($compare['add'])) {
      foreach ($compare['add'] as $perm) {
        $changes[$perm] = TRUE;
      }
    }
    // Remove perms.
    if (!empty($compare['remove'])) {
      foreach ($compare['remove'] as $perm) {
        $changes[$perm] = FALSE;
      }
    }
    // If there are changes to be made...
    if (!empty($changes)) {
      // Load the role.
      $role = user_role_load_by_name($role['name']);
      // If the role does not exist, bail.
      if (empty($role)) {
        return;
      }
      // Apply the changes.
      user_role_change_permissions($role->rid, $changes);
    }
  }
}