function manager() { if (!$this->manager instanceof SharingTableFlags) { $this->manager = SharingTableFlags::instance(); } return $this->manager; }
/** * This function will return paginated result. Result is an array where first element is * array of returned object and second populated pagination object that can be used for * obtaining and rendering pagination data using various helpers. * * Items and pagination array vars are indexed with 0 for items and 1 for pagination * because you can't use associative indexing with list() construct * * @access public * @param array $arguments Query argumens (@see find()) Limit and offset are ignored! * @param integer $items_per_page Number of items per page * @param integer $current_page Current page number * @return array */ function paginate($arguments = null, $items_per_page = 10, $current_page = 1) { if (isset($this) && instance_of($this, 'SharingTableFlags')) { return parent::paginate($arguments, $items_per_page, $current_page); } else { return SharingTableFlags::instance()->paginate($arguments, $items_per_page, $current_page); } // if }
DB::beginWork(); $contactMemberCacheController = new ContactMemberCacheController(); $contactMemberCacheController->afterMemberPermissionChanged($result); DB::commit(); } catch (Exception $e) { DB::rollback(); Logger::log("Error saving permissions (3): " . $e->getMessage() . "\n" . $e->getTraceAsString()); } // transaction for the hooks try { DB::beginWork(); Hook::fire('after_save_member_permissions', array('member' => array_var($result, 'member'), 'user_id' => $user_id), array_var($result, 'member')); DB::commit(); } catch (Exception $e) { DB::rollback(); Logger::log("Error saving permissions (4): " . $e->getMessage() . "\n" . $e->getTraceAsString()); } // delete processed flags if (count($flags_to_delete) > 0) { try { DB::beginWork(); // delete flags SharingTableFlags::delete("member_id={$member_id} AND permission_group_id IN (" . implode(',', $flags_to_delete) . ")"); DB::commit(); } catch (Exception $e) { DB::rollback(); Logger::log("Error saving permissions (5 - failed to delete processed flags [" . implode(',', $flags_to_delete) . "]): " . $e->getMessage() . "\n" . $e->getTraceAsString()); } } } @unlink($permissions_filename);
function check_sharing_table_flags() { _log("Checking for sharing table pending updates..."); $date = DateTimeValueLib::now(); $date->add('m', -10); $flags = SharingTableFlags::instance()->getFlags($date); if (is_array($flags) && count($flags) > 0) { _log(" " . count($flags) . " permission groups needs to be recalculated..."); foreach ($flags as $flag) { $ok = SharingTableFlags::instance()->healPermissionGroup($flag); $info = $flag->getObjectId() > 0 ? "object " . $flag->getObjectId() : "permission_group_id " . $flag->getPermissionGroupId() . ($flag->getMemberId() > 0 ? " and member_id=" . $flag->getMemberId() : ""); if ($ok) { _log(" Sharing table updated successfully for {$info}"); } else { _log(" Failed to update sharing table for {$info}"); } } _log(" Sharing table update finished."); } else { _log("No permission groups need to be updated."); } }