本文整理汇总了PHP中Permission::userHasFolderReadPermission方法的典型用法代码示例。如果您正苦于以下问题:PHP Permission::userHasFolderReadPermission方法的具体用法?PHP Permission::userHasFolderReadPermission怎么用?PHP Permission::userHasFolderReadPermission使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Permission
的用法示例。
在下文中一共展示了Permission::userHasFolderReadPermission方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getLinkingEntities
/**
* Fetch any linked folders
*
* @param Folder array $aFolderList
* @return unknown
*/
function getLinkingEntities($aFolderList)
{
$aSearchFolders = array();
if (!empty($aFolderList)) {
foreach ($aFolderList as $oFolderItem) {
if (Permission::userHasFolderReadPermission($oFolderItem)) {
// If it is a shortcut, we should do some more searching
if ($oFolderItem->isSymbolicLink()) {
$oFolderItem = $oFolderItem->getLinkedFolder();
$aSearchFolders[] = $oFolderItem->getID();
}
}
}
}
$aLinkingFolders = array();
$aSearchCompletedFolders = array();
$count = 0;
while (count($aSearchFolders) > 0) {
$count++;
$oFolder = Folder::get(array_pop($aSearchFolders));
$folderId = $oFolder->getId();
// Get all the folders within the current folder
$sWhereClause = "parent_folder_ids = '{$folderId}' OR\n parent_folder_ids LIKE '{$folderId},%' OR\n parent_folder_ids LIKE '%,{$folderId},%' OR\n parent_folder_ids LIKE '%,{$folderId}'";
$aFolderList = $this->oFolder->getList($sWhereClause);
foreach ($aFolderList as $oFolderItem) {
if ($oFolderItem->isSymbolicLink()) {
$oFolderItem = $oFolderItem->getLinkedFolder();
}
if (Permission::userHasFolderReadPermission($oFolderItem)) {
if ($aSearchCompletedFolders[$oFolderItem->getID()] != true) {
$aSearchFolders[] = $oFolderItem->getID();
$aSearchCompletedFolders[$oFolderItem->getID()] = true;
}
}
}
if (!isset($aLinkingFolders[$oFolder->getId()])) {
$aLinkingFolders[$oFolder->getId()] = $oFolder;
}
}
return $aLinkingFolders;
}
示例2: validateFolderPermissions
function validateFolderPermissions($iUserId, $iFolderId)
{
// check if user id is in session. If not, set it
if (!isset($_SESSION["userID"])) {
$_SESSION['userID'] = $iUserId;
}
// get folder object
$oFolder = Folder::get($iFolderId);
if (PEAR::isError($oFolder)) {
return false;
}
// check permissions for folder
if (Permission::userHasFolderReadPermission($oFolder)) {
return true;
} else {
return false;
}
}
示例3: getFolder
public static function getFolder($folderID, $userid)
{
$folder = Folder::get($folderID + 0);
if (PEAR::isError($folder)) {
return $folder;
}
if (!Permission::userHasFolderReadPermission($folder)) {
return new PEAR_Error(_kt('no permission to read folder'));
}
$sql = "SELECT id, name FROM folders WHERE parent_id={$folderID} ORDER BY name";
$rs = DBUtil::getResultArray($sql);
if (PEAR::isError($rs)) {
return $rs;
}
$folders = array();
foreach ($rs as $folder) {
$fobj = Folder::get($folder['id']);
if (Permission::userHasFolderReadPermission($fobj)) {
$folders[] = $folder;
}
}
return $folders;
}
示例4: perform_action
function perform_action($oEntity)
{
// checkout document
$sReason = $this->sReason;
if (is_a($oEntity, 'Document')) {
if ($oEntity->getImmutable()) {
return PEAR::raiseError($oEntity->getName() . ': ' . _kt('Document cannot be checked out as it is immutable'));
}
if ($oEntity->getIsCheckedOut()) {
$checkedOutUser = $oEntity->getCheckedOutUserID();
$sUserId = $_SESSION['userID'];
if ($checkedOutUser != $sUserId) {
$oCheckedOutUser = User::get($checkedOutUser);
return PEAR::raiseError($oEntity->getName() . ': ' . _kt('Document has already been checked out by ') . $oCheckedOutUser->getName());
}
} else {
$res = KTDocumentUtil::checkout($oEntity, $sReason, $this->oUser);
if (PEAR::isError($res)) {
return PEAR::raiseError($oEntity->getName() . ': ' . $res->getMessage());
}
}
if ($this->bDownload) {
if ($this->bNoisy) {
$oDocumentTransaction = new DocumentTransaction($oEntity, "Document part of bulk checkout", 'ktstandard.transactions.check_out', array());
$oDocumentTransaction->create();
}
$oKTTriggerRegistry = KTTriggerRegistry::getSingleton();
$aTriggers = $oKTTriggerRegistry->getTriggers('checkoutDownload', 'postValidate');
foreach ($aTriggers as $aTrigger) {
$sTrigger = $aTrigger[0];
$oTrigger = new $sTrigger();
$aInfo = array('document' => $oEntity);
$oTrigger->setInfo($aInfo);
$ret = $oTrigger->postValidate();
if (PEAR::isError($ret)) {
return $ret;
}
}
$this->oZip->addDocumentToZip($oEntity);
}
} else {
if (is_a($oEntity, 'Folder')) {
// get documents and subfolders
$aDocuments = array();
$oFolder = $oEntity;
if ($oFolder->isSymbolicLink()) {
$oFolder = $oFolder->getLinkedFolder();
}
$sFolderId = $oFolder->getId();
$sFolderDocs = $oFolder->getDocumentIDs($sFolderId);
// get documents directly in the folder
if (!empty($sFolderDocs)) {
$aDocuments = explode(',', $sFolderDocs);
}
// Get all the folders within the current folder
$sWhereClause = "parent_folder_ids = '{$sFolderId}' OR\n parent_folder_ids LIKE '{$sFolderId},%' OR\n parent_folder_ids LIKE '%,{$sFolderId},%' OR\n parent_folder_ids LIKE '%,{$sFolderId}'";
$aFolderList = $this->oFolder->getList($sWhereClause);
$aLinkingFolders = $this->getLinkingEntities($aFolderList);
$aFolderList = array_merge($aFolderList, $aLinkingFolders);
$aFolderObjects = array();
$aFolderObjects[$sFolderId] = $oFolder;
// Get the documents within the folder
if (!empty($aFolderList)) {
foreach ($aFolderList as $k => $oFolderItem) {
if (Permission::userHasFolderReadPermission($oFolderItem)) {
// Get documents for each folder
if ($oFolderItem->isSymbolicLink()) {
$oFolderItem = $oFolderItem->getLinkedFolder();
}
$sFolderItemId = $oFolderItem->getID();
$sFolderItemDocs = $oFolderItem->getDocumentIDs($sFolderItemId);
if (!empty($sFolderItemDocs)) {
$aFolderDocs = explode(',', $sFolderItemDocs);
$aDocuments = array_merge($aDocuments, $aFolderDocs);
}
// Add the folder to the zip file
if ($this->bDownload) {
$this->oZip->addFolderToZip($oFolderItem);
$aFolderObjects[$oFolderItem->getId()] = $oFolderItem;
}
}
}
}
// Checkout each document within the folder structure
if (!empty($aDocuments)) {
foreach ($aDocuments as $sDocId) {
$oDocument = Document::get($sDocId);
if (PEAR::isError($oDocument)) {
// add message, skip document and continue
$this->addErrorMessage($oDocument->getName() . ': ' . $oDocument->getMessage());
continue;
}
if ($oDocument->isSymbolicLink()) {
$oDocument->switchToLinkedCore();
}
if ($oDocument->getImmutable()) {
$this->addErrorMessage($oDocument->getName() . ': ' . _kt('Document cannot be checked out as it is immutable'));
continue;
}
// Check if the action is restricted by workflow on the document
//.........这里部分代码省略.........
示例5: get_permission_string
/**
* Get's a permission string for a folder eg: 'RW' or 'RWA'
*
* @author KnowledgeTree Team
* @access public
* @param Folder $folder
* @return string
*/
function get_permission_string($folder)
{
$perms = '';
if (Permission::userHasFolderReadPermission($folder)) {
$perms .= 'R';
}
if (Permission::userHasFolderWritePermission($folder)) {
$perms .= 'W';
}
if (Permission::userHasAddFolderPermission($folder)) {
$perms .= 'A';
}
// root folder cannot be renamed or deleted.
if ($folder->iId != 1) {
if (Permission::userHasRenameFolderPermission($folder)) {
$perms .= 'N';
}
if (Permission::userHasDeleteFolderPermission($folder)) {
$perms .= 'D';
}
}
return $perms;
}
示例6: get_permission_string
/**
* Get's a permission string for a folder eg: 'RW' or 'RWA'
*
* @author KnowledgeTree Team
* @access public
* @param Folder $folder
* @return string
*/
function get_permission_string($folder)
{
$perms = '';
if (Permission::userHasFolderReadPermission($folder)) {
$perms .= 'R';
}
if (Permission::userHasFolderWritePermission($folder)) {
$perms .= 'W';
}
if (Permission::userHasAddFolderPermission($folder)) {
$perms .= 'A';
}
return $perms;
}