Actually, I see how you can do it for the most part. If you create a new
document library, then go to C:\Program Files\Common Files\Microsoft Shared\web
server extensions\60\TEMPLATE\1033\STS\LISTS\DOCLIB
and open schema.xml.
Say for example I want to get rid of New document and upload Document. Do the
following:
Search for the following code block in CAML:
<Switch><Expr><GetVar Name="ModListAllItemsView"/></Expr>
<Case Value="1">
</Case>
<Default>
<HTML><![CDATA[
<td class="ms-toolbar"> <table cellpadding=1 cellspacing=0 border=0> <tr>
<td class="ms-toolbar" nowrap> <a tabindex=2 ID=diidNewItem class="ms-toolbar"
ACCESSKEY=N href="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[createNewDocument();"
title=]]></HTML><HTML>"New"</HTML><HTML><![CDATA[><img
src="/_layouts/images/newdoc.gif" ID="tbbutton1N"
alt=]]></HTML><HTML>"New"</HTML><HTML><![CDATA[ border=0 width=16
height=16></a></td> <td nowrap> <a tabindex=2 class="ms-toolbar" ACCESSKEY=N
ID=diidNewItem href="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[createNewDocument();">]]></HTML> <HTML>New
Document</HTML> <HTML><![CDATA[</a></td> </tr></table></td>
<TD class=ms-separator>|</TD>
<td class="ms-toolbar"> <table cellpadding=1 cellspacing=0 border=0> <tr>
<td class="ms-toolbar" nowrap> <a tabindex=2 ID=diidIOUploadItem
class="ms-toolbar" ACCESSKEY=U href="]]></HTML><URL
Cmd="New"/><HTML><![CDATA[?RootFolder=]]></HTML><GetVar Name="RootFolder"
URLEncode="TRUE"/><HTML><![CDATA[" onclick="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[NewDoclibItem(']]></HTML><ScriptQuote
NotAddingQuote="TRUE"><URL Cmd="New"/></ScriptQuote><HTML><![CDATA[',
false);javascript:return false;" target="_self"
title=]]></HTML><HTML>"Upload"</HTML><HTML><![CDATA[><img
src="/_layouts/images/upload.gif" ID="tbbutton1U"
alt=]]></HTML><HTML>"Upload"</HTML><HTML><![CDATA[ border=0 width=16
height=16></a></td> <td nowrap> <a tabindex=2 class="ms-toolbar" ACCESSKEY=U
ID=diidIOUploadItem href="]]></HTML><URL
Cmd="New"/><HTML><![CDATA[?RootFolder=]]></HTML><GetVar Name="RootFolder"
URLEncode="TRUE"/><HTML><![CDATA[" onclick="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[NewDoclibItem(']]></HTML><ScriptQuote
NotAddingQuote="TRUE"><URL Cmd="New"/></ScriptQuote><HTML><![CDATA[',
false);javascript:return false;" target="_self">]]></HTML> <HTML>Upload
Document</HTML> <HTML><![CDATA[</a></td> </tr></table></td>
]]></HTML>
</Default>
</Switch>
If you remove that, then the New Document and Upload Document disappear. So
what I want to know now, is how can you get the current security context within
caml (reader, contributor, etc). If I can do that then it would look something
like this I would imagine:
<Switch><Expr><GetVar Name="ModListAllItemsView"/></Expr>
<Case Value="1">
</Case>
<Switch><Expr><GetVar Name="SECURITYCONTEXT"/></Expr>
<Case Value="Reader"></Case>
<Default></Default><!-- SHOW NOTHING -->
<Case Value="Contributor"></Case>
<Default>
<HTML><![CDATA[
<td class="ms-toolbar"> <table cellpadding=1 cellspacing=0 border=0> <tr>
<td class="ms-toolbar" nowrap> <a tabindex=2 ID=diidNewItem class="ms-toolbar"
ACCESSKEY=N href="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[createNewDocument();"
title=]]></HTML><HTML>"New"</HTML><HTML><![CDATA[><img
src="/_layouts/images/newdoc.gif" ID="tbbutton1N"
alt=]]></HTML><HTML>"New"</HTML><HTML><![CDATA[ border=0 width=16
height=16></a></td> <td nowrap> <a tabindex=2 class="ms-toolbar" ACCESSKEY=N
ID=diidNewItem href="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[createNewDocument();">]]></HTML> <HTML>New
Document</HTML> <HTML><![CDATA[</a></td> </tr></table></td>
<TD class=ms-separator>|</TD>
<td class="ms-toolbar"> <table cellpadding=1 cellspacing=0 border=0> <tr>
<td class="ms-toolbar" nowrap> <a tabindex=2 ID=diidIOUploadItem
class="ms-toolbar" ACCESSKEY=U href="]]></HTML><URL
Cmd="New"/><HTML><![CDATA[?RootFolder=]]></HTML><GetVar Name="RootFolder"
URLEncode="TRUE"/><HTML><![CDATA[" onclick="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[NewDoclibItem(']]></HTML><ScriptQuote
NotAddingQuote="TRUE"><URL Cmd="New"/></ScriptQuote><HTML><![CDATA[',
false);javascript:return false;" target="_self"
title=]]></HTML><HTML>"Upload"</HTML><HTML><![CDATA[><img
src="/_layouts/images/upload.gif" ID="tbbutton1U"
alt=]]></HTML><HTML>"Upload"</HTML><HTML><![CDATA[ border=0 width=16
height=16></a></td> <td nowrap> <a tabindex=2 class="ms-toolbar" ACCESSKEY=U
ID=diidIOUploadItem href="]]></HTML><URL
Cmd="New"/><HTML><![CDATA[?RootFolder=]]></HTML><GetVar Name="RootFolder"
URLEncode="TRUE"/><HTML><![CDATA[" onclick="javascript:]]></HTML><GetVar
Name="WPQ"/><HTML><![CDATA[NewDoclibItem(']]></HTML><ScriptQuote
NotAddingQuote="TRUE"><URL Cmd="New"/></ScriptQuote><HTML><![CDATA[',
false);javascript:return false;" target="_self">]]></HTML> <HTML>Upload
Document</HTML> <HTML><![CDATA[</a></td> </tr></table></td>
]]></HTML>
</Default>
</Switch>
</Switch>
However, I have no idea how to get the security context you are currently in and
am just paraphrasing what the CAML *might* look like. Does anyone know how you
might do this???