/// <summary> /// Determines whether the currently logged on user has edit permissions on the specific item. /// </summary> /// <param name="item">The item.</param> /// <returns> /// <c>true</c> if the currently logged on user has edit permissions on the specific item; otherwise, <c>false</c>. /// </returns> public static bool CanEdit(VirtualFileBase item) { if (item == null) { return(false); } UnifiedDirectory dir = item as UnifiedDirectory; if (dir != null) { return(PrincipalInfo.HasAdminAccess || dir.QueryDistinctAccess(AccessLevel.Edit)); } UnifiedFile file = item as UnifiedFile; if (file != null && (PrincipalInfo.HasAdminAccess || file.QueryDistinctAccess(AccessLevel.Edit))) { IVersioningFile versioningFile = file as IVersioningFile; return(versioningFile == null || !IsCheckedOutBySomeoneElse(versioningFile)); } else { return(false); } }