0

SP 2013의 항목 수준 사용 권한을 사용하여 다른 사용자가 그 (것)들을 그러나 아직도 그 품목에서 단 하나 분야 (란)를 변경하는 것을 허용합니까?SP 목록 항목 - 항목 작성자를 제외한 모든 사용자에 대해 "편집"을 비활성화하지만 모든 사용자에 대해 단일 열을 편집 가능으로 유지합니다.

"편집"항목 버튼을 클릭 한 후에 모든 사용자가 해당 열에 정보를 입력 할 수있게하지만 해당 항목이 작성되지 않은 경우 다른 필드를 수정할 수 없도록하고 싶습니다.

항목 작성자 만 모든 입력란을 수정할 수 있어야합니다. 또한 XSL을 사용하여 수행 할 수 있습니다

$(document).ready(function() { 
if(CheckCreatedBy() != GetCurrentUser()) 
{ 
     $("input[Title='EditableByAllUsers']").prop("disabled", true); 
} 

}); 

function CheckCreatedBy() 
{ 
var clientContext = new SP.ClientContext.get_current(); 
var siteColl = clientContext.get_site(); 
var oList = siteColl.get_rootWeb().get_lists().getByTitle('ChangeEditForm'); 
var itemId = _spGetQueryParam('id') ; 
var camlQuery = new SP.CamlQuery(); 
camlQuery.set_viewXml('<View><Query><Where><Eq><FieldRef Name=\'ID\'/>' + 
    '<Value Type=\'Number\'>'+ itemId +'</Value></Eq></Where></Query></View>'); 
this.collListItem= oList.getItems(camlQuery); 
clientContext.load(collListItem);   
    clientContext.executeQueryAsync(Function.createDelegate(this,this.onCheckCreatedBySuccessMethod), Function.createDelegate(this, this.onCheckCreatedByFailureMethod));   
return this.value; 
    } 
function onCheckCreatedBySuccessMethod(sender, args) 
{ 
var CreatedBy = ''; 

var listItemEnumerator = collListItem.getEnumerator(); 

while (listItemEnumerator.moveNext()) { 
    var oListItem = listItemEnumerator.get_current(); 
    CreatedBy = oListItem.get_item('Author').get_lookupValue(); 
     alert(CreatedBy); 
     return CreatedBy ; 
} 
} 
function onCheckCreatedByFailureMethod(sender, args) 
{ 
alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace()); 
} 

function GetCurrentUser() 
{ 
var ClientContext = new SP.ClientContext.get_current(); 
this.CurrentWeb = ClientContext.get_web(); 
ClientContext.load(this.CurrentWeb.get_currentUser()); 
ClientContext.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), Function.createDelegate(this, this.onFailureMethod)); 
    return this.value; 
    } 
    function onSuccessMethod(sender, args) 
{  
    var userObject =this.CurrentWeb.get_currentUser().get_title();  
    return userObject; 
} 
function onFailureMethod(sender, args) { 
    alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace()); 
} 

: 환영합니다 :) 다음과 같이

답변

0

당신은 같은에 대한 클라이언트 개체 모델을 사용할 수보다 더 많은 것을 달성하는 방법

어떤 아이디어. This도 도움이 될 것입니다.

이 정보가 도움이되기를 바랍니다.

관련 문제