2016-06-04 3 views
5

मैं yii2 भूमिका आधारित अभिगम नियंत्रण (आरबीएसी) प्रणाली का उपयोग कर रहा हूं। मैंने भूमिकाओं और अनुमतियों को परिभाषित किया, परिभाषित नियम, उपयोगकर्ताओं को भूमिका निभाई। सब कुछ ठीक काम करता है।उपयोगकर्ता भूमिका को कैसे बदलें/अपडेट करें? Yii2

लेकिन मैं उपयोगकर्ताओं को असाइन की गई भूमिका अपडेट करना चाहता हूं। उदाहरण के लिए:

Yii::$app->authManager->assign('admin', '11'); 

यहां मैंने उपयोगकर्ता आईडी 11 व्यवस्थापक किया था। अब मैं अपडेट करना और बदलना चाहता हूं। मैं इस उपयोगकर्ता प्रबंधक बनाना चाहता हूँ।

जब मैं कोशिश:

Yii::$app->authManager->assign('manager', '11'); 

इस उपयोगकर्ता व्यवस्थापक + प्रबंधक है। मैं सिर्फ प्रबंधक के लिए इस उपयोगकर्ता भूमिका व्यवस्थापक अद्यतन करना चाहता हूँ।

मैं यह कैसे कर सकता हूं?

उत्तर

3
पहले

आप revoke() या revokeAll() उपयोगकर्ता भूमिका:

वर्तमान भूमिका 'व्यवस्थापक' निकालें:

$manager = Yii::$app->authManager; 
$item = $manager->getRole('admin'); 
$item = $item ? : $manager->getPermission('admin'); 
$manager->revoke($item,'11'); 

और फिर उपयोगकर्ता के लिए नई भूमिका अद्यतन:

$authorRole = $manager->getRole('manager'); 
$manager->assign($authorRole, 11);