$this->name = "quota_management";
$this->text = _("Quota Management"); // To show in the tabs, use...
$this->pkg_desc =
-_("This is a quota_management plugin within FusionForge.");
- $this->_addHook('groupisactivecheckbox'); // The "use ..." checkbox in editgroupinfo
- $this->_addHook('groupisactivecheckboxpost'); //
- $this->_addHook('userisactivecheckbox'); // The "use ..." checkbox in user account
- $this->_addHook('userisactivecheckboxpost'); //
+_("This is a Quota Management plugin within FusionForge. Provide an easy way
+to monitor disk and database usage per user, project.");
$this->_addHook('project_admin_plugins'); // to show up in the admin page fro group
$this->_addHook('site_admin_option_hook'); // to show in admin
$this->_addHook('groupadminmenu');
switch ($hookname) {
case "project_admin_plugins": {
// this displays the link in the project admin options page to it's quota_management administration
- $group_id = $params['group_id'];
- $group = group_get_object($group_id);
- if ( $group->usesPlugin($this->name)) {
- echo util_make_link('/plugins/quota_management/index.php?id='.$group->getID().'&type=admin&pluginname='.$this->name,
- _('View the quota_management Administration')
- ) ;
- echo '<br />';
- }
+ echo util_make_link('/plugins/quota_management/index.php?group_id='.$params['group_id'].'&type=projectadmin',
+ _('View the Quota Management Administration'));
+ echo '<br />';
$returned = true;
break;
}
break;
}
case "groupadminmenu": {
- $group_id = $params['group'];
- $group = group_get_object($group_id);
- if ( $group->usesPlugin($this->name)) {
- $params['labels'][] = _ ('Quota');
- $params['links'][] = '/plugins/quota_management/index.php?id='.$group_id.'&type=admin&pluginname='.$this->name;
- $params['attr_r'][] = array('title' => _('View the quota_management Administration'));
- }
+ $params['labels'][] = _ ('Quota');
+ $params['links'][] = '/plugins/quota_management/index.php?group_id='.$params['group'].'&type=projectadmin';
+ $params['attr_r'][] = array('title' => _('View the Quota Management Administration'));
$returned = true;
break;
}
}
function getAdminOptionLink() {
- return util_make_link('/plugins/'.$this->name.'/quota.php', _('Ressources usage and quota'));
- }
-
- function convert_bytes_to_mega($mega) {
- $b = round($mega / (1024*1024), 2);
- return $b;
- }
-
- function add_numbers_separator($val, $sep=' ') {
- $size = "$val";
- $size = strrev($size);
- $size = wordwrap($size, 3, $sep, 1);
- $size = strrev($size);
- return $size;
+ return util_make_link('/plugins/'.$this->name.'/index.php?type=globaladmin', _('Ressources usage and quota'));
}
function get_dir_size($dir) {
return "$size";
}
- function quota_management_Project_Header($params) {
- global $id;
- $params['toptab'] = 'quota_management';
- $params['group'] = $id;
- /*
- Show horizontal links
- */
- site_project_header($params);
+ function getHeader($type, $group_id = 0) {
+ switch ($type) {
+ case 'globaladmin': {
+ global $gfwww;
+ require_once $gfwww.'admin/admin_utils.php';
+ site_admin_header(array('title'=>_('Quota and Usage Admin')));
+ break;
+ }
+ case 'projectadmin': {
+ global $gfwww;
+ require_once $gfwww.'project/admin/project_admin_utils.php';
+ project_admin_header(array('title' => sprintf(_('Quota Management for %s'), group_getname($group_id)), 'group' => $group_id));
+ break;
+ }
+ }
+ }
+
+ function getDocumentsSizeQuery() {
+ return db_query_params('SELECT doc_data.group_id, SUM(doc_data_version.filesize) as size, SUM(octet_length(doc_data_version.data_words)) as size1
+ FROM doc_data, doc_data_version WHERE doc_data.docid = doc_data_version.docid GROUP BY doc_data.group_id',
+ array());
+ }
+
+ function getDocumentsSizeForProject($group_id) {
+ return db_query_params('SELECT doc_data.group_id, SUM(doc_data_version.filesize) as size, SUM(octet_length(doc_data_version.data_words)) as size1, count(doc_data_version.serial_id) as nb
+ FROM doc_data, doc_data_version WHERE doc_data.docid = doc_data_version.docid AND doc_data.group_id = $1 GROUP BY doc_data.group_id',
+ array($group_id));
}
}
*
* Copyright 2005, Fabio Bertagnin
* Copyright 2011,2016, Franck Villaume - Capgemini
+ * Copyright 2019, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge.
require_once $gfcommon.'include/pre.php';
require_once $gfwww.'admin/admin_utils.php';
+session_require_global_perm('forge_admin');
+
+global $HTML;
+
$quota_management = plugin_get_object('quota_management');
-$_quota_block_size = 1024;
-$_quota_block_size = trim(shell_exec("echo $BLOCK_SIZE")) + 0;
+$_quota_block_size = trim(shell_exec('echo $BLOCK_SIZE')) + 0;
if ($_quota_block_size == 0) $_quota_block_size = 1024;
-site_admin_header(array('title'=>_('Site Admin')));
-?>
-<h4>
- <?php echo _('Ressources usage and quota'); ?>
-
- <?php echo util_make_link('/plugins/'.$quota_management->name.'/quota_admin.php', _('Admin')) ?>
-</h4>
-<?php
+$subMenuTitle = array();
+$subMenuUrl = array();
+$subMenuAttr = array();
+$subMenuTitle[] = _('Ressources usage and quota');
+$subMenuUrl[] = '/plugins/'.$quota_management->name.'/quota.php';
+$subMenuAttr[] = array('title' => _('View quota and usage per project.'));
+$subMenuTitle[] = _('Admin');
+$subMenuUrl[] = '/plugins/'.$quota_management->name.'/quota_admin.php';
+$subMenuAttr[] = array('title' => _('Administrate quotas per project.'));
+echo $HTML->subMenu($subMenuTitle, $subMenuUrl, $subMenuAttr);
+
// stock projects infos in array
$quotas = array();
}
// documents database size
-$res_db = db_query_params('SELECT group_id, SUM(octet_length(data)) as size, SUM(octet_length(data_words)) as size1 FROM doc_data GROUP BY group_id ',
- array());
-if (db_numrows($res_db) > 0) {
- while($e = db_fetch_array($res_db)) {
- $q = array();
- $quotas["$e[group_id]"]["database_size"] += $e["size"];
- $quotas["$e[group_id]"]["database_size"] += $e["size1"];
+if (forge_get_config('use_docman')) {
+ $res_db = $quota_management->getDocumentsSizeQuery();
+ if (db_numrows($res_db) > 0) {
+ while($e = db_fetch_array($res_db)) {
+ $q = array();
+ $quotas["$e[group_id]"]["database_size"] += $e["size"];
+ $quotas["$e[group_id]"]["database_size"] += $e["size1"];
+ }
}
}
// news database size
-$res_db = db_query_params('SELECT group_id, SUM(octet_length(summary) + octet_length(details)) as size FROM news_bytes GROUP BY group_id',
- array());
-if (db_numrows($res_db) > 0) {
- while($e = db_fetch_array($res_db)) {
- $quotas["$e[group_id]"]["database_size"] += $e["size"];
+ if (forge_get_config('use_news')) {
+ $res_db = db_query_params('SELECT group_id, SUM(octet_length(summary) + octet_length(details)) as size FROM news_bytes GROUP BY group_id',
+ array());
+ if (db_numrows($res_db) > 0) {
+ while($e = db_fetch_array($res_db)) {
+ $quotas["$e[group_id]"]["database_size"] += $e["size"];
+ }
}
}
// forums database size
-$res_db = db_query_params('SELECT forum_group_list.group_id as group_id, SUM(octet_length(subject)+octet_length(body)) as size FROM forum INNER JOIN forum_group_list ON forum.group_forum_id = forum_group_list.group_forum_id GROUP BY group_id',
- array ());
-if (db_numrows($res_db) > 0) {
- while($e = db_fetch_array($res_db)) {
- $quotas["$e[group_id]"]["database_size"] += $quota_management->convert_bytes_to_mega($e["size"]);
+if (forge_get_config('use_forums')) {
+ $res_db = db_query_params('SELECT forum_group_list.group_id as group_id, SUM(octet_length(subject)+octet_length(body)) as size FROM forum INNER JOIN forum_group_list ON forum.group_forum_id = forum_group_list.group_forum_id GROUP BY group_id',
+ array ());
+ if (db_numrows($res_db) > 0) {
+ while($e = db_fetch_array($res_db)) {
+ $quotas["$e[group_id]"]["database_size"] += $e["size"];
+ }
}
}
$upload_dir = forge_get_config('upload_dir');
$group_dir = $chroot_dir.forge_get_config('groupdir_prefix')."/";
$cvs_dir = $chroot_dir.$cvsdir_prefix."/";
-$svn_dir = $chroot_dir.$svndir_prefix."/";
foreach ($quotas as $p) {
$group_id = $p["group_id"];
$size = $quota_management->get_dir_size($dir);
$quotas["$group_id"]["disk_size_scm"] += $size;
// svn dir disk space
- $dir = $svn_dir.$p["unix_name"];
+ $dir = forge_get_config('repos_path', 'scmsvn').'/'.$p["unix_name"];
$size = $quota_management->get_dir_size($dir);
$quotas["$group_id"]["disk_size_scm"] += $size;
}
$user_id = $u["user_id"];
$dir = $ftp_dir . $u["user_name"];
$size = $quota_management->get_dir_size($dir);
- $users["$user_id"]["disk_size"] += $quota_management->convert_bytes_to_mega($size);
+ $users["$user_id"]["disk_size"] += human_readable_bytes($size);
}
?>
<tr>
<td style="border-top:thin solid #808080;background:<?php echo $color2; ?>"><?php echo $q["group_id"]; ?></td>
<td style="border-top:thin solid #808080;background:<?php echo $color2; ?>">
- <?php echo util_make_link('/plugins/'.$quota_management->name.'/quota_project.php?group_id='.$q['group_id'], $q['unix_name']); ?>
+ <?php echo util_make_link('/plugins/'.$quota_management->name.'/?type=projectadmin&group_id='.$q['group_id'], $q['unix_name']); ?>
</td>
<td style="border-top:thin solid #808080;background:<?php echo $color2; ?>">
<?php echo $q["name"]; ?>
</td>
<td style="border-top:thin solid #808080;background:<?php echo $color1; ?>" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["database_size"])); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($q["database_size"]); ?>
</td>
<td style="border-top:thin solid #808080;background:<?php echo $color0; ?>" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["disk_size_1"])); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($q["disk_size_1"]); ?>
</td>
<td style="border-top:thin solid #808080;background:<?php echo $color0; ?>" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["disk_size_scm"])); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($q["disk_size_scm"]); ?>
</td>
<td style="border-top:thin solid #808080;background:<?php echo $color1; ?>" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["disk_size_other"])); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($q["disk_size_other"]); ?>
</td>
<td style="border-top:thin solid #808080;background:<?php echo $color1; ?>;font-weight:bold" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($local_disk_size)); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($local_disk_size); ?>
</td>
<td style="border-top:thin solid #808080;background:<?php echo $colorq; ?>" align="right">
<?php
if ($q["quota_soft"] > 0)
{
- echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["quota_soft"]));
- echo " ";
- echo _('MB');
+ echo human_readable_bytes($q["quota_soft"]);
}
else
{
<?php
if ($q["quota_hard"] > 0)
{
- echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["quota_hard"]));
- echo " ";
- echo _('MB');
+ echo human_readable_bytes($q["quota_hard"]);
}
else
{
</td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($total_database)); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($total_database); ?>
</td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($total_disk_1)); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($total_disk_1); ?>
</td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($total_disk_scm)); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($total_disk_scm); ?>
</td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($total_disk_other)); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($total_disk_other); ?>
</td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080;background:#e0e0e0" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($total_database+$total_disk_1+$total_disk_scm+$total_disk_other)); ?>
- <?php echo _('MB'); ?>
+ <?php echo human_readable_bytes($total_database+$total_disk_1+$total_disk_scm+$total_disk_other); ?>
</td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
<td style="border-top:thin solid #808080"><br /></td>
<td style="border-top:thin solid #808080"><br /></td>
<td style="border-top:thin solid #808080" align="right">
- <?php echo $quota_management->add_numbers_separator($u["disk_size"]); ?>
- <?php echo _('MB'); ?>
+ <?php echo $u["disk_size"]; ?>
</td>
</tr>
<?php
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><br /></td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080" align="right">
- <?php echo $quota_management->add_numbers_separator($total); ?>
- <?php echo _('MB'); ?>
+ <?php echo $total; ?>
</td>
</tr>
</table>
* Copyright 2005, Fabio Bertagnin
* Copyright 2010 (c) FusionForge Team
* Copyright 2011, Franck Villaume - Capgemini
+ * Copyright 2019, Franck Villaume - TrivialDev
* http://fusionforge.org/
*
* This file is part of FusionForge.
require_once $gfcommon.'include/pre.php';
require_once $gfwww.'project/admin/project_admin_utils.php';
-$id = getIntFromRequest('group_id');
-$quota_management = plugin_get_object('quota_management');
+global $group_id;
+global $quota_management;
-session_require_perm('project_admin', $id);
+session_require_perm('project_admin', $group_id);
-$group = group_get_object($id);
+$group = group_get_object($group_id);
if (!$group || !is_object($group)) {
exit_no_group();
exit_error($group->getErrorMessage(), 'home');
}
-project_admin_header(array('title'=>_('Project quota manager'),'group'=>$group->getID(),'pagename'=>'project_admin_quotas','sectionvals'=>array(group_getname($id))));
-?>
-
-<h4><?php echo _('Project quota manager'); ?></h4>
-
-<?php
$quotas = array();
-$res_db = db_query_params('SELECT SUM(octet_length(data)) as size, SUM(octet_length(data_words)) as size1, count(*) as nb FROM doc_data WHERE group_id = $1 ',
- array ($id));
-$q = array();
-$q["name"] = _('Documents');
-$q["nb"] = 0; $q["size"] = 0;
-$q1 = array();
-$q1["name"] = _('Documents search engine');
-$q1["size"] = 0;
-if (db_numrows($res_db) > 0) {
- $e = db_fetch_array($res_db);
- $q["nb"] = $e["nb"];
- $q["size"] = $e["size"];
- // $q1["nb"] = $e["nb"];
- $q1["size"] = $e["size1"];
+if ($group->usesDocman()) {
+ $res_db = $quota_management->getDocumentsSizeForProject($group_id);
+ $q = array();
+ $q["name"] = _('Documents');
+ $q["nb"] = 0; $q["size"] = 0;
+ $q1 = array();
+ $q1["name"] = _('Documents search engine');
+ $q1["size"] = 0;
+ if (db_numrows($res_db) > 0) {
+ $e = db_fetch_array($res_db);
+ $q["nb"] = $e["nb"];
+ $q["size"] = $e["size"];
+ $q1["nb"] = $e["nb"];
+ $q1["size"] = $e["size1"];
+ }
+ $quotas[0] = $q;
+ $quotas[1] = $q1;
}
-$quotas[0] = $q;
-$quotas[1] = $q1;
-$res_db = db_query_params('SELECT SUM(octet_length(summary) + octet_length(details)) as size, count(*) as nb FROM news_bytes WHERE group_id = $1 ',
- array ($id));
-$q = array();
-$q["name"] = _('News');
-$q["nb"] = 0; $q["size"] = 0;
-if (db_numrows($res_db) > 0)
-{
- $e = db_fetch_array($res_db);
- $q["nb"] = $e["nb"];
- $q["size"] = $e["size"];
+if ($group->usesNews()) {
+ $res_db = db_query_params('SELECT SUM(octet_length(summary) + octet_length(details)) as size, count(*) as nb FROM news_bytes WHERE group_id = $1 ',
+ array ($group_id));
+ $q = array();
+ $q["name"] = _('News');
+ $q["nb"] = 0; $q["size"] = 0;
+ if (db_numrows($res_db) > 0)
+ {
+ $e = db_fetch_array($res_db);
+ $q["nb"] = $e["nb"];
+ $q["size"] = $e["size"];
+ }
+ $quotas[2] = $q;
}
-$quotas[2] = $q;
-$res_db = db_query_params('SELECT SUM(octet_length(subject)+octet_length(body)) as size, count(*) as nb FROM forum INNER JOIN forum_group_list ON forum.group_forum_id = forum_group_list.group_forum_id WHERE group_id = $1 ',
- array ($id));
-$q = array();
-$q["name"] = _('Forums');
-$q["nb"] = 0; $q["size"] = 0;
-if (db_numrows($res_db) > 0) {
- $e = db_fetch_array($res_db);
- $q["nb"] = $e["nb"];
- $q["size"] = $e["size"];
+if ($group->usesForum()) {
+ $res_db = db_query_params('SELECT SUM(octet_length(subject)+octet_length(body)) as size, count(*) as nb FROM forum INNER JOIN forum_group_list ON forum.group_forum_id = forum_group_list.group_forum_id WHERE group_id = $1 ',
+ array ($group_id));
+ $q = array();
+ $q["name"] = _('Forums');
+ $q["nb"] = 0; $q["size"] = 0;
+ if (db_numrows($res_db) > 0) {
+ $e = db_fetch_array($res_db);
+ $q["nb"] = $e["nb"];
+ $q["size"] = $e["size"];
+ }
+ $quotas[3] = $q;
}
-$quotas[3] = $q;
$quotas_disk = array();
// espace disque
// disk_total_space
-$_quota_block_size = 1024;
-$_quota_block_size = trim(shell_exec("echo $BLOCK_SIZE")) + 0;
+$_quota_block_size = trim(shell_exec('echo $BLOCK_SIZE')) + 0;
if ($_quota_block_size == 0) $_quota_block_size = 1024;
$quota_soft = "";
$quota_hard = "";
$res_db = db_query_params('SELECT quota_soft, quota_hard FROM groups WHERE group_id = $1',
- array($id));
+ array($group_id));
if (db_numrows($res_db) > 0) {
$e = db_fetch_array($res_db);
$quota_hard = $e["quota_hard"];
$quota_tot_scm = 0;
$upload_dir = forge_get_config('upload_dir') . $group->getUnixName();
-$chroot_dir = forge_get_config('chroot');
$ftp_dir = forge_get_config('ftp_upload_dir')."/pub/".$group->getUnixName();
-$group_dir = $chroot_dir.forge_get_config('groupdir_prefix') . "/" . $group->getUnixName();
-$cvs_dir = $chroot_dir.$cvsdir_prefix . "/" . $group->getUnixName();
-$svn_dir = $chroot_dir.$svndir_prefix . "/" . $group->getUnixName();
+$group_dir = forge_get_config('groupdir_prefix') . "/" . $group->getUnixName();
+$cvs_dir = forge_get_config('repos_path', 'scmcvs') . "/" . $group->getUnixName();
+$svn_dir = forge_get_config('repos_path', 'scmsvn') . "/" . $group->getUnixName();
$q["name"] = _('Download project directory');
$q["path"] = "$upload_dir";
<tr>
<td style="border-top:thin solid #808080"><?php echo $q["name"]; ?></td>
<td style="border-top:thin solid #808080" align="right"><?php echo $q["nb"]; ?></td>
- <td style="border-top:thin solid #808080" align="right"><?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["size"]))." "._('MB'); ?></td>
+ <td style="border-top:thin solid #808080" align="right"><?php echo human_readable_bytes($q["size"]); ?></td>
</tr>
<?php
}
</td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"> </td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($sizetot))." "._('MB'); ?>
+ <?php echo human_readable_bytes($sizetot); ?>
</td>
</tr>
</table>
<?php echo $q["quota_label"]; ?>
</td>
<td style="border-top:thin solid #808080" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($q["size"]))." "._('MB'); ?>
+ <?php echo human_readable_bytes($q["size"]); ?>
</td>
</tr>
<?php
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"><?php echo _('Total'); ?></td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080"> </td>
<td style="border-top:thick solid #808080;border-bottom:thick solid #808080" align="right">
- <?php echo $quota_management->add_numbers_separator($quota_management->convert_bytes_to_mega($sizetot))." "._('MB'); ?>
+ <?php echo human_readable_bytes($sizetot); ?>
</td>
</tr>
</table>
* Copyright 2005, Fabio Bertagnin
* Copyright 2011, Franck Villaume - Capgemini
* Copyright (C) 2012 Alain Peyrat - Alcatel-Lucent
+ * Copyright 2019, Franck Villaume - TrivialDev
* http://fusionforge.org
*
* This file is part of FusionForge.
}
$type = getStringFromRequest('type');
-$id = getStringFromRequest('id');
-$pluginname = getStringFromRequest('pluginname');
-$quota_management = plugin_get_object($pluginname);
if (!$type) {
- exit_missing_param($_SERVER['HTTP_REFERER'],array(_('No TYPE specified')),'home');
-} elseif (!$id) {
- exit_missing_param($_SERVER['HTTP_REFERER'],array(_('No ID specified')),'home');
-} else {
- if ($type == 'group') {
- $group = group_get_object($id);
- if ( !$group) {
- exit_no_group();
- }
- if (!$group->usesPlugin($pluginname)) {//check if the group has the quota_management plugin active
- exit_error(sprintf(_('First activate the %s plugin through the Project\'s Admin Interface'),$pluginnname),'home');
+ exit_missing_param($_SERVER['HTTP_REFERER'], array('No TYPE specified'), 'quota_management');
+}
+
+$quota_management = plugin_get_object('quota_management');
+
+switch ($type) {
+ case 'globaladmin': {
+ if (!session_loggedin()) {
+ exit_not_logged_in();
}
- $userperm = $group->getPermission();//we'll check if the user belongs to the group (optional)
- if (!$userperm->IsMember()) {
- exit_permission_denied(_('You are not a member of this project'),'home');
+ session_require_global_perm('forge_admin');
+ $action = getStringFromRequest('action');
+ $view = getStringFromRequest('view');
+ switch ($action) {
+ default:
+ break;
}
- $quota_management->quota_management_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));
- include 'quota_management/www/quota_project.php';
- } elseif ($type == 'admin') {
- $group = group_get_object($id);
- if ( !$group) {
- exit_no_group();
+ $quota_management->getHeader($type);
+ switch ($view) {
+ default:
+ include $quota_management->name.'/view/quota.php';
+ break;
}
- if ( ! ($group->usesPlugin ( $pluginname )) ) {//check if the group has the quota_management plugin active
- exit_error(sprintf(_('First activate the %s plugin through the Project\'s Admin Interface'),$pluginnname),'home');
+ break;
+ }
+ case 'projectadmin': {
+ if (!session_loggedin()) {
+ exit_not_logged_in();
}
- $userperm = $group->getPermission();//we'll check if the user belongs to the group
- if ( !$userperm->IsMember()) {
- exit_permission_denied(_('You are not a member of this project'),'home');
+ $group_id = getIntFromRequest('group_id');
+ session_require_perm('project_admin', $group_id);
+ $action = getStringFromRequest('action');
+ $view = getStringFromRequest('view');
+ switch ($action) {
+ default:
+ break;
}
- //only project admin can access here
- if ( $userperm->isAdmin() ) {
- $quota_management->quota_management_Project_Header(array('title'=>$pluginname . ' Project Plugin!','pagename'=>"$pluginname",'sectionvals'=>array(group_getname($id))));
- include 'quota_management/www/quota_project.php';
- } else {
- exit_permission_denied(_('You are not Admin of this project'), 'home');
+ switch ($view) {
+ default:
+ $quota_management->getHeader($type, $group_id);
+ include $quota_management->name.'/view/quota_project.php';
+ break;
}
}
}
-site_project_footer();
-
// Local Variables:
// mode: php
// c-file-style: "bsd"