private function canBeReadByAnonymous(GitRepository $repository)
 {
     $ugroup_ids = $this->permissions_manager->getAuthorizedUgroupIds($repository->getId(), Git::PERM_READ);
     foreach ($ugroup_ids as $ugroup_id) {
         if ($ugroup_id == ProjectUGroup::ANONYMOUS) {
             return true;
         }
     }
     return false;
 }
 function testDuplicateOtherProjectShouldNotHaveUgroupMapping()
 {
     $source = 123;
     $target = 234;
     $permission_types = array('STUFF_READ');
     $dao = new MockPermissionsDao();
     $dao->expectOnce('duplicatePermissions', array($source, $target, $permission_types, PermissionsDao::DUPLICATE_OTHER_PROJECT, false));
     $permissionsManager = new PermissionsManager($dao);
     $permissionsManager->duplicateWithoutStatic($source, $target, $permission_types);
 }
 /**
  * Return the list of UGroupIds according to Git permissions that can be managed by Gerrit
  *
  * @param Integer $repository_id
  * @param String  $permission_type
  *
  * @return array
  */
 public function getUgroups($repository_id, $permission_type)
 {
     if ($permission_type == Git::SPECIAL_PERM_ADMIN) {
         return array(ProjectUGroup::PROJECT_ADMIN);
     }
     $ugroup_ids = $this->permissions_manager->getAuthorizedUgroups($repository_id, $permission_type, false);
     $result = array();
     foreach ($ugroup_ids as $row) {
         $result[] = $row['ugroup_id'];
     }
     return $result;
 }
 public function updateAccess($new_value, $old_value)
 {
     if ($new_value === $old_value) {
         return;
     }
     $property_name = ForgeAccess::CONFIG;
     $this->config_dao->save($property_name, $new_value);
     $this->event_manager->processEvent(Event::SITE_ACCESS_CHANGE, array('new_value' => $new_value, 'old_value' => $old_value));
     if ($old_value === ForgeAccess::RESTRICTED || $new_value === ForgeAccess::RESTRICTED) {
         $this->project_manager->disableAllowRestrictedForAll();
         $this->permission_manager->disableRestrictedAccess();
     }
 }
