【问题标题】:Script Not Working for User With Read Permissions脚本不适用于具有读取权限的用户
【发布时间】:2016-06-02 17:46:23
【问题描述】:

我有一个发送电子邮件的工作流程。当用户收到电子邮件时,会有一个名为 Review 的超链接。当用户单击 Review 时,改进列表中名为 ReviewStatus 的列的值将更改为 Requested。我在下面有一个脚本可以在内容编辑器 Web 部件上处理这个问题:

<script language="javascript" type="text/javascript"> 
_spBodyOnLoadFunctionNames.push("getSetListItem");
        var listItem;
        var list;
        var clientContext;
        var siteUrl = "https://contoso.com/process/";
        function getSetListItem() {
            this.clientContext = new SP.ClientContext(siteUrl);
            if (this.clientContext != undefined && clientContext != null) {
                var webSite = clientContext.get_web();
                var itemID = parseInt(GetUrlKeyValue('ID'));
                this.list = webSite.get_lists().getByTitle("Improvement");
                this.listItem = list.getItemById(itemID);
                clientContext.load(this.listItem);
                this.clientContext.executeQueryAsync(Function.createDelegate(this, this.OnLoadSuccess),
Function.createDelegate(this, this.OnLoadFailed));
            }
        } 
        function OnLoadSuccess(sender, args) {
            var value = this.listItem.get_item("ReviewStatus");
            this.listItem.set_item("ReviewStatus", "Requested");
            this.listItem.update();
            this.clientContext.load(this.listItem);
            this.clientContext.executeQueryAsync(Function.createDelegate(this, this.OnLoadSuccess1),
Function.createDelegate(this, this.OnLoadFailed));
        } 
        function OnLoadSuccess1(sender, args) {
            alert(this.listItem.get_item("ReviewStatus"));
        } 
        function OnLoadFailed(sender, args) {
            alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
        }

        </script>

以上内容对我有用,但我拥有站点 Col 管理员权限。当具有读取权限的用户单击超链接时,会将他们带到 CEWP 所在的页面,他们会收到以下消息:

我知道它的权限,但我可以做些什么来使它对没有权限的用户起作用?顺便说一句,客户希望为用户保留只读权限,所以我无能为力。

感谢任何帮助。

【问题讨论】:

    标签: javascript permissions sharepoint-2013 access-denied


    【解决方案1】:

    按照设计,javascript 代码无法以提升的权限运行,因为现在浏览器中的每个用户都可以添加 javascript 进行编辑(我说的是浏览器开发人员工具)。

    这当然对你的项目来说是非常危险的:)

    如果您确实不想更改权限设置,并且希望代码以提升的权限运行,您可以创建一个场解决方案。

    如果要保留脚本,则必须修改执行脚本的用户的权限

    【讨论】:

      猜你喜欢
      • 2022-11-14
      • 2014-11-03
      • 2021-06-15
      • 2023-03-21
      • 2022-01-08
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      相关资源
      最近更新 更多