ログインユーザーの権限をJavaScriptでチェックする
Client Object Modelでユーザー権限を取得するには、SP.Web.effectiveBasePermissions propertyを使います。
これで、ユーザーがサイトに対して持っている権限の一覧が取れるので、そこからユーザー権限を判断します。
たとえば、「Webサイトの管理」権限を持っていればフルコントロール権限があるだろう、とか。
では、ログインユーザーが「Web サイトの管理」権限を持っているかチェックするサンプルコードを書いてみます。jQueryも使ってます。
$(function(){ ExecuteOrDelayUntilScriptLoaded(CheckPermissionOnWeb, "sp.js"); }); function CheckPermissionOnWeb() { var ctx = new SP.ClientContext.get_current(); var web = ctx.get_web(); var currentUser = web.get_currentUser(); ctx.load(currentUser); ctx.load(web,'EffectiveBasePermissions'); ctx.executeQueryAsync(Function.createDelegate(this, onSuccessMethod), Function.createDelegate(this, onFailureMethod)); function onSuccessMethod(sender, args) { if (web.get_effectiveBasePermissions().has(SP.PermissionKind.manageWeb)) { console.log('You are Site Admin.'); } } function onFailureMethod(sender, args) { console.log('Error:' + args.get_message()); } }
上記で「SP.PermissionKind.manageWeb」の「manageWeb」のところを変えれば、別の権限を持っているかもチェックできます。
たとえば、「manageLists」ならリストの管理権限があることになります。
具体的には、以下をご参考に。
https://msdn.microsoft.com/en-us/library/ee556747.aspx
原文地址:https://marimew.wordpress.com/2015/04/20/check-current-user-permission/