Beispiel #5
0
 public function page_permissions()
 {
     if (isset($_POST['save-permissions'])) {
         PermissionObject::removeAllPermissions();
         if (isset($_POST['permission'])) {
             foreach ($_POST['permission'] as $perm => $groups) {
                 foreach ($groups as $grp => $d) {
                     PermissionObject::addPermission($grp, $perm);
                 }
             }
         }
         Notification::statusNotify(t("configuration enregistrée"), Notification::STATUS_SUCCESS);
     }
     $defined_permissions = PermissionObject::loadAllPermissions();
     $df = array();
     foreach ($defined_permissions as $p) {
         if (!isset($df[$p->pid])) {
             $df[$p->pid] = array();
         }
         $df[$p->pid][$p->gid] = 1;
     }
     $p = new PermissionsManager();
     $permissions = $p->scanForPermission();
     $groups = GroupObject::loadAll();
     $table = array();
     $hcol = array("");
     $hrow = array();
     foreach ($permissions as $u => $t) {
         $hrow[] = $t;
         $row = array();
         foreach ($groups as $gd => $g) {
             if ($u == 0) {
                 $hcol[] = $g->label;
             }
             $pm = new PermissionObject();
             $pm->loadByName($t);
             $tlabel = "permission[" . $g->gid . "][" . $pm->pid . "]";
             if (isset($df[$pm->pid][$g->gid])) {
                 $row[] = "<input type='checkbox' name='{$tlabel}' id='{$tlabel}' checked='checked'/>";
             } else {
                 $row[] = "<input type='checkbox'  name='{$tlabel}' id='{$tlabel}' />";
             }
         }
         $table[] = $row;
     }
     $theme = new Theme();
     $theme->set_title(t("Permissions déclarées"));
     $table = Themed::tabling($table, $hcol, $hrow);
     $theme->add_to_body("<form method='POST' action=''>{$table} <input type='submit' name='save-permissions' value='" . t("Enregistrer") . "'/></form>");
     $theme->process_theme(Theme::STRUCT_ADMIN);
 }
 private function getPermissionsManager()
 {
     if (empty($this->permission_manager)) {
         $this->permission_manager = PermissionsManager::instance();
     }
     return $this->permission_manager;
 }
 private function importPermission(Project $project, SimpleXMLElement $permission_xmlnode, $permission_type, GitRepository $repository)
 {
     $ugroup_ids = $this->getUgroupIdsForPermissions($project, $permission_xmlnode);
     if (!empty($ugroup_ids)) {
         $this->permission_manager->savePermissions($project, $repository->getId(), $permission_type, $ugroup_ids);
     }
 }
 public function isUgroupUsed($ugroup_id, $project_id)
 {
     $project = $this->project_manager->getProject($project_id);
     if (!$project->usesWiki()) {
         return false;
     }
     return $this->permission_manager->isUgroupUsedByWikiService($ugroup_id, $project_id);
 }
 public function tearDown()
 {
     parent::tearDown();
     $this->item_id++;
     PermissionsManager::clearInstance();
     ProjectManager::clearInstance();
     Docman_ItemFactory::clearInstance($this->project->getID());
 }
 public function isUserAllowedToSeeTransition(PFUser $user, $project_id)
 {
     $transition_ugroups = $this->permission_manager->getAuthorizedUgroups($this->transition->getId(), self::PERMISSION_TRANSITION);
     foreach ($transition_ugroups as $ugroup) {
         if ($user->isMemberOfUGroup($ugroup['ugroup_id'], $project_id)) {
             return true;
         }
     }
     return false;
 }
 private function importPermission(Project $project, SimpleXMLElement $permission_xmlnode, $permission_type, GitRepository $repository)
 {
     $ugroup_ids = array();
     foreach ($permission_xmlnode->children() as $group) {
         if ($group->getName() === self::UGROUPID) {
             array_push($ugroup_ids, (string) $group);
         }
     }
     if (!empty($ugroup_ids)) {
         $this->permission_manager->savePermissions($project, $repository->getId(), $permission_type, $ugroup_ids);
     }
 }
 private function getUgroupIdsPermissions(Docman_Item $item, UGroupLiteralizer $literalizer, Project $project)
 {
     $ugroups_ids = $literalizer->getUgroupIds($project, $item->getId(), self::PERMISSIONS_TYPE);
     if (empty($ugroups_ids)) {
         $ugroups_ids = PermissionsManager::instance()->getAuthorizedUgroupIds($project->getID(), 'PLUGIN_DOCMAN_ADMIN');
     }
     $parent_item = $this->getParentItem($item, $project);
     if ($parent_item) {
         $parent_ugroups_ids = $this->getUgroupIdsPermissions($parent_item, $literalizer, $project);
         $ugroups_ids = $this->mergeUgroupIds($parent_ugroups_ids, $ugroups_ids);
     }
     return array_values($ugroups_ids);
 }
 private function getOptions(Project $project, $permission)
 {
     $user_groups = $this->user_group_factory->getAllForProject($project);
     $options = array();
     $selected_values = $this->permissions_manager->getAuthorizedUGroupIdsForProject($project, $this->repository->getId(), $permission);
     foreach ($user_groups as $ugroup) {
         if ($ugroup->getId() == ProjectUGroup::ANONYMOUS && $permission !== Git::PERM_READ) {
             continue;
         }
         $selected = in_array($ugroup->getId(), $selected_values) ? 'selected="selected"' : '';
         $options[] = array('value' => $ugroup->getId(), 'label' => $ugroup->getName(), 'selected' => $selected);
     }
     return $options;
 }
Beispiel #14
0
 public function tearDown()
 {
     $GLOBALS['Language'] = null;
     PermissionsManager::clearInstance();
     UserManager::clearInstance();
     if (isset($this->old_ftp_incoming_dir)) {
         $GLOBALS['ftp_incoming_dir'] = $this->old_ftp_incoming_dir;
     } else {
         unset($GLOBALS['ftp_incoming_dir']);
     }
     if (isset($this->old_ftp_frs_dir_prefix)) {
         $GLOBALS['ftp_frs_dir_prefix'] = $this->old_ftp_frs_dir_prefix;
     } else {
         unset($GLOBALS['ftp_frs_dir_prefix']);
     }
 }
