1 <?php # vim:ts=2:sw=2:et:
2 /* For licensing and copyright terms, see the file named LICENSE */
3 include '../../inc/common.php';
5 if (!isset($_REQUEST['pid'])) {
6 throw new Exception("missing project id");
8 $pid = (int)$_REQUEST['pid'];
10 MTrackACL::requireAnyRights("project:$pid", 'modify');
12 $P = MTrackProject::loadById($pid);
14 throw new Exception("invalid project " . htmlentities($pid));
17 if (isset($_REQUEST['group'])) {
18 $group = $_REQUEST['group'];
23 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
24 if (!strlen($group)) {
25 throw new Exception("missing group name");
27 if (isset($_POST['members'])) {
28 $members = $_POST['members'];
33 $CS = MTrackChangeset::begin("project:$pid", "Changed group $group");
34 if (isset($_POST['isnew'])) {
35 MTrackDB::q('insert into groups (name, project) values (?, ?)',
40 'delete from group_membership where groupname = ? and project = ?',
42 foreach ($members as $username) {
44 'insert into group_membership (groupname, project, username) values (?,?,?)',
45 $group, $pid, $username);
48 header("Location: {$ABSWEB}admin/project.php?edit=$pid");
52 mtrack_head($group ? "$P->name - $group" : "$P->name - New Group");
54 echo "<form method='post'><input type='hidden' name='pid' value='$pid'>";
56 echo "<h1>" . htmlentities("$P->name - $group", ENT_QUOTES, 'utf-8') . "</h1>";
57 echo "<input type='hidden' name='group' value='" .
58 htmlentities($group, ENT_QUOTES, 'utf-8') .
61 echo "<h1>" . htmlentities("$P->name - New Group", ENT_QUOTES, 'utf-8') . "</h1>";
62 echo "Group: <input type='text' name='group'>";
63 echo "<input type='hidden' name='isnew' value='1'>";
67 foreach (MTrackDB::q('select userid, fullname from userinfo where active = 1 order by userid')
68 ->fetchAll() as $row) {
69 if (strlen($row[1])) {
70 $disp = "$row[0] - $row[1]";
74 $users[$row[0]] = $disp;
77 foreach (MTrackDB::q('select username from group_membership where project = ? and groupname = ?', $pid, $group)->fetchAll(PDO::FETCH_COLUMN, 0) as $name) {
78 $members[$name] = $name;
80 echo mtrack_multi_select_box('members', "Members", $users, $members);
82 echo "<input type='submit' value='Save'>";