From 9beb3fb79f31210a4f9c075183fe54d2c8adaba0 Mon Sep 17 00:00:00 2001 From: Vladimir Siritsa Date: Sat, 11 Jul 2015 17:44:19 +0300 Subject: [PATCH] ability to subscribe events before add/remove auth item children --- components/AbstractItemEvent.php | 11 ++++++++++ .../m140608_173539_create_user_table.php | 0 ...08_073114_create_auth_item_group_table.php | 0 ...40809_072112_insert_superadmin_to_user.php | 0 ..._insert_common_permisison_to_auth_item.php | 0 .../m141023_141535_create_user_visit_log.php | 0 ...bind_to_ip_and_registration_ip_to_user.php | 0 ...121_194858_split_browser_and_os_column.php | 0 ..._add_email_and_email_confirmed_to_user.php | 0 ...7_001649_create_basic_user_permissions.php | 0 models/rbacDB/AbstractItem.php | 22 ++++++++++++++++++- 11 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 components/AbstractItemEvent.php mode change 100755 => 100644 migrations/m140608_173539_create_user_table.php mode change 100755 => 100644 migrations/m140808_073114_create_auth_item_group_table.php mode change 100755 => 100644 migrations/m140809_072112_insert_superadmin_to_user.php mode change 100755 => 100644 migrations/m140809_073114_insert_common_permisison_to_auth_item.php mode change 100755 => 100644 migrations/m141023_141535_create_user_visit_log.php mode change 100755 => 100644 migrations/m141116_115804_add_bind_to_ip_and_registration_ip_to_user.php mode change 100755 => 100644 migrations/m141121_194858_split_browser_and_os_column.php mode change 100755 => 100644 migrations/m141201_220516_add_email_and_email_confirmed_to_user.php mode change 100755 => 100644 migrations/m141207_001649_create_basic_user_permissions.php diff --git a/components/AbstractItemEvent.php b/components/AbstractItemEvent.php new file mode 100644 index 00000000..d5afecf1 --- /dev/null +++ b/components/AbstractItemEvent.php @@ -0,0 +1,11 @@ +$childName]; @@ -109,6 +116,7 @@ public static function removeChildren($parentName, $childrenNames) { $childrenNames = (array) $childrenNames; + static::beforeRemoveChildren($parentName, $childrenNames); foreach ($childrenNames as $childName) { Yii::$app->db->createCommand() @@ -247,4 +255,16 @@ public function afterDelete() AuthHelper::invalidatePermissions(); } + + public function beforeAddChildren($parentName, $childrenNames, $throwException = false) + { + $event = new AbstractItemEvent(compact('parentName', 'childrenNames', 'throwException')); + $event->trigger(get_called_class(), self::EVENT_BEFORE_ADD_CHILDREN, $event); + } + + public function beforeRemoveChildren($parentName, $childrenNames) + { + $event = new AbstractItemEvent(compact('parentName', 'childrenNames', 'throwException')); + $event->trigger(get_called_class(), self::EVENT_BEFORE_REMOVE_CHILDREN, $event); + } } \ No newline at end of file