@@ 41-67 (lines=27) @@ | ||
38 | * @param array $items |
|
39 | * @return integer number of successful grand |
|
40 | */ |
|
41 | public function assign($items) |
|
42 | { |
|
43 | $manager = Configs::authManager(); |
|
44 | $success = 0; |
|
45 | ||
46 | $current_user_id = Yii::$app->getUser()->getId(); |
|
47 | ||
48 | foreach ($items as $name) { |
|
49 | try { |
|
50 | $verify_result = $manager->checkAccess($current_user_id, $name); |
|
51 | ||
52 | Yii::debug("verify role|permission: $name, result: " |
|
53 | . ($verify_result ? "Y" : "N")); |
|
54 | ||
55 | if ($verify_result) { |
|
56 | $item = $manager->getRole($name); |
|
57 | $item = $item ?: $manager->getPermission($name); |
|
58 | $manager->assign($item, $this->id); |
|
59 | $success++; |
|
60 | } |
|
61 | } catch (\Exception $exc) { |
|
62 | Yii::error($exc->getMessage(), __METHOD__); |
|
63 | } |
|
64 | } |
|
65 | Helper::invalidate(); |
|
66 | return $success; |
|
67 | } |
|
68 | ||
69 | /** |
|
70 | * Revokes a roles from a user. |
|
@@ 74-98 (lines=25) @@ | ||
71 | * @param array $items |
|
72 | * @return integer number of successful revoke |
|
73 | */ |
|
74 | public function revoke($items) |
|
75 | { |
|
76 | $current_user_id = Yii::$app->getUser()->getId(); |
|
77 | $manager = Configs::authManager(); |
|
78 | $success = 0; |
|
79 | foreach ($items as $name) { |
|
80 | try { |
|
81 | $verify_result = $manager->checkAccess($current_user_id, $name); |
|
82 | ||
83 | Yii::debug("verify role|permission: $name, result: " |
|
84 | . ($verify_result ? "Y" : "N")); |
|
85 | ||
86 | if ($verify_result) { |
|
87 | $item = $manager->getRole($name); |
|
88 | $item = $item ?: $manager->getPermission($name); |
|
89 | $manager->revoke($item, $this->id); |
|
90 | $success++; |
|
91 | } |
|
92 | } catch (\Exception $exc) { |
|
93 | Yii::error($exc->getMessage(), __METHOD__); |
|
94 | } |
|
95 | } |
|
96 | Helper::invalidate(); |
|
97 | return $success; |
|
98 | } |
|
99 | ||
100 | /** |
|
101 | * Get all available and assigned roles/permission |