Beispiel #15
0
 /**
  * Saves a Tracker object into the DataBase
  *
  * @param Tracker $tracker object to save
  * @return int id of the newly created tracker
  */
 public function saveObject($tracker)
 {
     // create tracker
     $tracker_id = $this->getDao()->create($tracker->group_id, $tracker->name, $tracker->description, $tracker->item_name, $tracker->allow_copy, $tracker->submit_instructions, $tracker->browse_instructions, '', '', $tracker->instantiate_for_new_projects, $tracker->stop_notification);
     if ($tracker_id) {
         $trackerDB = $this->getTrackerById($tracker_id);
         //create cannedResponses
         $response_factory = $tracker->getCannedResponseFactory();
         foreach ($tracker->cannedResponses as $response) {
             $response_factory->saveObject($tracker_id, $response);
         }
         //create formElements
         foreach ($tracker->formElements as $formElement) {
             // these fields have no parent
             Tracker_FormElementFactory::instance()->saveObject($trackerDB, $formElement, 0);
         }
         //create report
         foreach ($tracker->reports as $report) {
             Tracker_ReportFactory::instance()->saveObject($tracker_id, $report);
         }
         //create semantics
         if (isset($tracker->semantics)) {
             foreach ($tracker->semantics as $semantic) {
                 Tracker_SemanticFactory::instance()->saveObject($semantic, $trackerDB);
             }
         }
         //create workflow
         if (isset($tracker->workflow)) {
             WorkflowFactory::instance()->saveObject($tracker->workflow, $trackerDB);
         }
         //tracker permissions
         if ($tracker->permissionsAreCached()) {
             $pm = PermissionsManager::instance();
             foreach ($tracker->getPermissions() as $ugroup => $permissions) {
                 foreach ($permissions as $permission) {
                     $pm->addPermission($permission, $tracker_id, $ugroup);
                 }
             }
         } else {
             $this->saveTrackerDefaultPermission($tracker_id);
         }
         $this->postCreateActions($trackerDB);
     }
     return $tracker_id;
 }
<?php

