Example #1
0
/**
 * Return the name of a given object
 */
function permission_get_object_name($permission_type, $object_id)
{
    global $Language, $group_id;
    $pm = ProjectManager::instance();
    if ($permission_type == 'NEWS_READ') {
        return get_news_name_from_forum_id($object_id);
    } else {
        if ($permission_type == 'PACKAGE_READ') {
            return file_get_package_name_from_id($object_id);
        } else {
            if ($permission_type == 'RELEASE_READ') {
                return file_get_release_name_from_id($object_id);
            } else {
                if ($permission_type == 'DOCUMENT_READ') {
                    return util_unconvert_htmlspecialchars(doc_get_title_from_id($object_id));
                } else {
                    if ($permission_type == 'DOCGROUP_READ') {
                        return doc_get_docgroupname_from_id($object_id);
                    } else {
                        if ($permission_type == 'WIKI_READ') {
                            return $Language->getText('project_admin_permissions', 'wiki');
                        } else {
                            if ($permission_type == 'WIKIPAGE_READ') {
                                #$wikipage= new WikiPage($object_id);
                                #return $wikipage->getPagename();
                                return "{$object_id}";
                            } else {
                                if ($permission_type == 'WIKIATTACHMENT_READ') {
                                    return $Language->getText('project_admin_permissions', 'wikiattachment');
                                } else {
                                    if (strpos($permission_type, 'TRACKER_ACCESS') === 0) {
                                        $group = $pm->getProject($group_id);
                                        $at = new ArtifactType($group, $object_id);
                                        return $at->getName();
                                    } else {
                                        if (strpos($permission_type, 'TRACKER_FIELD') === 0) {
                                            $ret = "{$object_id}";
                                            if ($group = $pm->getProject($group_id)) {
                                                $atid = permission_extract_atid($object_id);
                                                $at = new ArtifactType($group, $atid);
                                                $ret = $at->getName();
                                                if ($ath = new ArtifactTypeHtml($group, $atid)) {
                                                    if ($art_field_fact = new ArtifactFieldFactory($ath)) {
                                                        $field_id = permission_extract_field_id($object_id);
                                                        if ($field = $art_field_fact->getFieldFromId($field_id)) {
                                                            $ret = $field->getName() . ' (' . $ret . ')';
                                                        }
                                                    }
                                                }
                                            }
                                            return $ret;
                                        } else {
                                            if ($permission_type == 'TRACKER_ARTIFACT_ACCESS') {
                                                $ret = $object_id;
                                                $sql = "SELECT group_artifact_id FROM artifact WHERE artifact_id= " . db_ei($object_id);
                                                $result = db_query($sql);
                                                if (db_numrows($result) > 0) {
                                                    $row = db_fetch_array($result);
                                                    $atid = $row['group_artifact_id'];
                                                }
                                                $group = $pm->getProject($group_id);
                                                $at = new ArtifactType($group, $atid);
                                                $a = new Artifact($at, $object_id);
                                                return 'art #' . $a->getId() . ' - ' . util_unconvert_htmlspecialchars($a->getSummary());
                                            } else {
                                                $em =& EventManager::instance();
                                                $object_name = false;
                                                $em->processEvent('permission_get_object_name', array('permission_type' => $permission_type, 'object_id' => $object_id, 'object_name' => &$object_name));
                                                return $object_name ? $object_name : $object_id;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Example #2
0
 } else {
     if ($row['permission_type'] == 'DOCGROUP_READ') {
         echo '<TD>' . $Language->getText('project_admin_editugroup', 'document_group') . ' <a href="/docman/admin/editdocgrouppermissions.php?doc_group=' . $row['object_id'] . '&group_id=' . $group_id . '">' . $objname . '</a></TD>';
     } else {
         if ($row['permission_type'] == 'WIKI_READ') {
             echo '<TD>' . $Language->getText('project_admin_editugroup', 'wiki') . ' <a href="/wiki/admin/index.php?view=wikiPerms&group_id=' . $group_id . '">' . $objname . '</a></TD>';
         } else {
             if ($row['permission_type'] == 'WIKIPAGE_READ') {
                 echo '<TD>' . $Language->getText('project_admin_editugroup', 'wiki_page') . ' <a href="/wiki/admin/index.php?group_id=' . $group_id . '&view=pagePerms&id=' . $row['object_id'] . '">' . $objname . '</a></TD>';
             } else {
                 if (strpos($row['permission_type'], 'TRACKER_ACCESS') === 0) {
                     echo '<TD>' . $Language->getText('project_admin_editugroup', 'tracker') . ' <a href="/tracker/admin/?func=permissions&perm_type=tracker&group_id=' . $group_id . '&atid=' . $row['object_id'] . '">' . $objname . '</a></TD>';
                 } else {
                     if (strpos($row['permission_type'], 'TRACKER_FIELD') === 0) {
                         $tracker_field_displayed[$atid] = 1;
                         $atid = permission_extract_atid($row['object_id']);
                         echo '<TD>' . $Language->getText('project_admin_editugroup', 'tracker_field') . ' <a href="/tracker/admin/?group_id=' . $group_id . '&atid=' . $atid . '&func=permissions&perm_type=fields&group_first=1&selected_id=' . $ugroup_id . '">' . $objname . '</a></TD>';
                     } else {
                         if ($row['permission_type'] == 'TRACKER_ARTIFACT_ACCESS') {
                             echo '<td>' . $hp->purify($objname, CODENDI_PURIFIER_BASIC) . '</td>';
                         } else {
                             $results = false;
                             $em =& EventManager::instance();
                             $em->processEvent('permissions_for_ugroup', array('permission_type' => $row['permission_type'], 'object_id' => $row['object_id'], 'objname' => $objname, 'group_id' => $group_id, 'ugroup_id' => $ugroup_id, 'results' => &$results));
                             if ($results) {
                                 echo '<TD>' . $results . '</TD>';
                             } else {
                                 echo '<TD>' . $row['object_id'] . '</TD>';
                             }
                         }
                     }
Example #3
0
 public function getContent()
 {
     $content = '<h2>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'permissions_title') . '</h2>';
     $this->permissions_manager = PermissionsManager::instance();
     $dar = $this->permissions_manager->searchByUgroupId($this->ugroup->getId());
     if ($dar && !$dar->isError() && $dar->rowCount() > 0) {
         $content .= '<p>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'ug_perms') . '<p>';
         $title_arr = array();
         $title_arr[] = $GLOBALS['Language']->getText('project_admin_editugroup', 'permission');
         $title_arr[] = $GLOBALS['Language']->getText('project_admin_editugroup', 'resource_name');
         $content .= '<table class="admin_permissions table table-bordered table-striped">';
         $content .= '<thead><tr>';
         $content .= '<th>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'permission') . '</th>';
         $content .= '<th>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'resource_name') . '</th>';
         $content .= '</tr></thead>';
         $content .= '<tbody>';
         $row_num = 0;
         foreach ($dar as $row) {
             if (strpos($row['permission_type'], 'TRACKER_FIELD') === 0) {
                 $atid = permission_extract_atid($row['object_id']);
                 if (isset($tracker_field_displayed[$atid])) {
                     continue;
                 }
                 $objname = permission_get_object_name('TRACKER_ACCESS_FULL', $atid);
             } else {
                 $objname = permission_get_object_name($row['permission_type'], $row['object_id']);
             }
             $content .= '<TR>';
             $content .= '<TD>' . permission_get_name($row['permission_type']) . '</TD>';
             if ($row['permission_type'] == 'PACKAGE_READ') {
                 $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'package') . ' <a href="/file/admin/editpackagepermissions.php?package_id=' . $row['object_id'] . '&group_id=' . $this->ugroup->getProjectId() . '">' . $objname . '</a></TD>';
             } else {
                 if ($row['permission_type'] == 'RELEASE_READ') {
                     $package_id = file_get_package_id_from_release_id($row['object_id']);
                     $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'release') . ' <a href="/file/admin/editreleasepermissions.php?release_id=' . $row['object_id'] . '&group_id=' . $this->ugroup->getProjectId() . '&package_id=' . $package_id . '">' . file_get_release_name_from_id($row['object_id']) . '</a> (' . $GLOBALS['Language']->getText('project_admin_editugroup', 'from_package') . ' <a href="/file/admin/editreleases.php?package_id=' . $package_id . '&group_id=' . $this->ugroup->getProjectId() . '">' . $objname . '</a></TD>';
                 } else {
                     if ($row['permission_type'] == 'DOCUMENT_READ') {
                         $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'document') . ' <a href="/docman/admin/editdocpermissions.php?docid=' . $row['object_id'] . '&group_id=' . $this->ugroup->getProjectId() . '">' . $objname . '</a></TD>';
                     } else {
                         if ($row['permission_type'] == 'DOCGROUP_READ') {
                             $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'document_group') . ' <a href="/docman/admin/editdocgrouppermissions.php?doc_group=' . $row['object_id'] . '&group_id=' . $this->ugroup->getProjectId() . '">' . $objname . '</a></TD>';
                         } else {
                             if ($row['permission_type'] == 'WIKI_READ') {
                                 $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'wiki') . ' <a href="/wiki/admin/index.php?view=wikiPerms&group_id=' . $this->ugroup->getProjectId() . '">' . $objname . '</a></TD>';
                             } else {
                                 if ($row['permission_type'] == 'WIKIPAGE_READ') {
                                     $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'wiki_page') . ' <a href="/wiki/admin/index.php?group_id=' . $this->ugroup->getProjectId() . '&view=pagePerms&id=' . $row['object_id'] . '">' . $objname . '</a></TD>';
                                 } else {
                                     if (strpos($row['permission_type'], 'TRACKER_ACCESS') === 0) {
                                         $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'tracker') . ' <a href="/tracker/admin/?func=permissions&perm_type=tracker&group_id=' . $this->ugroup->getProjectId() . '&atid=' . $row['object_id'] . '">' . $objname . '</a></TD>';
                                     } else {
                                         if (strpos($row['permission_type'], 'TRACKER_FIELD') === 0) {
                                             $tracker_field_displayed[$atid] = 1;
                                             $atid = permission_extract_atid($row['object_id']);
                                             $content .= '<TD>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'tracker_field') . ' <a href="/tracker/admin/?group_id=' . $this->ugroup->getProjectId() . '&atid=' . $atid . '&func=permissions&perm_type=fields&group_first=1&selected_id=' . $this->ugroup->getId() . '">' . $objname . '</a></TD>';
                                         } else {
                                             if ($row['permission_type'] == 'TRACKER_ARTIFACT_ACCESS') {
                                                 $content .= '<td>' . $this->html_purifier->purify($objname, CODENDI_PURIFIER_BASIC) . '</td>';
                                             } else {
                                                 $results = false;
                                                 $this->event_manager->processEvent('permissions_for_ugroup', array('permission_type' => $row['permission_type'], 'object_id' => $row['object_id'], 'objname' => $objname, 'group_id' => $this->ugroup->getProjectId(), 'ugroup_id' => $this->ugroup->getId(), 'results' => &$results));
                                                 if ($results) {
                                                     $content .= '<TD>' . $results . '</TD>';
                                                 } else {
                                                     $content .= '<TD>' . $row['object_id'] . '</TD>';
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             $content .= '</TR>';
             $row_num++;
         }
         $content .= '</tbody></table><p>';
     } else {
         $content .= '<p>' . $GLOBALS['Language']->getText('project_admin_editugroup', 'no_perms') . '.</p>';
     }
     return $content;
 }