想要比如这样的效果
a添加一条记录,这条记录只有a能够编辑删除,其他人只能看不能编辑删除
ps:前两天不知道怎么弄的以为成功了,就是其他人只有“通知我”“导出事件”两个按钮,但是今天又不知道怎么的,
其他人也能看到所有按钮。
sharepoint权限控制我老是搞不清楚,请帮忙解决
ps:现在的csdn很怪,我刚才试图提新的问题(没有发布),可用分是100分,后来我把以前有一个帖子结了,回过头来再
进提问题的页面可用分只有50分了。
18 个解决方案
#1
目前就想到用API控制了
#2
呵呵,可以用JS按制操作菜单是否显示就可以了!
#3
这么复杂,moss里面没有设置吗?
#4
这个需要在EventReceiver中来做,在ItemDeleting事件中,如果当前用户等于item["Author"],就删除,否则
e.Cancel = true;
e.Cancel = true;
#5
能说的详细一点吗?
问题1:我前面进 设置--》列表设置--》高级设置 做出如下设置:
读取权限 选 所有项目
编辑权限 选 仅自己项目
这样设置效果只达到一半:虽然只有自己能编辑删除其他人不能编辑删除,但是编辑的页面还是出来的,只有点击确定后才知道自己有没有权限编辑或删除。
能不能做到,没有权限编辑的用户连DispForm.aspx里“编辑”和“删除”的按钮都隐藏掉?
问题2(新):用户要求calendar.aspx这个页面能按照部门选的,比如做个下拉框让用户选择部门查看,只关心自己部门的日历,能不能提供以下思路和解决办法?
#6
最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看
#7
能说的再详细点吗?谢谢
#8
哦,不好意思,列表可以,日历不行,可以开启内容审批来实现,不过这样就需要一步审批工作了,还有个办法是你用spd写一个简单的工作流,创建以后自动把其他人的权限移除,只剩下作者自己和管理员
#9
关于5# 问题2 能不能这样:
做视图,按照部门建立视图,先把各个部门的视图一个个建好让用户用就是了。
但是这有一个问题,“部门”这个栏怎么添加比较好,或者说是让用户在新建时把自己的“部门”插入某一个栏,然后改视图的时候过滤此条件,还是什么的。
做视图,按照部门建立视图,先把各个部门的视图一个个建好让用户用就是了。
但是这有一个问题,“部门”这个栏怎么添加比较好,或者说是让用户在新建时把自己的“部门”插入某一个栏,然后改视图的时候过滤此条件,还是什么的。
#10
你好像回复错帖子了。。
#11
没回复错呀
这个关于部门的筛选 我5楼也提到过的,求大侠帮忙
#12
我前面试过这样一个方法:
在日历里新建一个叫“部门”的栏,这时在视图里就能看到“部门”的筛选条件,并且在新建的时候有“部门”的字段了,随后试图在新的部门里键入“财务”,然后到视图里筛选“财务”是可以的。
问题是,在填写表单的时候不可能让用户填写“财务”两个字的,最好让用户登录时自动取出部门的值,然后就可以筛选了,但是这要怎么做呢?
于是我试着建了一个基于calender的listdefinition,想在ItemEventReceiver.cs里ItemAdded动脑筋,但是有几个问题没有了方向:
1.怎么在listdefinition里新建一个“部门”的字段,在哪里建?
2.ItemAdded里面的代码应该怎么写?
在日历里新建一个叫“部门”的栏,这时在视图里就能看到“部门”的筛选条件,并且在新建的时候有“部门”的字段了,随后试图在新的部门里键入“财务”,然后到视图里筛选“财务”是可以的。
问题是,在填写表单的时候不可能让用户填写“财务”两个字的,最好让用户登录时自动取出部门的值,然后就可以筛选了,但是这要怎么做呢?
于是我试着建了一个基于calender的listdefinition,想在ItemEventReceiver.cs里ItemAdded动脑筋,但是有几个问题没有了方向:
1.怎么在listdefinition里新建一个“部门”的字段,在哪里建?
2.ItemAdded里面的代码应该怎么写?
#13
部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的
#14
取出来后(ad我没有权限设,要问网管的,假设已近取出来)怎么把当前登录人的部门信息插入到日历的某一条记录,并且在做视图的时候把他过滤掉?
在12楼已经试过直接在moss站点上新建栏的方法,但是不能让用户手动输入到“部门”啊
#15
进管理中心---共享服务管理(我的是SharedServices1)----用户配置文件和我的网站-----
用户配置文件和属性----查看用户配置文件
这时候就可以看到原先在moss站点点击过“我的网站”,被自动初始化过的用户的名单
这里就可以改部门了
ps:不过这里有个功能(配置配置文件导入)我建议如果不是ad管理员的话,不建议使用,我感觉有可能覆盖原来的ad信息
顺便贴上读取域用户的部门的代码
public override void ItemAdded(SPItemEventProperties properties)
{
using (SPSite site = new SPSite("http://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
SPUser user = web.CurrentUser;
ServerContext context = ServerContext.GetContext(site);
UserProfileManager profileManager = new UserProfileManager(context);
UserProfile profile = profileManager.GetUserProfile(user.LoginName.ToString());
properties.ListItem["dept"] = profile["Department"].Value.ToString();
properties.ListItem.SystemUpdate();
}
}
}
然后在视图里加视图 比如 部门=“信息科”
用户配置文件和属性----查看用户配置文件
这时候就可以看到原先在moss站点点击过“我的网站”,被自动初始化过的用户的名单
这里就可以改部门了
ps:不过这里有个功能(配置配置文件导入)我建议如果不是ad管理员的话,不建议使用,我感觉有可能覆盖原来的ad信息
顺便贴上读取域用户的部门的代码
public override void ItemAdded(SPItemEventProperties properties)
{
using (SPSite site = new SPSite("http://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
SPUser user = web.CurrentUser;
ServerContext context = ServerContext.GetContext(site);
UserProfileManager profileManager = new UserProfileManager(context);
UserProfile profile = profileManager.GetUserProfile(user.LoginName.ToString());
properties.ListItem["dept"] = profile["Department"].Value.ToString();
properties.ListItem.SystemUpdate();
}
}
}
然后在视图里加视图 比如 部门=“信息科”
#16
用户还是要求如果没有权限“编辑项目”“删除项目”两个按钮不能显示出来,
能不能说说
“最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看”
能不能说说
“最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看”
#17
什么逻辑?
错了,用canlder视图绑定就行了
#18
楼主解决问题1了吗? 求指教,谢谢!
#1
目前就想到用API控制了
#2
呵呵,可以用JS按制操作菜单是否显示就可以了!
#3
这么复杂,moss里面没有设置吗?
#4
这个需要在EventReceiver中来做,在ItemDeleting事件中,如果当前用户等于item["Author"],就删除,否则
e.Cancel = true;
e.Cancel = true;
#5
能说的详细一点吗?
问题1:我前面进 设置--》列表设置--》高级设置 做出如下设置:
读取权限 选 所有项目
编辑权限 选 仅自己项目
这样设置效果只达到一半:虽然只有自己能编辑删除其他人不能编辑删除,但是编辑的页面还是出来的,只有点击确定后才知道自己有没有权限编辑或删除。
能不能做到,没有权限编辑的用户连DispForm.aspx里“编辑”和“删除”的按钮都隐藏掉?
问题2(新):用户要求calendar.aspx这个页面能按照部门选的,比如做个下拉框让用户选择部门查看,只关心自己部门的日历,能不能提供以下思路和解决办法?
#6
最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看
#7
能说的再详细点吗?谢谢
#8
哦,不好意思,列表可以,日历不行,可以开启内容审批来实现,不过这样就需要一步审批工作了,还有个办法是你用spd写一个简单的工作流,创建以后自动把其他人的权限移除,只剩下作者自己和管理员
#9
关于5# 问题2 能不能这样:
做视图,按照部门建立视图,先把各个部门的视图一个个建好让用户用就是了。
但是这有一个问题,“部门”这个栏怎么添加比较好,或者说是让用户在新建时把自己的“部门”插入某一个栏,然后改视图的时候过滤此条件,还是什么的。
做视图,按照部门建立视图,先把各个部门的视图一个个建好让用户用就是了。
但是这有一个问题,“部门”这个栏怎么添加比较好,或者说是让用户在新建时把自己的“部门”插入某一个栏,然后改视图的时候过滤此条件,还是什么的。
#10
你好像回复错帖子了。。
#11
没回复错呀
这个关于部门的筛选 我5楼也提到过的,求大侠帮忙
#12
我前面试过这样一个方法:
在日历里新建一个叫“部门”的栏,这时在视图里就能看到“部门”的筛选条件,并且在新建的时候有“部门”的字段了,随后试图在新的部门里键入“财务”,然后到视图里筛选“财务”是可以的。
问题是,在填写表单的时候不可能让用户填写“财务”两个字的,最好让用户登录时自动取出部门的值,然后就可以筛选了,但是这要怎么做呢?
于是我试着建了一个基于calender的listdefinition,想在ItemEventReceiver.cs里ItemAdded动脑筋,但是有几个问题没有了方向:
1.怎么在listdefinition里新建一个“部门”的字段,在哪里建?
2.ItemAdded里面的代码应该怎么写?
在日历里新建一个叫“部门”的栏,这时在视图里就能看到“部门”的筛选条件,并且在新建的时候有“部门”的字段了,随后试图在新的部门里键入“财务”,然后到视图里筛选“财务”是可以的。
问题是,在填写表单的时候不可能让用户填写“财务”两个字的,最好让用户登录时自动取出部门的值,然后就可以筛选了,但是这要怎么做呢?
于是我试着建了一个基于calender的listdefinition,想在ItemEventReceiver.cs里ItemAdded动脑筋,但是有几个问题没有了方向:
1.怎么在listdefinition里新建一个“部门”的字段,在哪里建?
2.ItemAdded里面的代码应该怎么写?
#13
部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的
#14
取出来后(ad我没有权限设,要问网管的,假设已近取出来)怎么把当前登录人的部门信息插入到日历的某一条记录,并且在做视图的时候把他过滤掉?
在12楼已经试过直接在moss站点上新建栏的方法,但是不能让用户手动输入到“部门”啊
#15
进管理中心---共享服务管理(我的是SharedServices1)----用户配置文件和我的网站-----
用户配置文件和属性----查看用户配置文件
这时候就可以看到原先在moss站点点击过“我的网站”,被自动初始化过的用户的名单
这里就可以改部门了
ps:不过这里有个功能(配置配置文件导入)我建议如果不是ad管理员的话,不建议使用,我感觉有可能覆盖原来的ad信息
顺便贴上读取域用户的部门的代码
public override void ItemAdded(SPItemEventProperties properties)
{
using (SPSite site = new SPSite("http://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
SPUser user = web.CurrentUser;
ServerContext context = ServerContext.GetContext(site);
UserProfileManager profileManager = new UserProfileManager(context);
UserProfile profile = profileManager.GetUserProfile(user.LoginName.ToString());
properties.ListItem["dept"] = profile["Department"].Value.ToString();
properties.ListItem.SystemUpdate();
}
}
}
然后在视图里加视图 比如 部门=“信息科”
用户配置文件和属性----查看用户配置文件
这时候就可以看到原先在moss站点点击过“我的网站”,被自动初始化过的用户的名单
这里就可以改部门了
ps:不过这里有个功能(配置配置文件导入)我建议如果不是ad管理员的话,不建议使用,我感觉有可能覆盖原来的ad信息
顺便贴上读取域用户的部门的代码
public override void ItemAdded(SPItemEventProperties properties)
{
using (SPSite site = new SPSite("http://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
SPUser user = web.CurrentUser;
ServerContext context = ServerContext.GetContext(site);
UserProfileManager profileManager = new UserProfileManager(context);
UserProfile profile = profileManager.GetUserProfile(user.LoginName.ToString());
properties.ListItem["dept"] = profile["Department"].Value.ToString();
properties.ListItem.SystemUpdate();
}
}
}
然后在视图里加视图 比如 部门=“信息科”
#16
用户还是要求如果没有权限“编辑项目”“删除项目”两个按钮不能显示出来,
能不能说说
“最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看”
能不能说说
“最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看”
#17
什么逻辑?
错了,用canlder视图绑定就行了
#18
楼主解决问题1了吗? 求指教,谢谢!