sharepoint 日历权限怎么控制???

时间:2021-08-18 15:24:26
sharepoint 日历权限怎么控制???

想要比如这样的效果
a添加一条记录,这条记录只有a能够编辑删除,其他人只能看不能编辑删除

ps:前两天不知道怎么弄的以为成功了,就是其他人只有“通知我”“导出事件”两个按钮,但是今天又不知道怎么的,
其他人也能看到所有按钮。

sharepoint权限控制我老是搞不清楚,请帮忙解决







ps:现在的csdn很怪,我刚才试图提新的问题(没有发布),可用分是100分,后来我把以前有一个帖子结了,回过头来再
进提问题的页面可用分只有50分了。

18 个解决方案

#1


目前就想到用API控制了

#2


呵呵,可以用JS按制操作菜单是否显示就可以了!

#3


这么复杂,moss里面没有设置吗?

#4


这个需要在EventReceiver中来做,在ItemDeleting事件中,如果当前用户等于item["Author"],就删除,否则
e.Cancel = true;

#5


引用 2 楼 hqpy 的回复:
呵呵,可以用JS按制操作菜单是否显示就可以了!

能说的详细一点吗?

引用 4 楼 time_is_life 的回复:
这个需要在EventReceiver中来做,在ItemDeleting事件中,如果当前用户等于item["Author"],就删除,否则
e.Cancel = true;

问题1:我前面进 设置--》列表设置--》高级设置 做出如下设置:
读取权限 选 所有项目
编辑权限 选 仅自己项目
这样设置效果只达到一半:虽然只有自己能编辑删除其他人不能编辑删除,但是编辑的页面还是出来的,只有点击确定后才知道自己有没有权限编辑或删除。
能不能做到,没有权限编辑的用户连DispForm.aspx里“编辑”和“删除”的按钮都隐藏掉?


问题2(新):用户要求calendar.aspx这个页面能按照部门选的,比如做个下拉框让用户选择部门查看,只关心自己部门的日历,能不能提供以下思路和解决办法?

#6


最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看

#7


引用 6 楼 cshadow 的回复:
最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看

能说的再详细点吗?谢谢

#8


引用 7 楼 huxuanchenxy 的回复:
引用 6 楼 cshadow 的回复:
最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看

能说的再详细点吗?谢谢


哦,不好意思,列表可以,日历不行,可以开启内容审批来实现,不过这样就需要一步审批工作了,还有个办法是你用spd写一个简单的工作流,创建以后自动把其他人的权限移除,只剩下作者自己和管理员

#9


关于5# 问题2 能不能这样:
做视图,按照部门建立视图,先把各个部门的视图一个个建好让用户用就是了。

但是这有一个问题,“部门”这个栏怎么添加比较好,或者说是让用户在新建时把自己的“部门”插入某一个栏,然后改视图的时候过滤此条件,还是什么的。

#10


你好像回复错帖子了。。

#11


引用 10 楼 cshadow 的回复:
你好像回复错帖子了。。


没回复错呀
这个关于部门的筛选 我5楼也提到过的,求大侠帮忙

#12


我前面试过这样一个方法:
在日历里新建一个叫“部门”的栏,这时在视图里就能看到“部门”的筛选条件,并且在新建的时候有“部门”的字段了,随后试图在新的部门里键入“财务”,然后到视图里筛选“财务”是可以的。
问题是,在填写表单的时候不可能让用户填写“财务”两个字的,最好让用户登录时自动取出部门的值,然后就可以筛选了,但是这要怎么做呢?

于是我试着建了一个基于calender的listdefinition,想在ItemEventReceiver.cs里ItemAdded动脑筋,但是有几个问题没有了方向:

1.怎么在listdefinition里新建一个“部门”的字段,在哪里建?
2.ItemAdded里面的代码应该怎么写?

#13


部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的

#14


引用 13 楼 cshadow 的回复:
部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的

取出来后(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();
                }
            }
        }

然后在视图里加视图 比如 部门=“信息科”



#16


用户还是要求如果没有权限“编辑项目”“删除项目”两个按钮不能显示出来,
能不能说说
“最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看”