include_once '../../config/symbini.php';
include_once $serverRoot . '/classes/PermissionsManager.php';
header("Content-Type: text/html; charset=" . $charset);
$action = array_key_exists("action", $_REQUEST) ? $_REQUEST["action"] : "";
$collId = array_key_exists("collid", $_REQUEST) ? $_REQUEST["collid"] : 0;
$permManager = new PermissionsManager();
$isEditor = 0;
if ($SYMB_UID) {
    if ($IS_ADMIN || array_key_exists("CollAdmin", $USER_RIGHTS) && in_array($collId, $USER_RIGHTS["CollAdmin"])) {
        $isEditor = 1;
    }
}
if ($isEditor) {
    if (array_key_exists('deladmin', $_GET)) {
        $permManager->deletePermission($_GET['deladmin'], 'CollAdmin', $collId);
    } elseif (array_key_exists('deleditor', $_GET)) {
        $permManager->deletePermission($_GET['deleditor'], 'CollEditor', $collId);
    } elseif (array_key_exists('delrare', $_GET)) {
        $permManager->deletePermission($_GET['delrare'], 'RareSppReader', $collId);
    } elseif (array_key_exists('delidenteditor', $_GET)) {
        $permManager->deletePermission($_GET['delidenteditor'], 'CollTaxon', $collId, $_GET['utid']);
        if (is_numeric($_GET['utid'])) {
            $permManager->deletePermission($_GET['delidenteditor'], 'CollTaxon', $collId, 'all');
        }
    } elseif ($action == 'Add Permissions for User') {
        $rightType = $_POST['righttype'];
        if ($rightType == 'admin') {
            $permManager->addPermission($_POST['uid'], "CollAdmin", $collId);
        } elseif ($rightType == 'editor') {
Beispiel #17
0
<?php

include_once '../config/symbini.php';
include_once $serverRoot . '/classes/PermissionsManager.php';
include_once $serverRoot . '/classes/ProfileManager.php';
header("Content-Type: text/html; charset=" . $charset);
$loginAs = array_key_exists("loginas", $_REQUEST) ? trim($_REQUEST["loginas"]) : "";
$searchTerm = array_key_exists("searchterm", $_REQUEST) ? trim($_REQUEST["searchterm"]) : "";
$userId = array_key_exists("userid", $_REQUEST) ? $_REQUEST["userid"] : "";
$delRole = array_key_exists("delrole", $_REQUEST) ? $_REQUEST["delrole"] : "";
$tablePk = array_key_exists("tablepk", $_REQUEST) ? $_REQUEST["tablepk"] : "";
$userManager = new PermissionsManager();
if ($isAdmin) {
    if ($loginAs) {
        $pHandler = new ProfileManager();
        $pHandler->setUserName($loginAs);
        $pHandler->authenticate();
        header("Location: ../index.php");
    } elseif ($delRole) {
        $userManager->deletePermission($userId, $delRole, $tablePk);
    } elseif (array_key_exists("apsubmit", $_POST)) {
        foreach ($_POST["p"] as $pname) {
            $role = $pname;
            $tablePk = '';
            if (strpos($pname, '-')) {
                $tok = explode('-', $pname);
                $role = $tok[0];
                $tablePk = $tok[1];
            }
            $userManager->addPermission($userId, $role, $tablePk);
        }
 private function getPermissionsManager()
 {
     return new Tuleap\ProFTPd\Admin\PermissionsManager(PermissionsManager::instance(), new UGroupManager());
 }
Beispiel #19
0
function frs_display_release_form($is_update, &$release, $group_id, $title, $url)
{
    global $frspf, $frsrf, $frsff;
    $hp =& Codendi_HTMLPurifier::instance();
    if (is_array($release)) {
        if (isset($release['date'])) {
            $release_date = $release['date'];
        }
        $release = new FRSRelease($release);
    }
    if ($is_update) {
        $files = $release->getFiles();
        if (count($files) > 0) {
            for ($i = 0; $i < count($files); $i++) {
                if (!$frsff->compareMd5Checksums($files[$i]->getComputedMd5(), $files[$i]->getReferenceMd5())) {
                    $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('file_admin_editreleases', 'md5_fail', array(basename($files[$i]->getFileName()), $files[$i]->getComputedMd5())));
                }
            }
        }
    }
    file_utils_admin_header(array('title' => $GLOBALS['Language']->getText('file_admin_editreleases', 'release_new_file_version'), 'help' => 'frs.html#delivery-manager-administration'));
    echo '<H3>' . $hp->purify($title, CODENDI_PURIFIER_CONVERT_HTML) . '</H3>';
    $sql = "SELECT * FROM frs_processor WHERE (group_id = 100 OR group_id = " . db_ei($group_id) . ") ORDER BY rank";
    $result = db_query($sql);
    $processor_id = util_result_column_to_array($result, 0);
    $processor_name = util_result_column_to_array($result, 1);
    foreach ($processor_name as $key => $value) {
        $processor_name[$key] = $hp->purify($value, CODENDI_PURIFIER_JS_QUOTE);
    }
    $sql = "SELECT * FROM frs_filetype ORDER BY type_id";
    $result1 = db_query($sql);
    $type_id = util_result_column_to_array($result1, 0);
    $type_name = util_result_column_to_array($result1, 1);
    $url_news = get_server_url() . "/file/showfiles.php?group_id=" . $group_id;
    echo '<script type="text/javascript">';
    echo "var processor_id = ['" . implode("', '", $processor_id) . "'];";
    echo "var processor_name = ['" . implode("', '", $processor_name) . "'];";
    echo "var type_id = ['" . implode("', '", $type_id) . "'];";
    echo "var type_name = ['" . implode("', '", $type_name) . "'];";
    echo "var group_id = " . $group_id . ";";
    echo "var relname = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'relname') . "';";
    echo "var choose = '" . $GLOBALS['Language']->getText('file_file_utils', 'must_choose_one') . "';";
    echo "var browse = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'browse') . "';";
    echo "var local_file = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'local_file') . "';";
    echo "var scp_ftp_files = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'scp_ftp_files') . "';";
    echo "var upload_text = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'upload') . "';";
    echo "var add_file_text = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'add_file') . "';";
    echo "var add_change_log_text = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'add_change_log') . "';";
    echo "var view_change_text = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'view_change') . "';";
    echo "var refresh_files_list = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'refresh_file_list') . "';";
    echo "var release_mode = '" . ($is_update ? 'edition' : 'creation') . "';";
    if ($is_update) {
        $pm = PermissionsManager::instance();
        $dar = $pm->getAuthorizedUgroups($release->getReleaseID(), FRSRelease::PERM_READ);
        $ugroups_name = array();
        foreach ($dar as $row) {
            $ugroups_name[] = util_translate_name_ugroup($row['name']);
        }
        echo "var ugroups_name = '" . implode(", ", $ugroups_name) . "';";
        echo "var default_permissions_text = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'release_perm') . "';";
    } else {
        echo "var default_permissions_text = '" . $GLOBALS['Language']->getText('file_admin_editreleases', 'default_permissions') . "';";
    }
    echo '</script>';
    //set variables for news template
    $relname = $GLOBALS['Language']->getText('file_admin_editreleases', 'relname');
    if (!$is_update) {
        echo '<p>' . $GLOBALS['Language']->getText('file_admin_editreleases', 'contain_multiple_files') . '</p>';
    }
    ?>
    
    <FORM id="frs_form" NAME="frsRelease" ENCTYPE="multipart/form-data" METHOD="POST" ACTION="<?php 
    echo $url;
    ?>
" CLASS="form-inline">
        <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="<? echo $GLOBALS['sys_max_size_upload']; ?>">
        <input type="hidden" name="postReceived" value="" />
        <?php 
    if ($release->getReleaseId()) {
        echo '<input type="hidden" id="release_id" name="release[release_id]" value="' . $release->getReleaseId() . '" />';
    }
    ?>
        <TABLE BORDER="0" width="100%">
        <TR><TD><FIELDSET><LEGEND><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'fieldset_properties');
    ?>
</LEGEND>
        <TABLE BORDER="0" CELLPADDING="2" CELLSPACING="2">
            <TR>
                <TD>
                    <B><?php 
    echo $GLOBALS['Language']->getText('file_admin_editpackages', 'p_name');
    ?>
:</B>
                </TD>
                <TD>
    <?php 
    $res =& $frspf->getFRSPackagesFromDb($group_id);
    $rows = count($res);
    if (!$res || $rows < 1) {
        echo '<p class="highlight">' . $GLOBALS['Language']->getText('file_admin_qrs', 'no_p_available') . '</p>';
    } else {
        echo '<SELECT NAME="release[package_id]" id="package_id">';
        for ($i = 0; $i < $rows; $i++) {
            echo '<OPTION VALUE="' . $res[$i]->getPackageID() . '"';
            if ($res[$i]->getPackageID() == $release->getPackageId()) {
                echo ' selected';
            }
            echo '>' . $hp->purify(util_unconvert_htmlspecialchars($res[$i]->getName()), CODENDI_PURIFIER_CONVERT_HTML) . '</OPTION>';
        }
        echo '</SELECT>';
    }
    ?>
                </TD><td></td>
                <TD>
                    <B><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'release_name');
    ?>
: <span class="highlight"><strong>*</strong></span></B>
                </TD>
                <TD>
                    <INPUT TYPE="TEXT" id="release_name" name="release[name]" onBlur="update_news()" value="<?php 
    echo $hp->purify($release->getName());
    ?>
">
                </TD>
            </TR>
            <TR>
                <TD>
                    <B><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'release_date');
    ?>
:</B>
                </TD>
                <TD>
                <?php 
    echo $GLOBALS['HTML']->getDatePicker('release_date', 'release[date]', isset($release_date) ? $hp->purify($release_date) : format_date('Y-m-d', $release->getReleaseDate()));
    ?>
                </TD>
                <td></td>
                <TD>
                    <B><?php 
    echo $GLOBALS['Language']->getText('global', 'status');
    ?>
:</B>
                </TD>
                <TD>
                    <?php 
    print frs_show_status_popup($name = 'release[status_id]', $release->getStatusID()) . "<br>";
    ?>
                </TD>
            </TR></TABLE></FIELDSET>
        </TD></TR>
        <TR><TD><FIELDSET><LEGEND><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'fieldset_uploaded_files');
    ?>
</LEGEND>
    <?php 
    $titles = array();
    $titles[] = $is_update ? $GLOBALS['Language']->getText('file_admin_editreleases', 'delete_col') : '';
    $titles[] = $GLOBALS['Language']->getText('file_admin_editreleases', 'filename');
    $titles[] = $GLOBALS['Language']->getText('file_admin_editreleases', 'processor');
    $titles[] = $GLOBALS['Language']->getText('file_admin_editreleases', 'file_type');
    $titles[] = $GLOBALS['Language']->getText('file_admin_editreleases', 'md5sum');
    $titles[] = $GLOBALS['Language']->getText('file_admin_editreleases', 'comment');
    $titles[] = $GLOBALS['Language']->getText('file_admin_editreleases', 'user');
    if ($is_update) {
        $titles[] = $GLOBALS['Language']->getText('file_admin_editreleasepermissions', 'release');
        $titles[] = $GLOBALS['Language']->getText('file_admin_editreleases', 'release_date');
    }
    echo html_build_list_table_top($titles, false, false, false, 'files');
    ?>
            <tbody id="files_body">
    
    <?php 
    $files =& $release->getFiles();
    for ($i = 0; $i < count($files); $i++) {
        $fname = $files[$i]->getFileName();
        $list = split('/', $fname);
        $fname = $list[sizeof($list) - 1];
        $user_id = $files[$i]->getUserID();
        $userName = isset($user_id) ? UserManager::instance()->getUserById($files[$i]->getUserID())->getRealName() : "";
        echo '<TR>';
        echo '<TD><INPUT TYPE="CHECKBOX" NAME="release_files_to_delete[]" VALUE="' . $files[$i]->getFileID() . '"</TD>';
        echo '<TD>' . $hp->purify($fname, CODENDI_PURIFIER_CONVERT_HTML) . '<INPUT TYPE="HIDDEN" NAME="release_files[]" VALUE="' . $files[$i]->getFileID() . '"></TD>';
        echo '<TD>' . frs_show_processor_popup($group_id, $name = 'release_file_processor[]', $files[$i]->getProcessorID()) . '</TD>';
        echo '<TD>' . frs_show_filetype_popup($name = 'release_file_type[]', $files[$i]->getTypeID()) . '</TD>';
        //In case of difference between the inserted md5 and the computed one
        //we dispaly an editable text field to let the user insert the right value
        //to avoid the error message next time
        $value = 'value = "' . $files[$i]->getReferenceMd5() . '"';
        if ($frsff->compareMd5Checksums($files[$i]->getComputedMd5(), $files[$i]->getReferenceMd5())) {
            $value = 'value = "' . $files[$i]->getComputedMd5() . '" readonly="true"';
        }
        echo '<TD><INPUT TYPE="TEXT" NAME="release_reference_md5[]" ' . $value . ' SIZE="36" ></TD>';
        $comment = $files[$i]->getComment();
        echo '<TD><textarea NAME="release_comment[]" cols="20", rows="1" >' . $comment . '</textarea></TD>';
        echo '<TD><INPUT TYPE="TEXT" NAME="user" value = "' . $userName . '" readonly="true"></TD>';
        echo '<TD>' . frs_show_release_popup2($group_id, $name = 'new_release_id[]', $files[$i]->getReleaseID()) . '</TD>';
        echo '<TD><INPUT TYPE="TEXT" NAME="release_time[]" VALUE="' . format_date('Y-m-d', $files[$i]->getReleaseTime()) . '" SIZE="10" MAXLENGTH="10"></TD></TR>';
    }
    echo '<INPUT TYPE="HIDDEN" id="nb_files" NAME="nb_files" VALUE="' . count($files) . '">';
    ?>
                        
                        <tr id="row_0">
                            <td></td>
                            <td>
                                <input type="hidden" name="js" value="no_js"/>
                                <select name="ftp_file[]" id="ftp_file_0">
                                    <option value="-1"><?php 
    echo $GLOBALS['Language']->getText('file_file_utils', 'must_choose_one');
    ?>
</option>
    <?php 
    //iterate and show the files in the upload directory
    $file_list = $frsff->getUploadedFileNames($release->getProject());
    foreach ($file_list as $file) {
        echo '<option value="' . $file . '">' . $hp->purify($file, CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
    }
    echo '<script type="text/javascript">';
    echo "var available_ftp_files = ['" . implode("', '", $file_list) . "'];";
    echo '</script>';
    ?>
                                </select>
    
                                <span id="or">or</span>
                                <input type="file" name="file[]" id="file_0" />
                            </td>
                            <td>
                                <?php 
    print frs_show_processor_popup($group_id, $name = 'file_processor');
    ?>
                            </td>
                            <td>
                                <?php 
    print frs_show_filetype_popup($name = 'file_type');
    ?>
                            </td>
                            <td>
                                <input name="reference_md5" value="" size="36" type="TEXT">
                            </td>
                        </tr>
                    </tbody>
                </table>
                <?php 
    echo '<span class="small" style="color:#666"><i>' . $GLOBALS['Language']->getText('file_admin_editreleases', 'upload_file_msg', formatByteToMb($GLOBALS['sys_max_size_upload'])) . '</i> </span>';
    echo '<div id=\'files_help\'><span class="smaller">';
    include $GLOBALS['Language']->getContent('file/qrs_attach_file');
    echo '</span></div>';
    ?>
            </FIELDSET>
            </TD></TR>
            <TR><TD><FIELDSET><LEGEND><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'fieldset_notes');
    ?>
</LEGEND>
            <TABLE BORDER="0" CELLPADDING="2" CELLSPACING="2" WIDTH="100%">
            <TR id="notes_title">
                <TD VALIGN="TOP" width="10%">
                    <span id="release_notes"><B><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'release_notes');
    ?>
