PageRenderTime 58ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

/php/lib/survey_manager/component/rights_editor.class.php

https://bitbucket.org/chamilo/chamilo-app-survey/
PHP | 96 lines | 45 code | 26 blank | 25 comment | 5 complexity | c04d054c3344ef42c64bf30a0904d79a MD5 | raw file
  1. <?php
  2. namespace application\survey;
  3. use common\libraries\DelegateComponent;
  4. use common\libraries\Breadcrumb;
  5. use common\libraries\BreadcrumbTrail;
  6. use common\libraries\Translation;
  7. use common\libraries\Request;
  8. use common\extensions\rights_editor_manager\RightsEditorManager;
  9. class SurveyManagerRightsEditorComponent extends SurveyManager implements DelegateComponent
  10. {
  11. /**
  12. * Runs this component and displays its output.
  13. */
  14. function run()
  15. {
  16. //have to be fixed in reighteditormanager, if array is set as paramater, rightsmenu don't work anymore
  17. $publications = Request :: get(SurveyManager :: PARAM_PUBLICATION_ID);
  18. // if ($publications && ! is_array($publications))
  19. // {
  20. // $publications = array($publications);
  21. // }
  22. $this->set_parameter(SurveyManager :: PARAM_PUBLICATION_ID, $publications);
  23. if ($publications && ! is_array($publications))
  24. {
  25. $publications = array($publications);
  26. }
  27. $locations = array();
  28. foreach ($publications as $publication_id)
  29. {
  30. $publication = SurveyDataManager :: get_instance()->retrieve_survey_publication($publication_id);
  31. $user_ids = array();
  32. if ($this->get_user()->is_platform_admin() || $publication->get_publisher() == $this->get_user_id())
  33. {
  34. $locations[] = SurveyRights :: get_location_by_identifier_from_surveys_subtree($publication_id, SurveyRights :: TYPE_PUBLICATION);
  35. // $rights = SurveyRights :: get_available_rights_for_publications();
  36. // foreach ($rights as $right)
  37. // {
  38. // $publication_user_ids = SurveyRights :: get_allowed_users($right, $publication_id, SurveyRights :: TYPE_PUBLICATION);
  39. // $user_ids = array_merge($user_ids, $publication_user_ids);
  40. // }
  41. }
  42. }
  43. // $user_ids = array_unique($user_ids);
  44. $manager = new RightsEditorManager($this, $locations);
  45. // if (count($user_ids) > 0)
  46. // {
  47. // $manager->limit_users($user_ids);
  48. // }
  49. // else
  50. // {
  51. // $manager->limit_users(array(0));
  52. // }
  53. //
  54. // $manager->set_types(array(RightsEditorManager :: TYPE_USER));
  55. $manager->run();
  56. }
  57. function get_available_rights()
  58. {
  59. return SurveyRights :: get_available_rights_for_publications();
  60. }
  61. function add_additional_breadcrumbs(BreadcrumbTrail $breadcrumbtrail)
  62. {
  63. $breadcrumbtrail->add(new Breadcrumb($this->get_url(array(self :: PARAM_ACTION => self :: ACTION_BROWSE)), Translation :: get('BrowseSurveys')));
  64. }
  65. function get_additional_parameters()
  66. {
  67. return array(self :: PARAM_PUBLICATION_ID);
  68. }
  69. }
  70. ?>