#17


引用 13 楼 cshadow 的回复:
部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的

什么逻辑?
错了,用canlder视图绑定就行了

#18


楼主解决问题1了吗? 求指教,谢谢!

#1


目前就想到用API控制了

#2


呵呵,可以用JS按制操作菜单是否显示就可以了!

#3


这么复杂,moss里面没有设置吗?

#4


这个需要在EventReceiver中来做,在ItemDeleting事件中,如果当前用户等于item["Author"],就删除,否则
e.Cancel = true;

#5


引用 2 楼 hqpy 的回复:
呵呵,可以用JS按制操作菜单是否显示就可以了!

能说的详细一点吗?

引用 4 楼 time_is_life 的回复:
这个需要在EventReceiver中来做,在ItemDeleting事件中,如果当前用户等于item["Author"],就删除,否则
e.Cancel = true;

问题1:我前面进 设置--》列表设置--》高级设置 做出如下设置:
读取权限 选 所有项目
编辑权限 选 仅自己项目
这样设置效果只达到一半:虽然只有自己能编辑删除其他人不能编辑删除,但是编辑的页面还是出来的,只有点击确定后才知道自己有没有权限编辑或删除。
能不能做到,没有权限编辑的用户连DispForm.aspx里“编辑”和“删除”的按钮都隐藏掉?


问题2(新):用户要求calendar.aspx这个页面能按照部门选的,比如做个下拉框让用户选择部门查看,只关心自己部门的日历,能不能提供以下思路和解决办法?

#6


最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看

#7


引用 6 楼 cshadow 的回复:
最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看

能说的再详细点吗?谢谢

#8


引用 7 楼 huxuanchenxy 的回复:
引用 6 楼 cshadow 的回复:
最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看

能说的再详细点吗?谢谢


哦,不好意思,列表可以,日历不行,可以开启内容审批来实现,不过这样就需要一步审批工作了,还有个办法是你用spd写一个简单的工作流,创建以后自动把其他人的权限移除,只剩下作者自己和管理员

#9


关于5# 问题2 能不能这样:
做视图,按照部门建立视图,先把各个部门的视图一个个建好让用户用就是了。

但是这有一个问题,“部门”这个栏怎么添加比较好,或者说是让用户在新建时把自己的“部门”插入某一个栏,然后改视图的时候过滤此条件,还是什么的。

#10


你好像回复错帖子了。。

#11


引用 10 楼 cshadow 的回复:
你好像回复错帖子了。。


没回复错呀
这个关于部门的筛选 我5楼也提到过的,求大侠帮忙

#12


我前面试过这样一个方法:
在日历里新建一个叫“部门”的栏,这时在视图里就能看到“部门”的筛选条件,并且在新建的时候有“部门”的字段了,随后试图在新的部门里键入“财务”,然后到视图里筛选“财务”是可以的。
问题是,在填写表单的时候不可能让用户填写“财务”两个字的,最好让用户登录时自动取出部门的值,然后就可以筛选了,但是这要怎么做呢?

于是我试着建了一个基于calender的listdefinition,想在ItemEventReceiver.cs里ItemAdded动脑筋,但是有几个问题没有了方向:

1.怎么在listdefinition里新建一个“部门”的字段,在哪里建?
2.ItemAdded里面的代码应该怎么写?

#13


部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的

#14


引用 13 楼 cshadow 的回复:
部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的

取出来后(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();
                }
            }
        }

然后在视图里加视图 比如 部门=“信息科”



#16


用户还是要求如果没有权限“编辑项目”“删除项目”两个按钮不能显示出来,
能不能说说
“最简单的方法是开启版本控制,然后设置每个人只能编辑自己的日历,其他人可以查看”

#17


引用 13 楼 cshadow 的回复:
部门这个问题要看你的AD怎么设置了,AD里面有个属性是部门的,都有值吗?如果有是可以自动读取出来的

什么逻辑?
错了,用canlder视图绑定就行了

#18


楼主解决问题1了吗? 求指教,谢谢!