:  </B></span>
                </TD>
            </TR>
            <TR id="upload_notes">
                <TD>
                    <input id="uploaded_notes" type="file" name="uploaded_release_notes"  size="30">
                </TD>
            </TR>
            <TR id="release_notes_area">
                <TD width="100%">
                    <TEXTAREA NAME="release[release_notes]" rows="7" cols="70"><?php 
    echo $hp->purify($release->getNotes(), CODENDI_PURIFIER_CONVERT_HTML);
    ?>
</TEXTAREA>
                </TD>
            </TR>
            <TR id="change_log_title">
                <TD VALIGN="TOP" width="10%">
                    <span id="change_log"><B><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'change_log');
    ?>
:  </B></span>
                </TD>
            </TR>
            <TR id="upload_change_log">
                <TD>
                    <input type="file" id="uploaded_change_log" name="uploaded_change_log"  size="30">
                </TD>
            </TR>
            <TR id="change_log_area">
                <TD width="40%">
                    <TEXTAREA ID="text_area_change_log" NAME="release[change_log]" ROWS="7" COLS="70"><?php 
    echo $hp->purify($release->getChanges(), CODENDI_PURIFIER_CONVERT_HTML);
    ?>
</TEXTAREA>
                </TD>
            </TR>
            </TABLE></FIELDSET>
            </TD></TR>
            <TR>
                <TD>
                    <FIELDSET><LEGEND><?php 
    echo $GLOBALS['Language']->getText('file_admin_editreleases', 'fieldset_permissions');
    ?>
