/package/app/app/deployment/updates/scripts/03_roles_and_permissions_2/03_add_parameter_permission_items.php

https://github.com/richhl/kalturaCE · PHP · 75 lines · 53 code · 10 blank · 12 comment · 2 complexity · 7310538bf4cf4dd6cff6713a9687220f MD5 · raw file

  1. <?php
  2. /**
  3. * @package deployment
  4. * @subpackage dragonfly.roles_and_permissions
  5. *
  6. * Adds basic API object parameters that require permissions, to their associated permissions.
  7. *
  8. * Delete from permission_to_permission_item where type = 'kApiParameterPermissionItem' to re-deploy
  9. */
  10. //-- Bootstraping
  11. error_reporting(E_ALL);
  12. require_once(dirname(__FILE__).'/../../../bootstrap.php');
  13. require_once(ROOT_DIR . '/api_v3/bootstrap.php');
  14. PermissionPeer::clearInstancePool();
  15. PermissionItemPeer::clearInstancePool();
  16. //-- Script start
  17. // define all items
  18. $permissionItems = array(
  19. array('object' => 'KalturaBaseEntry', 'parameter' => 'startDate', 'action' => ApiParameterPermissionItemAction::INSERT, 'permission' => PermissionName::CONTENT_MANAGE_SCHEDULE),
  20. array('object' => 'KalturaBaseEntry', 'parameter' => 'startDate', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_SCHEDULE),
  21. array('object' => 'KalturaBaseEntry', 'parameter' => 'endDate', 'action' => ApiParameterPermissionItemAction::INSERT, 'permission' => PermissionName::CONTENT_MANAGE_SCHEDULE),
  22. array('object' => 'KalturaBaseEntry', 'parameter' => 'endDate', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_SCHEDULE),
  23. array('object' => 'KalturaBaseEntry', 'parameter' => 'accessControlId', 'action' => ApiParameterPermissionItemAction::INSERT, 'permission' => PermissionName::CONTENT_MANAGE_ACCESS_CONTROL),
  24. array('object' => 'KalturaBaseEntry', 'parameter' => 'accessControlId', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_ACCESS_CONTROL),
  25. array('object' => 'KalturaBaseEntry', 'parameter' => 'categories', 'action' => ApiParameterPermissionItemAction::INSERT, 'permission' => PermissionName::CONTENT_MANAGE_ASSIGN_CATEGORIES.','.PermissionName::USER_SESSION_PERMISSION),
  26. array('object' => 'KalturaBaseEntry', 'parameter' => 'categories', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_ASSIGN_CATEGORIES.','.PermissionName::USER_SESSION_PERMISSION),
  27. array('object' => 'KalturaBaseEntry', 'parameter' => 'categoriesIds', 'action' => ApiParameterPermissionItemAction::INSERT, 'permission' => PermissionName::CONTENT_MANAGE_ASSIGN_CATEGORIES.','.PermissionName::USER_SESSION_PERMISSION),
  28. array('object' => 'KalturaBaseEntry', 'parameter' => 'categoriesIds', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_ASSIGN_CATEGORIES.','.PermissionName::USER_SESSION_PERMISSION),
  29. array('object' => 'KalturaBaseEntry', 'parameter' => 'name', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_METADATA.','.PermissionName::USER_SESSION_PERMISSION.','.PermissionName::CONTENT_MODERATE_METADATA),
  30. array('object' => 'KalturaBaseEntry', 'parameter' => 'tags', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_METADATA.','.PermissionName::USER_SESSION_PERMISSION.','.PermissionName::CONTENT_MODERATE_METADATA),
  31. array('object' => 'KalturaBaseEntry', 'parameter' => 'description', 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_METADATA.','.PermissionName::USER_SESSION_PERMISSION.','.PermissionName::CONTENT_MODERATE_METADATA),
  32. array('object' => 'KalturaLiveStreamAdminEntry', 'parameter' => kApiParameterPermissionItem::ALL_VALUES_IDENTIFIER, 'action' => ApiParameterPermissionItemAction::READ, 'permission' => PermissionName::CONTENT_MANAGE_BASE),
  33. array('object' => 'KalturaLiveStreamAdminEntry', 'parameter' => kApiParameterPermissionItem::ALL_VALUES_IDENTIFIER, 'action' => ApiParameterPermissionItemAction::INSERT, 'permission' => PermissionName::CONTENT_MANAGE_BASE),
  34. array('object' => 'KalturaLiveStreamAdminEntry', 'parameter' => kApiParameterPermissionItem::ALL_VALUES_IDENTIFIER, 'action' => ApiParameterPermissionItemAction::UPDATE, 'permission' => PermissionName::CONTENT_MANAGE_BASE),
  35. array('object' => 'KalturaPartner', 'parameter' => 'secret', 'action' => ApiParameterPermissionItemAction::READ, 'permission' => PermissionName::INTEGRATION_BASE),
  36. array('object' => 'KalturaPartner', 'parameter' => 'adminSecret', 'action' => ApiParameterPermissionItemAction::READ, 'permission' => PermissionName::INTEGRATION_BASE),
  37. );
  38. // add all to required permissions
  39. foreach ($permissionItems as $cur)
  40. {
  41. $item = new kApiParameterPermissionItem();
  42. $item->setObject($cur['object']);
  43. $item->setParameter($cur['parameter']);
  44. $item->setAction($cur['action']);
  45. $item->setPartnerId(PartnerPeer::GLOBAL_PARTNER);
  46. $item->save();
  47. $permissions = $cur['permission'];
  48. $permissions = explode(',', $permissions);
  49. foreach ($permissions as $permissionName)
  50. {
  51. if (!$permissionName) {
  52. continue;
  53. }
  54. $permission = PermissionPeer::getByNameAndPartner(trim($permissionName), array(PartnerPeer::GLOBAL_PARTNER));
  55. if (!$permission)
  56. {
  57. $msg = '***** ERROR - Permission ['.$cur['permission'].'] not found for item ['.$cur['object'].'->'.$cur['parameter'].']';
  58. KalturaLog::alert($msg);
  59. echo $msg.PHP_EOL;
  60. continue;
  61. }
  62. $permission->addPermissionItem($item->getId());
  63. $permission->save();
  64. }
  65. }