我在security.yml中確保操作。如果用戶擁有憑證(A和B)或(A和C),我希望用戶有權訪問。看看sparse docs我試過這些組合:帶有複雜AND/OR憑證的sfGuardPlugin
myaction:
credentials: [[A, B], [A, C]]
credentials: [[[A, B], [A, C]]]
credentials: [A, [B, C]]
他們都沒有工作; [A, B]
的作品,但這只是一場戰鬥。有沒有人有這樣的工作?
我正在使用Propel 1.4.2和sfActionCredentialsGetterPlugin。感謝您的輸入。
編輯:
我做了我不使用sfActionCredentialsGetterPlugin,在模板只是直PHP測試:
<?php $sf_user->addCredentials('A', 'C'); ?>
<?php var_dump($sf_user->getCredentials()->getRawValue()) ?><br><br><br>
<?php $cred_a = 'A'; ?>
<?php $cred_b = 'B'; ?>
<?php $cred_c = 'C'; ?>
<?php $cred_3 = array('B', 'C'); ?>
<?php $has_cred1 = $sf_user->hasCredential(array($cred_a, $cred_3)) ? 'true' : 'false' ?>
<?php $has_cred2 = $sf_user->hasCredential($cred_a, $cred_b) ? 'true' : 'false' ?>
<?php echo 'has cred1? '.$has_cred1 ?><br><br>
<?php echo 'has cred2? '.$has_cred2 ?><br><br>
我沒有得到任何地方。
根據的是,我的第三次嘗試上述[A, [B, C]]
應該工作!
有人嗎?
編輯2:
我試圖簡單或組合從文檔複製:
// security.yml:
credentials: [[A, B]]
// template:
$sf_user->hasCredential(array('A', 'B'), false)
同樣,沒有骰子。我發佈了一個bugreport:http://trac.symfony-project.org/ticket/10036
我會發布我的臨時解決方法作爲答案。多謝你們。
這與我參考書中鏈接到的相同 - Fabien解釋簡單有A,有A和B,有A或B.不是我正在尋找的組合。 – Timm