/php/component/privileges_viewer.class.php
https://bitbucket.org/chamilo/chamilo-ext-repo-bitbucket-dev/ · PHP · 124 lines · 105 code · 19 blank · 0 comment · 6 complexity · 51e82bb0309fe84188642e1c05ecb41e MD5 · raw file
- <?php
- namespace common\extensions\external_repository_manager\implementation\bitbucket;
-
- use common\libraries\Request;
- use common\libraries\ToolbarItem;
- use common\libraries\Translation;
- use common\libraries\Theme;
- use common\libraries\SortableTableFromArray;
- use common\libraries\ActionBarRenderer;
- use common\libraries\Path;
-
- use common\extensions\external_repository_manager\ExternalRepositoryManager;
- use common\extensions\external_repository_manager\ExternalRepositoryComponent;
-
- require_once dirname(__FILE__) . '/../forms/privilege_granting_form.class.php';
-
- class BitbucketExternalRepositoryManagerPrivilegesViewerComponent extends BitbucketExternalRepositoryManager
- {
- private $repository;
-
- function run()
- {
- $id = Request :: get(ExternalRepositoryManager :: PARAM_EXTERNAL_REPOSITORY_ID);
- if ($id)
- {
- $this->repository = $this->retrieve_external_repository_object($id);
-
- $parameters = $this->get_parameters();
- $parameters[self :: PARAM_EXTERNAL_REPOSITORY_ID] = $id;
- $privilege_form = new PriviligeGrantingForm($this->get_url($parameters), $this);
-
- if ($privilege_form->validate())
- {
- $success = $privilege_form->grant_privilege();
- $message = $success ? Translation :: get('GrantPrivilegeCreated') : Translation :: get('GrantPrivilegeNotCreated');
-
- $this->redirect($message, ! $success, $parameters);
- }
-
- $this->display_header();
- echo ('<h3>' . $this->repository->get_title() . '</h3>');
- echo ($this->get_action_bar($id)->as_html());
- $privilege_form->display();
-
- $privileges = $this->repository->get_privileges();
- $privileges_groups = $this->repository->get_groups_privileges();
- if (count($privileges) > 0 || count($privileges_groups) > 0)
- {
- if (count($privileges) > 0)
- {
- $data = array();
- foreach ($privileges as $privilege)
- {
- $row = array();
- $row[] = $privilege->get_username();
- $row[] = $privilege->get_privilege();
- $row[] = $privilege->get_first_name();
- $row[] = $privilege->get_last_name();
- $actions = array();
- $toolbar_item = new ToolbarItem(Translation :: get('Delete'), Theme :: get_common_image_path() . 'action_delete.png', $this->get_external_repository_privilege_revoking_url($id, $privilege->get_username()), ToolbarItem :: DISPLAY_ICON);
- $actions[] = $toolbar_item->as_html();
- $row[] = implode(' ', $actions);
- $data[] = $row;
- }
-
- $table = new SortableTableFromArray($data);
- $table->set_header(0, Translation :: get('Username'));
- $table->set_header(1, Translation :: get('Privilege'));
- $table->set_header(2, Translation :: get('FirstName'));
- $table->set_header(3, Translation :: get('LastName'));
- $table->set_header(4, '');
-
- echo ($table->as_html());
- }
- if (count($privileges_groups) > 0)
- {
- $data = array();
- foreach ($privileges_groups as $privilege)
- {
- $row = array();
- $row[] = $privilege->get_name();
- $row[] = $privilege->get_privilege();
- $actions = array();
- $toolbar_item = new ToolbarItem(Translation :: get('Delete'), Theme :: get_common_image_path() . 'action_delete.png', $this->get_external_repository_group_privilege_revoking_url($id, $privilege->get_owner_username() . '/' . $privilege->get_group()), ToolbarItem :: DISPLAY_ICON);
- $actions[] = $toolbar_item->as_html();
- $row[] = implode(' ', $actions);
- $data[] = $row;
- }
-
- $table = new SortableTableFromArray($data);
- $table->set_header(0, Translation :: get('Group'));
- $table->set_header(1, Translation :: get('Privilege'));
- $table->set_header(2, '');
-
- echo ($table->as_html());
- }
- }
- else
- {
- $this->display_warning_message(Translation :: get('NoPrivileges'));
- }
- $this->display_footer();
- }
- else
- {
-
- }
- }
-
- function get_repository()
- {
- return $this->repository;
- }
-
- function get_action_bar($id)
- {
- $action_bar = new ActionBarRenderer(ActionBarRenderer :: TYPE_HORIZONTAL);
-
- $action_bar->add_common_action(new ToolbarItem(Translation :: get('RevokeAll'), Theme :: get_image_path() . 'action_revoke.png', $this->get_external_repository_privilege_revoking_url($id), ToolbarItem :: DISPLAY_ICON_AND_LABEL));
-
- return $action_bar;
- }
- }
- ?>