</LEGEND>
                        <TABLE BORDER="0" CELLPADDING="2" CELLSPACING="2">
    
                            <TR id="permissions">
                                <TD>
                                    <DIV id="permissions_list">
                                        <?php 
    if ($is_update) {
        permission_display_selection_frs("RELEASE_READ", $release->getReleaseID(), $group_id);
    } else {
        permission_display_selection_frs("PACKAGE_READ", $release->getPackageID(), $group_id);
    }
    ?>
                                    </DIV>
                                </TD>
                            </TR>
                        </TABLE>
                    </FIELDSET>
                </TD>
            </TR> 
            <?php 
    if (user_ismember($group_id, 'A') || user_ismember($group_id, 'N2') || user_ismember($group_id, 'N1')) {
        echo '
            <TR><TD><FIELDSET><LEGEND>' . $GLOBALS['Language']->getText('file_admin_editreleases', 'fieldset_news') . '</LEGEND>
                <TABLE BORDER="0" CELLPADDING="2" CELLSPACING="2">
                    <TR>
                        <TD VALIGN="TOP">
                            <B> ' . $GLOBALS['Language']->getText('file_admin_editreleases', 'submit_news') . ' :</B>
                        </TD>
                        <TD>
                            <INPUT ID="submit_news" TYPE="CHECKBOX" NAME="release_submit_news" VALUE="1">
                            
                        </TD>	
                    </TR>
                    <TR id="tr_subject">
                        <TD VALIGN="TOP" ALIGN="RIGHT">
                            <B> ' . $GLOBALS['Language']->getText('file_admin_editreleases', 'subject') . ' :</B>
                        </TD>
                        <TD>
                            <INPUT TYPE="TEXT" ID="release_news_subject" NAME="release_news_subject" VALUE=" ' . $GLOBALS['Language']->getText('file_admin_editreleases', 'file_news_subject', $relname) . '" SIZE="40" MAXLENGTH="60">
                        </TD>
                    </TR>	
                    <TR id="tr_details">
                        <TD VALIGN="TOP" ALIGN="RIGHT">
                            <B> ' . $GLOBALS['Language']->getText('file_admin_editreleases', 'details') . ' :</B>
                        </TD>
                        <TD>
                            <TEXTAREA ID="release_news_details" NAME="release_news_details" ROWS="7" COLS="50">' . $GLOBALS['Language']->getText('file_admin_editreleases', 'file_news_details', array($relname, $url_news)) . ' </TEXTAREA>
                        </TD>
                    </TR>
                    <TR id="tr_public">
                        <TD ROWSPAN=2 VALIGN="TOP" ALIGN="RIGHT">
                            <B> ' . $GLOBALS['Language']->getText('news_submit', 'news_privacy') . ' :</B>
                        </TD>
                        <TD>
                            <INPUT TYPE="RADIO" ID="publicnews" NAME="private_news" VALUE="0" CHECKED>' . $GLOBALS['Language']->getText('news_submit', 'public_news') . '
                        </TD>
                    </TR > 
                    <TR id="tr_private">
                        <TD>
                            <INPUT TYPE="RADIO" ID="privatenews" NAME="private_news" VALUE="1">' . $GLOBALS['Language']->getText('news_submit', 'private_news') . '
                        </TD>
                    </TR></DIV>
                </TABLE></FIELDSET>
            </TD></TR>';
    }
    $fmmf = new FileModuleMonitorFactory();
    $count = count($fmmf->getFilesModuleMonitorFromDb($release->getPackageId()));
    if ($count > 0) {
        echo '<TR><TD><FIELDSET><LEGEND>' . $GLOBALS['Language']->getText('file_admin_editreleases', 'fieldset_notification') . '</LEGEND>';
        echo '<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="2">';
        echo '<TR><TD>' . $GLOBALS['Language']->getText('file_admin_editreleases', 'users_monitor', $count) . '</TD></TR>';
        echo '<TR><TD><B>' . $GLOBALS['Language']->getText('file_admin_editreleases', 'mail_file_rel_notice') . '</B><INPUT TYPE="CHECKBOX" NAME="notification" VALUE="1" CHECKED>';
        echo '</TD></TR>';
        echo '</TABLE></FIELDSET></TD></TR>';
    }
    ?>
            
            <TR>
                <TD ALIGN="CENTER">
                    
                    <INPUT TYPE="HIDDEN" NAME="create" VALUE="bla">
                    <INPUT TYPE="SUBMIT" ID="create_release"  VALUE="<?php 
    echo $is_update ? $GLOBALS['Language']->getText('file_admin_editreleases', 'edit_release') : $GLOBALS['Language']->getText('file_admin_qrs', 'release_file');
    ?>
