$_SESSION[siteObj]->setField("active", $_REQUEST[active]); } if ($_REQUEST[viewpermissions] == "everyone") { $_SESSION[siteObj]->setUserPermissionDown("view", "everyone", "1"); $_SESSION[siteObj]->addEditor("institute"); // $_SESSION[siteObj]->updatePermissionsDB(); $_SESSION[settings][viewpermissions] = ""; } if ($_REQUEST[viewpermissions] == "institute") { $_SESSION[siteObj]->setUserPermissionDown("view", "everyone", "0"); $_SESSION[siteObj]->setUserPermissionDown("view", "institute", "1"); // $_SESSION[siteObj]->updatePermissionsDB(); $_SESSION[settings][viewpermissions] = ""; } if ($_REQUEST[viewpermissions] == "class") { if (isgroup($_SESSION[settings][className])) { // print "<br />".$_SESSION[siteObj]->getField("name")."is a classgroup"; $classes = group::getClassesFromName($_SESSION[settings][className]); // print "<br />Classes contained:<pre>"; print_r($classes); print "</pre>"; foreach ($classes as $class) { if (!$_SESSION[siteObj]->isEditor($class)) { $_SESSION[siteObj]->addEditor($class); // print "<br />Adding $class as editor"; } $_SESSION[siteObj]->setUserPermissionDown("view", $class, "1"); // print "<br />Setting 1 view permission for $class"; } } else { if (!$_SESSION[siteObj]->isEditor($_SESSION[settings][className])) { $_SESSION[siteObj]->addEditor($_SESSION[settings][className]); }
print "<td align='center' style='background-color: #bbb;'>Edit</td>"; print "<td align='center' style='background-color: #bbb;'>Del</td>"; // } print "</tr>"; $color = 0; print "<tr>"; print "<td class='td{$color}' style='font-variant: small-caps'><a href='#' onClick{$nl}='opener.window.location=\"index.php?{$sid}&action=viewsite&site={$site}\"'>{$sa['title']}</a></td>"; $permissions = decode_array($sa[permissions]); // foreach($editors as $user) { $classes = getuserclasses($user); if (isclass($site)) { // print "is class"; //debug foreach ($permissions as $e => $p) { if (isclass($e)) { $l = array(); if ($r = isgroup($e)) { $l = $r; } else { $l[] = $e; } foreach ($l as $c) { if ($classes[$c]) { $user = $e; } } } } } for ($i = 0; $i < 3; $i++) { print "<td class='td{$color}' align='center'" . ($i == 0 ? " style='border-left: 2px solid #fff;'" : "") . ">"; print $permissions[$user][$i] ? "X" : " ";
function returnEditorOverlap($classes) { $toCheck = array(); // print_r($classes); foreach ($this->editors as $u) { $good = 0; // print "$u - "; // if (isclass($u)) print "class"; $c = array(); if (isclass($u)) { $c[] = $u; } if ($g = isgroup($u)) { $c = array_merge($c, $g); } foreach ($c as $class) { if (is_array($classes[$class])) { $good = 1; } } if ($good) { $toCheck[] = $u; } } /* print_r($toCheck); */ return $toCheck; }
/* end bug-fix. Again, thank you, Adam. */ $_SESSION[obj]->updateDB(1); // print_r($_SESSION[obj]->editorsToDelete); $_SESSION[obj]->deletePendingEditors(); // echo "<pre>"; // print_r($_SESSION[obj]); unset($_SESSION[obj], $_SESSION[editors]); Header("Location: close.php"); exit; } } /****************************************************************************** * Editor Actions: ******************************************************************************/ if ($isOwner && $_REQUEST[edaction] == 'add') { if (isgroup($_REQUEST[edname])) { $classes = group::getClassesFromName($_REQUEST[edname]); foreach ($classes as $class) { $_SESSION[obj]->addEditor($class); } } else { $_SESSION[obj]->addEditor($_REQUEST[edname]); } } if ($isOwner && $_REQUEST[edaction] == 'del') { $_SESSION[obj]->delEditor($_REQUEST[edname]); } /****************************************************************************** * switch between forms 1 and 2 ******************************************************************************/ $step = $_REQUEST['step'];
function outputForm(&$o, $d = 0, $canAddEditors = true) { global $cfg; $sitename = $o->owning_site; if ($_SESSION[settings][edit] && !$o->builtPermissions) { $o->buildPermissionsArray(); } // ---- Editor actions ---- if ($_REQUEST[edaction] == 'add') { if (isgroup($_REQUEST[edname])) { $classes = group::getClassesFromName($_REQUEST[edname]); foreach ($classes as $class) { $o->addEditor($class); } } else { $o->addEditor($_REQUEST[edname]); } } if ($_REQUEST[edaction] == 'del') { $o->delEditor($_REQUEST[edname]); } printc("\n<input type='hidden' name='edaction' value='' />"); printc("\n<input type='hidden' name='edname' value='' />"); if ($className = $sitename) { print "<script type='text/javascript'>"; print "\n// <![CDATA["; print "\nfunction addClassEditor() {"; print "\n\tf = document.addform;"; print "\n\tf.edaction.value='add';"; print "\n\tf.edname.value='{$className}';"; print "\n\tf.submit();"; print "\n}"; print "\n// ]]>"; print "\n</script>"; } $a = array(0 => 4, 1 => 1); printc("\n<style type='text/css'>th, .td0, .td1 {font-size: 10px;}</style>"); printc("\n<table width='100%' style='border: 1px solid gray'>"); printc("\n<tr><th width='50%'>name</th>\t<th colspan='" . $a[$d] . "' width='30%'>permissions</th>"); if ($canAddEditors) { printc("<th>del</th>"); } printc("</tr>"); printc("\n<tr><th> </th>" . ($d ? "<th>discuss</th>" : "<th>add</th><th>edit</th><th>delete</th><th>view</th>")); if ($canAddEditors) { printc("<th> </th>"); } printc("</tr>"); if ($edlist = $o->getEditors()) { $permissions = $o->getPermissions(); if (count($edlist)) { $color = 0; foreach ($edlist as $e) { // :: hack :: // this is needed until "anonymous" discussion is enabled. could be v 2.0 //if ($e == 'everyone') continue; // :: /hack :: printc("\n<tr><td class='td{$color}' align='left'>"); if ($e == "everyone") { printc("Everyone (will override other entries)</td>"); } else { if ($e == "institute") { printc($cfg[inst_name] . " Users</td>"); } else { printc(ldapfname($e) . " ({$e})</td>"); } } for ($i = 0; $i < 5; $i++) { $skip = 0; $nob = 0; if ($d && $i < 4) { $skip = 1; } if (!$d && $i == 4) { $skip = 1; } if (!$d && (($e == 'everyone' || $e == 'institute') && $i != 3)) { $nob = 1; } if (!$skip) { printc("\n<td class='td{$color}' align='center'>"); if ($nob) { printc(" "); } else { printc("\n<input type='checkbox' name='permissions[{$e}][{$i}]' value='1'" . ($permissions[$e][$i] ? " checked='checked'" : "") . " />"); } printc("</td>"); } if ($skip || $nob) { printc("\n<input type='hidden' name='permissions[{$e}][{$i}]' value='" . $permissions[$e][$i] . "' />"); } } printc("</td>"); if ($canAddEditors) { printc("\n<td class='td{$color}' align='center'>"); if ($e == 'everyone' || $e == 'institute') { printc(" "); } else { printc("<a href='#' onclick='delEditor(\"{$e}\");'>remove</a>"); } printc("</td>"); } printc("</tr>"); $color = 1 - $color; } } } else { printc("\n<tr><td class='td1' > </td><td class='td1' colspan=" . ($a[$d] + 1) . ">no editors added</td></tr>"); } if ($canAddEditors) { printc("\n<tr><th colspan=" . ($a[$d] + 1) . ">"); $className = array(); if (isgroup($sitename)) { $className = $sitename; } else { $className = $sitename; } if (is_array($className)) { foreach ($className as $class) { if (!in_array($class, $edlist)) { printc("<a href='#' onclick='addClassEditor();'>Add students in " . $sitename . "</a><br />"); break; } else { printc(" "); } } } printc("</th><th><a href='add_editor.php?{$sid}' target='addeditor' onclick='doWindow(\"addeditor\",400,250);'>add editor</a></th></tr>"); } printc("\n</table>"); // if ($_SESSION[settings][edit]) printc("<a href='editor_access.php?$sid&site=".$sitename."' onclick='doWindow(\"permissions\",600,400)' target='permissions'>Permissions as of last save</a>"); }
function ldapfname($uname) { $uname = strtolower($uname); if (isgroup($uname)) { return "Students in group"; } if (isclass($uname)) { return "Students in class"; } if ($fname = db_get_value("user", "user_fname", "user_uname='" . addslashes($uname) . "'")) { return $fname; } else { return "n/a"; } }
function ldapfname($uname) { $uname = strtolower($uname); if (isgroup($uname)) { return "Students in group"; } if (isclass($uname)) { return "Students in class"; } if ($fname = db_get_value("user", "user_fname", "user_uname='" . addslashes($uname) . "'")) { return $fname; } $r = userlookup($uname, LDAP_USER, LDAP_EXACT, LDAP_LASTNAME, 1); return $r[$uname]; }