mlanthaler: Bugfix: "if($className == null); $className = $this->stat('subitem_class');" had no effect because of the semicolon after the if-statement.

(merged from branches/gsoc)


git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@41806 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2007-09-14 19:40:56 +00:00
parent c2f57b75de
commit ad3aed7930

View File

@ -12,7 +12,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
Requirements::javascript("jsparty/hover.js"); Requirements::javascript("jsparty/hover.js");
Requirements::javascript("jsparty/scriptaculous/controls.js"); Requirements::javascript("jsparty/scriptaculous/controls.js");
// needed for MemberTableField (Requirements not determined before Ajax-Call) // needed for MemberTableField (Requirements not determined before Ajax-Call)
Requirements::javascript("sapphire/javascript/TableListField.js"); Requirements::javascript("sapphire/javascript/TableListField.js");
Requirements::javascript("sapphire/javascript/TableField.js"); Requirements::javascript("sapphire/javascript/TableField.js");
@ -20,11 +20,11 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
Requirements::javascript("cms/javascript/MemberTableField.js"); Requirements::javascript("cms/javascript/MemberTableField.js");
Requirements::css("jsparty/greybox/greybox.css"); Requirements::css("jsparty/greybox/greybox.css");
Requirements::css("sapphire/css/ComplexTableField.css"); Requirements::css("sapphire/css/ComplexTableField.css");
Requirements::javascript("cms/javascript/SecurityAdmin.js"); Requirements::javascript("cms/javascript/SecurityAdmin.js");
Requirements::javascript("cms/javascript/SecurityAdmin_left.js"); Requirements::javascript("cms/javascript/SecurityAdmin_left.js");
Requirements::javascript("cms/javascript/SecurityAdmin_right.js"); Requirements::javascript("cms/javascript/SecurityAdmin_right.js");
Requirements::javascript("jsparty/greybox/AmiJS.js"); Requirements::javascript("jsparty/greybox/AmiJS.js");
Requirements::javascript("jsparty/greybox/greybox.js"); Requirements::javascript("jsparty/greybox/greybox.js");
} }
@ -38,14 +38,14 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
new TextField("Title", "Group name"), new TextField("Title", "Group name"),
$memberList = new MemberTableField( $memberList = new MemberTableField(
$this, $this,
"Members", "Members",
$record $record
) )
), ),
new Tab("Permissions", new Tab("Permissions",
new LiteralField("", "<p>This section is for advanced users only. new LiteralField("", "<p>This section is for advanced users only.
See <a href=\"http://doc.silverstripe.com/doku.php?id=permissions:codes\" target=\"_blank\">this page</a> See <a href=\"http://doc.silverstripe.com/doku.php?id=permissions:codes\" target=\"_blank\">this page</a>
for more information.</p>"), for more information.</p>"),
new TableField( new TableField(
"Permissions", "Permissions",
@ -57,7 +57,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
) )
) )
); );
if(!Permission::check('EDIT_PERMISSIONS')) $fields->removeFieldFromTab('Root', 'Permissions'); if(!Permission::check('EDIT_PERMISSIONS')) $fields->removeFieldFromTab('Root', 'Permissions');
$memberList->setController($this); $memberList->setController($this);
@ -67,20 +67,20 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$actions = new FieldSet( $actions = new FieldSet(
new FormAction('addmember','Add Member') new FormAction('addmember','Add Member')
); );
$actions->push(new FormAction('save','Save')); $actions->push(new FormAction('save','Save'));
$form = new Form($this, "EditForm", $fields, $actions); $form = new Form($this, "EditForm", $fields, $actions);
$form->loadDataFrom($record); $form->loadDataFrom($record);
return $form; return $form;
} }
} }
public function AddRecordForm() { public function AddRecordForm() {
$m = new MemberTableField( $m = new MemberTableField(
$this, $this,
"Members", "Members",
$this->currentPageID() $this->currentPageID()
); );
return $m->AddRecordForm(); return $m->AddRecordForm();
@ -92,12 +92,12 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
public function autocomplete() { public function autocomplete() {
$fieldName = $this->urlParams['ID']; $fieldName = $this->urlParams['ID'];
$fieldVal = $_REQUEST[$fieldName]; $fieldVal = $_REQUEST[$fieldName];
$matches = DataObject::get("Member","$fieldName LIKE '" . addslashes($fieldVal) . "%'"); $matches = DataObject::get("Member","$fieldName LIKE '" . addslashes($fieldVal) . "%'");
if($matches) { if($matches) {
$result .= "<ul>"; $result .= "<ul>";
foreach($matches as $match) { foreach($matches as $match) {
$data = $match->FirstName; $data = $match->FirstName;
$data .= ",$match->Surname"; $data .= ",$match->Surname";
$data .= ",$match->Email"; $data .= ",$match->Email";
@ -116,21 +116,21 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$parts = split('</?form[^>]*>', $result); $parts = split('</?form[^>]*>', $result);
echo $parts[1]; echo $parts[1];
} }
public function MemberForm() { public function MemberForm() {
$id = $_REQUEST['ID'] ? $_REQUEST['ID'] : Session::get('currentMember'); $id = $_REQUEST['ID'] ? $_REQUEST['ID'] : Session::get('currentMember');
if($id) if($id)
return $this->getMemberForm($id); return $this->getMemberForm($id);
} }
public function getMemberForm($id) { public function getMemberForm($id) {
if($id && $id != 'new') $record = DataObject::get_one("Member", "`Member`.ID = $id"); if($id && $id != 'new') $record = DataObject::get_one("Member", "`Member`.ID = $id");
if($record || $id == 'new') { if($record || $id == 'new') {
$fields = new FieldSet( $fields = new FieldSet(
new HiddenField('MemberListBaseGroup', '', $this->currentPageID() ) new HiddenField('MemberListBaseGroup', '', $this->currentPageID() )
); );
if( $extraFields = $record->getCMSFields() ) if( $extraFields = $record->getCMSFields() )
foreach( $extraFields as $extra ) foreach( $extraFields as $extra )
$fields->push( $extra ); $fields->push( $extra );
@ -138,10 +138,10 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$fields->push($idField = new HiddenField("ID")); $fields->push($idField = new HiddenField("ID"));
$fields->push($groupIDField = new HiddenField("GroupID")); $fields->push($groupIDField = new HiddenField("GroupID"));
$actions = new FieldSet(); $actions = new FieldSet();
$actions->push(new FormAction('savemember','Save')); $actions->push(new FormAction('savemember','Save'));
$form = new Form($this, "MemberForm", $fields, $actions); $form = new Form($this, "MemberForm", $fields, $actions);
if($record) $form->loadDataFrom($record); if($record) $form->loadDataFrom($record);
@ -151,50 +151,50 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
return $form; return $form;
} }
} }
function savemember() { function savemember() {
$data = $_REQUEST; $data = $_REQUEST;
$className = $this->stat('subitem_class'); $className = $this->stat('subitem_class');
$id = $_REQUEST['ID']; $id = $_REQUEST['ID'];
if($id == 'new') $id = null; if($id == 'new') $id = null;
if($id) { if($id) {
$record = DataObject::get_one($className, "`$className`.ID = $id"); $record = DataObject::get_one($className, "`$className`.ID = $id");
} else { } else {
$record = new $className(); $record = new $className();
} }
$record->update($data); $record->update($data);
$record->ID = $id; $record->ID = $id;
$record->write(); $record->write();
$record->Groups()->add($data['GroupID']); $record->Groups()->add($data['GroupID']);
FormResponse::add("reloadMemberTableField();"); FormResponse::add("reloadMemberTableField();");
return FormResponse::respond(); return FormResponse::respond();
} }
function addmember($className=null) { function addmember($className=null) {
$data = $_REQUEST; $data = $_REQUEST;
unset($data['ID']); unset($data['ID']);
if($className == null); if($className == null)
$className = $this->stat('subitem_class'); $className = $this->stat('subitem_class');
$record = new $className(); $record = new $className();
$record->update($data); $record->update($data);
$record->write(); $record->write();
if($data['GroupID']) if($data['GroupID'])
$record->Groups()->add($data['GroupID']); $record->Groups()->add($data['GroupID']);
FormResponse::add("reloadMemberTableField();"); FormResponse::add("reloadMemberTableField();");
return FormResponse::respond(); return FormResponse::respond();
} }
public function removememberfromgroup() { public function removememberfromgroup() {
$groupID = $this->urlParams['ID']; $groupID = $this->urlParams['ID'];
$memberID = $this->urlParams['OtherID']; $memberID = $this->urlParams['OtherID'];
@ -202,14 +202,14 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$member = DataObject::get_by_id('Member', $memberID); $member = DataObject::get_by_id('Member', $memberID);
$member->Groups()->remove($groupID); $member->Groups()->remove($groupID);
FormResponse::add("reloadMemberTableField();"); FormResponse::add("reloadMemberTableField();");
} else { } else {
user_error("SecurityAdmin::removememberfromgroup: Bad parameters: Group=$groupID, Member=$memberID", E_USER_ERROR); user_error("SecurityAdmin::removememberfromgroup: Bad parameters: Group=$groupID, Member=$memberID", E_USER_ERROR);
} }
return FormResponse::respond(); return FormResponse::respond();
} }
/** /**
* Return the entire site tree as a nested set of ULs * Return the entire site tree as a nested set of ULs
*/ */
@ -217,24 +217,24 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$className = "Group"; $className = "Group";
$obj = singleton($className); $obj = singleton($className);
// getChildrenAsUL is a flexible and complex way of traversing the tree // getChildrenAsUL is a flexible and complex way of traversing the tree
$siteTree = $obj->getChildrenAsUL("", $siteTree = $obj->getChildrenAsUL("",
' "<li id=\"record-$child->ID\" class=\"$child->class " . ($child->Locked ? " nodelete" : "") . ' . ' "<li id=\"record-$child->ID\" class=\"$child->class " . ($child->Locked ? " nodelete" : "") . ' .
' ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' . ' ($extraArg->isCurrentPage($child) ? " current" : "") . "\">" . ' .
' "<a href=\"" . Director::link("admin", "show", $child->ID) . "\" >" . $child->TreeTitle() . "</a>" ',$this); ' "<a href=\"" . Director::link("admin", "show", $child->ID) . "\" >" . $child->TreeTitle() . "</a>" ',$this);
$siteTree = "<ul id=\"sitetree\" class=\"tree unformatted\">" . $siteTree = "<ul id=\"sitetree\" class=\"tree unformatted\">" .
"<li id=\"record-0\" class=\"Root\">" . "<li id=\"record-0\" class=\"Root\">" .
"<a href=\"admin/security/show/0\" >Security groups</a>" "<a href=\"admin/security/show/0\" >Security groups</a>"
. $siteTree . . $siteTree .
"</li>" . "</li>" .
"</ul>"; "</ul>";
return $siteTree; return $siteTree;
} }
public function addgroup() { public function addgroup() {
$parent = $_REQUEST['ParentID'] ? $_REQUEST['ParentID'] : 0; $parent = $_REQUEST['ParentID'] ? $_REQUEST['ParentID'] : 0;
$p = new Group(); $p = new Group();
@ -244,7 +244,7 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
$p->write(); $p->write();
return $this->returnItemToUser($p); return $this->returnItemToUser($p);
} }
public function newmember() { public function newmember() {
Session::clear('currentMember'); Session::clear('currentMember');
$newMemberForm = array( $newMemberForm = array(
@ -253,82 +253,82 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
// This should be using FormResponse ;-) // This should be using FormResponse ;-)
if(Director::is_ajax()) { if(Director::is_ajax()) {
SSViewer::setOption('rewriteHashlinks', false); SSViewer::setOption('rewriteHashlinks', false);
$customised = $this->customise($newMemberForm); $customised = $this->customise($newMemberForm);
$result = $customised->renderWith($this->class . "_rightbottom"); $result = $customised->renderWith($this->class . "_rightbottom");
$parts = split('</?form[^>]*>', $result); $parts = split('</?form[^>]*>', $result);
return $parts[1]; return $parts[1];
} else { } else {
return $newMemberForm; return $newMemberForm;
} }
} }
public function EditedMember() { public function EditedMember() {
if(Session::get('currentMember')) if(Session::get('currentMember'))
return DataObject::get_by_id("Member", Session::get('currentMember')); return DataObject::get_by_id("Member", Session::get('currentMember'));
} }
public function Link($action = null) { public function Link($action = null) {
if(!$action) $action = "index"; if(!$action) $action = "index";
return "admin/security/$action/" . $this->currentPageID(); return "admin/security/$action/" . $this->currentPageID();
} }
public function listmembers( $baseGroup = null ) { public function listmembers( $baseGroup = null ) {
if( !$baseGroup ) if( !$baseGroup )
$baseGroup = $this->urlParams['ID']; $baseGroup = $this->urlParams['ID'];
// Debug::message( $_REQUEST['MemberListOrderByField'] ); // Debug::message( $_REQUEST['MemberListOrderByField'] );
// construct the filter and sort // construct the filter and sort
if( $_REQUEST['MemberListOrderByField'] ) if( $_REQUEST['MemberListOrderByField'] )
$sort = "`" . $_REQUEST['MemberListOrderByField'] . "`" . addslashes( $_REQUEST['MemberListOrderByOrder'] ); $sort = "`" . $_REQUEST['MemberListOrderByField'] . "`" . addslashes( $_REQUEST['MemberListOrderByOrder'] );
$whereClauses = array(); $whereClauses = array();
$search = addslashes( $_REQUEST['MemberListSearch'] ); $search = addslashes( $_REQUEST['MemberListSearch'] );
if( $_REQUEST['MemberListPage'] ) { if( $_REQUEST['MemberListPage'] ) {
$pageSize = 10; $pageSize = 10;
$limitClause = ( $_REQUEST['MemberListPage'] ) . ", $pageSize"; $limitClause = ( $_REQUEST['MemberListPage'] ) . ", $pageSize";
} }
if( !empty($_REQUEST['MemberListSearch']) ) if( !empty($_REQUEST['MemberListSearch']) )
$whereClauses[] = "( `Email`='$search' OR `FirstName`='$search' OR `Surname`='$search' )"; $whereClauses[] = "( `Email`='$search' OR `FirstName`='$search' OR `Surname`='$search' )";
if( is_numeric( $_REQUEST['MemberListBaseGroup'] ) ) { if( is_numeric( $_REQUEST['MemberListBaseGroup'] ) ) {
$whereClauses[] = "`GroupID`='".$_REQUEST['MemberListBaseGroup']."'"; $whereClauses[] = "`GroupID`='".$_REQUEST['MemberListBaseGroup']."'";
$join = "INNER JOIN `Group_Members` ON `MemberID`=`Member`.`ID`"; $join = "INNER JOIN `Group_Members` ON `MemberID`=`Member`.`ID`";
} }
// $_REQUEST['showqueries'] = 1; // $_REQUEST['showqueries'] = 1;
$members = DataObject::get('Member', implode( ' AND ', $whereClauses ), $sort, $join, $limitClause ); $members = DataObject::get('Member', implode( ' AND ', $whereClauses ), $sort, $join, $limitClause );
if( is_numeric( $_REQUEST['MemberListGroup'] ) ) { if( is_numeric( $_REQUEST['MemberListGroup'] ) ) {
$baseMembers = new DataObjectSet(); $baseMembers = new DataObjectSet();
if( $members ) if( $members )
foreach( $members as $member ) foreach( $members as $member )
if( $member->inGroup( $_REQUEST['MemberListGroup'] ) ) if( $member->inGroup( $_REQUEST['MemberListGroup'] ) )
$baseMembers->push( $member ); $baseMembers->push( $member );
} else } else
$baseMembers = $members; $baseMembers = $members;
$baseMembers = null; $baseMembers = null;
// user_error( $_REQUEST['MemberListBaseGroup'], E_USER_ERROR ); // user_error( $_REQUEST['MemberListBaseGroup'], E_USER_ERROR );
$memberListField = new MemberTableField( $memberListField = new MemberTableField(
$this, $this,
'MemberList', 'MemberList',
$_REQUEST['MemberListBaseGroup'], $_REQUEST['MemberListBaseGroup'],
$baseMembers, $baseMembers,
$_REQUEST['MemberListDontShowPassword'] $_REQUEST['MemberListDontShowPassword']
); );
return $memberListField->renderWith('MemberList_Table'); return $memberListField->renderWith('MemberList_Table');
} }