">
                    <input type="submit" ID="cancel_release" name="cancel" value="<?php 
    echo $GLOBALS['Language']->getText('global', 'btn_cancel');
    ?>
" />
                </TD>
            </TR>
        </TABLE>
    </FORM>
    
    <?php 
    file_utils_footer(array());
}
Beispiel #20
0
 /**
  * Returns a PermissionsManager instance
  *
  * @return PermissionsManager
  */
 function getPermissionsManager()
 {
     $pm =& PermissionsManager::instance();
     return $pm;
 }
 /**
  *
  * @param array $params
  * @see Event::IMPORT_XML_PROJECT
  */
 public function importXmlProject($params)
 {
     $importer = new GitXmlImporter($params['logger'], $this->getRepositoryManager(), $this->getRepositoryFactory(), $this->getBackendGitolite(), $this->getGitSystemEventManager(), PermissionsManager::instance(), $this->getUGroupManager());
     $importer->import($params['project'], UserManager::instance()->getCurrentUser(), $params['xml_content'], $params['extraction_path']);
 }
 public function tearDown()
 {
     parent::tearDown();
     unset($GLOBALS['sys_https_host']);
     PermissionsManager::clearInstance();
 }
Beispiel #23
0
 /**
  * Duplicate the conditions
  */
 public function duplicate(Transition $from_transition, $new_transition_id, $field_mapping, $ugroup_mapping, $duplicate_type)
 {
     PermissionsManager::instance()->duplicatePermissions($from_transition->getId(), $new_transition_id, array(Workflow_Transition_Condition_Permissions::PERMISSION_TRANSITION), $ugroup_mapping, $duplicate_type);
 }
 protected function getPermissionsManager()
 {
     return PermissionsManager::instance();
 }
 public function getCurrentGitAdminUgroups($project_id)
 {
     return $this->permissions_manager->getAuthorizedUgroupIds($project_id, Git::PERM_ADMIN);
 }
 /**
  * Adds permissions in the database
  * 
  * @param Array $ugroups the list of ugroups
  * @param int          $artifact  The id of the artifact
  * 
  * @return boolean
  */
 public function addPermissions($ugroups, $artifact_id)
 {
     $pm = PermissionsManager::instance();
     $permission_type = 'PLUGIN_TRACKER_ARTIFACT_ACCESS';
     foreach ($ugroups as $ugroup) {
         if (!$pm->addPermission($permission_type, $artifact_id, $ugroup)) {
             return false;
         }
     }
     return true;
 }
