1

Environment: SP2010 Enterprise

As an administrator, is there any way to create/modify personal views for specific users? So far how I have to do it is give the user permissions to manage personal views, log in as them, create the desired personal view, then go back and remove the manage personal views permission. This is time-consuming and just a general PITA, but I can't find any other way to do it. Is there a method or even a solution I can deploy to allow me to centralize this process?

Any help is greatly appreciated. Thanks!

2

I can only offer a workaround: some months ago I wrote a site collection scoped feature which enables an administrator to copy a normal view of a list to a personal view (same list, but other user). So the process of creating personal views for many users is faster.

Please pay attention:

  • I wrote it just for fun, maybe I will put it on codeplex some day
  • If you need some other functionality maybe I could help if it's not too much time effort
  • I only tested it on my development machine

You find the two solutions and more details at SWPersonalViews

|improve this answer|||||
  • Thanks Stefan, this looks pretty much like what I was hoping for. I haven't had a chance to deploy it yet but I will soon and will post the results here. – thanby Nov 20 '12 at 15:39
  • This works like a charm for pushing out personal views, thank you Stefan! I'm still looking for a way to manage existing personal views (edit/delete) for other users so if anyone comes across a way to do that please let me know, but for now this gives me the functionality to get the job done. – thanby Nov 21 '12 at 13:38
  • Glad to hear that it works as expected, if I get to know something about the modification of existing views I will come back to you. – Stefan Nov 22 '12 at 0:35
0

Also there is a possibility to create personal views for specified user by PowerShell

$site = Get-SPSite "http://sp2013"
$user = $site.RootWeb.AllUsers.GetByEmail("user@email.com")
$token = $user.UserToken

# If you are using Web object instead if Site object, then instead of $site.Url
# use $web.Site.Url ($web.Url doesn’t work even for RootWeb)
$impWebObj = New-Object Microsoft.SharePoint.SPSite($site.Url, $token)
$list = $impWebObj.RootWeb.Lists["My List"]

$viewFields = New-Object System.Collections.Specialized.StringCollection
$viewFields.Add("Title")
$viewQuery = "<OrderBy><FieldRef Name='Title' Ascending='False'/></OrderBy>"
$viewRowLimit = 30
$viewPaged = $true
$viewDefaultView = $false

$list.Views.Add($viewTitle, $viewFields, $viewQuery, $viewRowLimit, $viewPaged, $viewDefaultView)
|improve this answer|||||
  • In a similar way you can also get personal views – Alex Seliv Nov 4 '16 at 13:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.