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 }
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."); } }