Beispiel #27
0
 public function itCanReturnUgroupIdsFromAnItemAndItsPermissionTypes()
 {
     $object_id = 100;
     $expected = array(Ugroup::PROJECT_MEMBERS);
     $permissions_manager = mock('PermissionsManager');
     stub($permissions_manager)->getAuthorizedUgroupIds($object_id, self::PERMISSIONS_TYPE)->returns($expected);
     PermissionsManager::setInstance($permissions_manager);
     $result = $this->ugroup_literalizer->getUgroupIds($object_id, self::PERMISSIONS_TYPE);
     $this->assertEqual($expected, $result);
     PermissionsManager::clearInstance();
 }
 /**
  * Returns true if user has permissions to add files
  *
  * NOTE : For the moment, only super admin, project admin (A) and file admin (R2) can add files
  *
  * @param int $group_id the project ID this file is in
  * @param int $user_id the ID of the user. If not given or false, take the current user
  * @return boolean true if the user has permission to add files, false otherwise
  */
 function userCanAdd($group_id, $user_id = false)
 {
     $pm =& PermissionsManager::instance();
     $um =& UserManager::instance();
     if (!$user_id) {
         $user =& $um->getCurrentUser();
     } else {
         $user =& $um->getUserById($user_id);
     }
     $ok = $user->isSuperUser() || user_ismember($group_id, 'R2') || user_ismember($group_id, 'A');
     return $ok;
 }
 public function tearDown()
 {
     PermissionsManager::clearInstance();
     parent::tearDown();
 }
 /**
  * return true if users in ugroups have Submit permission on this field
  *
  * @param array $ugroups the ugroups users are part of
  *
  * @return bool
  */
 protected function ugroupsCanSubmit($ugroups)
 {
     $pm = PermissionsManager::instance();
     $ok = $pm->userHasPermission($this->id, self::PERMISSION_SUBMIT, $ugroups);
     return $ok;
 }