SPList 또는 SPListItem 개체에서 특정 사용자의 특정 권한을 체크해야 할 때가 있다.
금일 특정 권한 체크를 어떻게 해야 하냐는 질문에 바로 대답이 나오지 않아 난감했었다.

무엇을 묻는지도, 무엇을 대답해야 하는지도 아는데,
"DoesUserHavePermissions" 라는 메소드명이 기억나지 않아.
D로 시작하는 권한 체크하는 메소드 있는데 라고만 대답했을 뿐...ㅋㅋ

MOSS 개발 안한지도 4개월쯤 되가나~ 자주 안하니깐 까먹게 되는거 같다.ㅋㅋ
필자도 사람이기에 자주 사용안하는 건 까먹는다. (냠냠~)
그래서 이번 계기로 복습한다 생각에 정리를 해볼까 한다. (누구나 아는 거겠지만)

SPList
개체에서 특정 사용자의 특정 권한을 체크하고 싶을 때 사용하는 방법이다.

아래 소스는 기존에 사용하였던 방식이다.
//특정 그룹에 사용자가 있는지 체크하여 권한 체크
SPList spList = SPContext.Current.Web.GetList(".....");   //List URL
SPGroup spGroup = SPContext.Current.Web.Groups["....."];   //그룹명
if( spGroup.ContainsCurrentUser == true )
{
       // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에..
       ......
}

위 방식을 사용하기 위해서는 특정 그룹을 찾아야 한다는 문제가 있다. 이에 간단하게 해결되는 방법이 있다.

SPList spList = SPContext.Current.Web.GetList(".....");  //List URL

//리스트에 아이템 추가 권한 즉 쓰기 권한이 있는지 체크
if(spList.DoesUserHavePermissions(SPBasePermissions.AddListItems))
{
      // SPList에 글쓰기가 있으니.. 쓰는 권한에 관련된 처리를 여기에..
      ......
}
만일에 여러 권한을 체크해야 할 경우가 있을 것이다. 그럴 경우에는 DoesUserHavePermissions 메소드 안에 SPBasePermissions 항목을 '|' 구분하여 체크하면 된다.
if(splist.DoesUserHavePermissions(SPBasePermissions.AddListItems |
    SPBasePermissions.EditListItems))
{
      ......
}

+ Recent posts