Index: trunk/core/units/general/helpers/permissions_helper.php =================================================================== diff -u -N -r7391 -r8360 --- trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 7391) +++ trunk/core/units/general/helpers/permissions_helper.php (.../permissions_helper.php) (revision 8360) @@ -165,7 +165,7 @@ $item_prefix = $this->Application->getUnitOption($top_prefix, 'PermItemPrefix'); - if (substr($event->Name, 0, 9) == 'OnPreSave') { + if (substr($event->Name, 0, 9) == 'OnPreSave' || $event->Name == 'OnCreate' || $event->Name == 'OnUpdate') { if ($event_handler->isNewItemCreate($event)) { return $this->CheckPermission($item_prefix.'.ADD', 0, $category_id) || $this->CheckPermission($item_prefix.'.ADD.PENDING', 0, $category_id); @@ -464,6 +464,28 @@ return 0; } + + /** + * Allows to check ADD +/- PENDING permission combinations on item + * + * @param int $category_id primary category of item + * @param string $prefix prefix of item + * @return int {0 - no ADD permission, 1 - has ADD permission, 2 - has ADD.PENDING permission} + */ + function AddCheckPermission($category_id, $prefix) + { + $perm_prefix = $this->Application->getUnitOption($prefix, 'PermItemPrefix'); + + $live_modify = $this->CheckPermission($perm_prefix.'.ADD', ptCATEGORY, $category_id); + if ($live_modify) { + return 1; + } + else if ($this->CheckPermission($perm_prefix.'.ADD.PENDING', ptCATEGORY, $category_id)) { + return 2; + } + + return 0; + } } ?> \ No newline at end of file