Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1046463
D491.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Jun 28, 7:20 PM
Size
1 KB
Mime Type
text/x-diff
Expires
Sun, Jun 29, 7:20 PM (12 h, 31 m)
Engine
blob
Format
Raw Data
Handle
676512
Attached To
D491: INP-1880 - Fix notice on missing event permission mapping
D491.id.diff
View Options
Index: core/units/helpers/permissions_helper.php
===================================================================
--- core/units/helpers/permissions_helper.php
+++ core/units/helpers/permissions_helper.php
@@ -65,27 +65,33 @@
/**
* Returns permission names to check based on event name and item prefix (main item or subitem)
*
- * @param kEvent $event
- * @param Array $perm_mapping
- * @return Array
+ * @param kEvent $event Event.
+ * @param array $perm_mapping Perm mapping.
+ *
+ * @return array|true
+ * @throws Exception When event isn't mapped to any permission.
*/
- function getPermissionByEvent($event, $perm_mapping)
+ protected function getPermissionByEvent(kEvent $event, array $perm_mapping)
{
$top_prefix = $event->getEventParam('top_prefix');
-
$prefix_type = ($top_prefix == $event->Prefix) ? 'self' : 'subitem';
- $perm_mapping = getArrayValue($perm_mapping, $event->Name);
- if (!$perm_mapping[$prefix_type]) {
- throw new Exception('Permission mappings not defined for event <strong>' . $top_prefix . ' <- ' . $event->Prefix . ':' . $event->Name . '</strong>');
- }
+ if ( array_key_exists($event->Name, $perm_mapping)
+ && array_key_exists($prefix_type, $perm_mapping[$event->Name])
+ ) {
+ if ( $perm_mapping[$event->Name][$prefix_type] === true ) {
+ // Event is defined in mapping but is not checked by permissions.
+ return true;
+ }
- if ($perm_mapping[$prefix_type] === true) {
- // event is defined in mapping but is not checked by permissions
- return true;
+ return explode('|', $perm_mapping[$event->Name][$prefix_type]);
}
- return explode('|', $perm_mapping[$prefix_type]);
+ throw new Exception(sprintf(
+ 'Permission mappings not defined for event <strong>%s <- %s</strong>',
+ $top_prefix,
+ (string)$event
+ ));
}
/**
Event Timeline
Log In to Comment