4

I have some search alerts that have been set up for users based on search results. We have some admins who create these alerts for other people. I am trying to find out a way to determine who created the alert instead of who is subscribed to it?

Is this possible?

I looked at the spalert properties however it appears as though SPAlert.User is the person who is subscribed to it.

I also cannot seem to find it in SPAlert.Properties either.

BlueBird
  • 1,850
  • 3
  • 17
  • 28
  • 1
    I've been working with alerts on and off for a few years and still have not found this particular bit of information... – Dave Wise Mar 19 '13 at 14:42

1 Answers1

0

there is no solution for this! Iv checked and sharepoint doesnt store who created the alert in the wss_content database under SchedSubscriptions table.

Solution?

Youll have to make your own! sorry! I presume when you say:

We have some admins who create these alerts for other people

You mean that they must be using "SubNew.aspx", goto 12hive or 14hive -> select templates -> layouts:

2007

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS

2010

C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS

look for the file "SubNew.aspx". You need to make a delegate control

http://sharepointmagazine.net/articles/custom-page-security-using-sharepoint-delegate-controls

basicly a feature that intercepts that aspx so that it will use your version instead! You need to ammend the aspx page to contain the feilds you want (user input) like so:

        <wssuc:InputFormSection runat="server"
            onKeyDown="onKeyPress()"
            Title="<%$Resources:wss,accessDenied_currentuser%>"
            Description="Alert creator"
            >
            <Template_InputFormControls>
                <wssuc:InputFormControl runat="server">
                    <Template_Control>
                        <wssawc:InputFormTextBox Title="fghfghfghgfhf" class="ms-input" ID="TextTitleAlert" Columns="35" Runat="server" MaxLength=255 />
                    </Template_Control>
                </wssuc:InputFormControl>
            </Template_InputFormControls>
        </wssuc:InputFormSection>

and do some working out or pickup the input in codebehind.

or

if your like me use codebehind that is called when the user clicks on a button (create alert), it will do its stuff but also writes to the DB in a new table that contains the alert ID, alert Name, creation Time and Creator.

That should do the trick ;)

sorry there isnt an easyeir method! nothing is easy in sharepoint and this simple thing like alert creator just doesnt exist so you would need to create a custom way of recording and retriving :)

Ali Jafer
  • 17,808
  • 1
  • 27
  • 41