Nascondere alcune aree di Sharepoint tramite il controllo SPSecurityTrimmedControl
Ditemi… a chi piace dare al nostro Anonymouse User la nostra ribbon bellissima!?
A me non piace :-\
C’è un modo per evitare di togliere elementi utili nel back-office ma non farli visualizzare nel front-end.
E questo è SPSecurityTrimmedControl.
Ecco un esempio. Troviamo il nostro div della ribbon e inseriamo il controllo:
<Sharepoint:SPSecurityTrimmedControl PermissionsString="AddAndCustomizePages" runat="server">
<Sharepoint:DelegateControl ControlID="GlobalNavigation" runat="server">Sharepoint:DelegateControl>
<div class="s4-pr s4-ribbonrowhidetitle" id="s4-ribbonrow">
<!-- -->
<div>
</Sharepoint:SPSecurityTrimmedControl>
La magia avviene grazie al PermissionsString.
Per sapere tutti i PermissionsString a disposizione fate riferimento a:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions(v=office.14).aspx
cips
0xc328a906, 0x8f6e, 0x4cdd, 0x83, 0x6d, 0xa1, 0x9a, 0x66, 0xd8, 0xf5, 0xec
WCF RIA Services: Aggiungiamo un paio di controlli
Nel post precedente ottenevamo la lista di tutti gli utenti nel nostro database tramite la GetCustomer.
In questo post aggiungeremo un paio di controlli per paginare e filtrare i nostri dati.
Quindi torniamo al nostro bel designer e aggiungiamo un DataPager alla griglia creata quì.
Inseriamo un nuovo controllo nella Toolbox (tasto dx –> Choose Item), cerchiamo e selezioniamo il DataPager:
Adesso trasciniamolo dalla toolbox alla pagina:
Settiamo il width in auto dalle proprietà.
Torniamo sulla finestra Data Sources (vista nel post precedente), e dragghiamo dentro il pager l’entity Customer
ed ecco cosa otteremo lato codice
E’ stato cos’ bravo da capire che in realtà abbiamo già un domain data source nel nostro xaml e ha creato direttamente un binding :)
Prima di fare F5 tornate al CustomerDomainService creato in precedenza e togliete il Take(10); bene, runniamo!!!
Ed ecco i nostri dati paginati.
Adesso facciamo un’altra figata con 3 click.
Torniamo alla nostra DataSource clicchiamo sulla freccia che compare nella voce Customer e selezioniamo Details:
una volta selezionata la Details possiamo anche scegliere come i nostri dati saranno renderizzati
Trasciniamo il nostro Customer dentro la pagina è questo sarà il risultato:
Adesso dobbiamo cambiare un paio di proprietà (scrivo velocemente l’elenco):
DataContext: di default è il customerDomainDataSource. Clicchiamo sopra e si aprirà una nuova finestra e cambieremo il binding con la nostra griglia.
Quindi clicchiamo in alto su Source scegliamo ElementName e selezioniamo la griglia customerDataGrid e, andando su Path, selezioniamo la voce SelectedItem (forse scrivere l’xaml per alcuni risulta più semplice… almeno per me). Andiamo sotto Options e selezioniamo Mode = TwoWay. Ed ecco, l’ovvio, risulato lato xaml:
DataContext="{Binding ElementName=customerDataGrid, Path=SelectedItem, Mode=TwoWay}"
Runniamo e controlliamo il risultato.
Veloce e carino :D
0x1d5f8aa5, 0x6a22, 0x4221, 0xbd, 0x2a, 0xa4, 0x6f, 0xb8, 0xe4, 0x7f, 0xf3
Creare un modulo per spedire mail con InfoPath
Un paio di post fà è stato creato un modulo per spedire richieste di supporto tecnico usando semplicemente una Custom List Sharepoint.
In questo post invece useremo InfoPath partendo da zero.
Quindi apriamo InfoPath e selezioniamo Sharepoint List:
Scegliamo il nostro server Sharepoint
Diamo il nome alla nostra nuova lista
E iniziamo a modellare l’aspetto di layout della tabella cliccando sulla tabella e dopo su Layout e aggiungiamo delle righe:
Andiamo sotto Home e iniziamo ad inserire delle text box:
Sulle proprietà del controllo, modifichiamo il nome e aggiungiamo la Rule per controllare se il valore inserito è una mail
Continuiamo ad aggiungere i campi necessari e, fuori dalla tabella, inseriamo un picture button
Andiamo sulle sue proprietà e selezioniamo l’immagine da usare per il pulsante e un’eventuale immagine da usare quando il mouse è sopra l’immagine.
Sulle Action del pulsante scegliamo la voce Submit
Andiamo sulla scheda File e clicchiamo su Advanced form options e decheckiamo lo Show InfoPath commands in Ribbon on toolbar che, come dice il nome, è qualcosa di veramente pomposo!!!
Il risultato sarà qualcosa di questo tipo (io non ho usato la picture button)
Pubblica qul vostro Sharepoint e verrà creata anche la lista annessa.
0xe1c765c4, 0x9d13, 0x4d43, 0xbc, 0x1a, 0x2d, 0xc9, 0x41, 0x9d, 0x91, 0x7c
Creare una Custom List come modulo per spedire Mail
Ecco come creare una custom list in Sharepoint 2010 da utilizzare come modulo per spedire mail del nostro portale.
Per prima cosa creeremo una Custom List che utilizzeremo come repository per le mail che gli utenti spediranno:
Adesso, tramite il designer creiamo una nuova pagina ed inseriamo la nostra web part di tipo New Item Form e modifichiamo il testo alla sua sinistra
Se volete validare i campi, vi consiglio di mettere del codice javascript nella vostra pagina… oppure usate InfoPath……………
bye
0x31d346be, 0x7cfc, 0x4fa2, 0x8e, 0xcb, 0xe9, 0x2, 0x3b, 0xe1, 0xdc, 0xc9
WCF RIA Services: Applicazione client
Nel post precedente abbiamo creato un service model per ottenere i dati dalla tabella Customer.
In questo post vedremo di utilizzare i dati che otteniamo da questa entità tramite il metodo generato GetCustomers.
Prima di usare questo metodo conviene applicare un paio di accorgimenti:
public IQueryableGetCustomer() { return this.ObjectContext.Customer.OrderBy(o => o.CustomerID).Take(10); }
OrderBy ci servirà più avanti quando useremo il Pager mentre il Take ci serve per non far bombare il buffer del WCF.
Innanzitutto vorrei farvi notare come, visualizzando tutti i files all’interno del nostro progetto client, troverete una directory Genetared_Code:
Questo è il nostro proxy che crea il legame tra il progetto server e il progetto client.
Creiamo una directory Customer sotto la directory Views e aggiungiamo una pagina di nome Customers:
E aggiungiamo il seguente codice xaml al file MainPage.xaml:
Rinominate in Link3 l’About che era prima Link2.
Adesso aggiungiamo una datagrid alla nostra pagina (vorrei sottolineare che in questo tutorial non userò MVVM) .
Centriamo la griglia e mettiamo in Auto sia il Width che Height e selezioniamo l’AutoGenerateColumns. Avviamo l’applicazione:
forte no!?
0xeb88f2e6, 0x5b48, 0x42f9, 0x8e, 0x2, 0x35, 0x8d, 0x52, 0x7c, 0xb1, 0x1d
Adesso aggiungiamo una directory Views\Customers e aggiungiamo una pagina Customer:
Quindi apriamo la finestra Data Source e tranisciamo dentro la nostra grigli il service Customer sotto la CustomerDataContext:
Ma abbiamo fatto ancora ben poco… alla prox :)
Bing e Sushi
In Microsoft la pensano come me
0xf3009ad6, 0xfdbe, 0x4598, 0x99, 0xb9, 0x82, 0xd0, 0xb0, 0xa2, 0x98, 0xf8
Custom list per visualizzare un elenco di announcements e una dispform custom per visualizzare un elemento.
Creiamo una lista custom per la visualizzazione dei nostri items in una lista di tipo announcements.
Una volta creata questa Data…WebPart, possiamo modificarne l’xslt in modo da fargli puntare ad un’altra pagina (per comodità io ho modificato direttamente l’xslt ma se dovete creare solamente un link potete farlo direttamente dal designer):
A causa di un bug se provate a dichiarare la variabile in querystring come ID invece che NewsID, otterrete questo errore: http://support.microsoft.com/kb/972225
A questo punto creiamo la pagina DispNews e aggiungiamo un’altra Empty Data View per visualizzare un item.
Aggiunta, selezioniamo la data source e i campi che vogliamo visualizzare.
Fatto questo andiamo sul pulsante Parameters del designer e aggiungiamo la nostra variabile:
Adesso dobbiamo applicare un Filter sennò non cambierà mai item!!!:
Ed adesso possiamo modificare l’xslt ottenuto:
Bye
0x69939006, 0x5cad, 0x470d, 0x96, 0x20, 0x82, 0xff, 0x7b, 0xd0, 0x92, 0x4b
Sharepoint 2010: Un nuovo portale con template Publishing da customizare
Mi sono trovato a dover customizzare una web application con template di tipo Publishing:
Una volta creata la Web Application, ho avuto la necessità di creare una master page per le pagine che utilizzerò per gli utenti anonimi.
Tanto per creare un pò di confusione abbiamo varie master page:
La confusione non è sul numero di master page ma sui loro nomi.
Di default non viene usata la default.master (dai dillo che l’avevi pensato!!!) ma la v4.master. La default.master viene usata per mantenere compatibilità con il passato.
La pagina minimal.master (è quella da dove sono partito per creare la mia master page custom) è la master page con il minimo necessario a Sharepoint per avere una master page funzionante.
La master page nightandday.master è una master page da usare con le funzionalità del nostro Web content management.
Quindi ho fatto una copia della minimal.master e lo rinominata adeguatamente.
Adesso possiamo aprire la master page e modificarla come ci serve.
Le pagine che andranno nella parte di front-end del mio sito, userano questa master page.
Bye
0x9d6bc530, 0x2588, 0x40ab, 0x93, 0x65, 0x3a, 0xec, 0x87, 0xcf, 0xa6, 0xf
WCF RIA Services: Data Models e Domain Service
Aggiungiamo, alla solution creata nel post precedente, un data model. Per l’esempio userò AdventureWorks.
Ovviamente il data model risiederà nel middle-tier.
Data Model:
Per aggiungere il data model faremo click con il tasto destro sopra il progetto SilverlightApplicationPostExample.Web e selezioneremo l’item ADO.NET Entity Data Model:
Chiamiamo l’item AdventureWorks e selezioniamo l’opzione Generate From Database.
Selezioniamo/creaimo la connessione all’instanza dell’engine del nostro database:
Andando avanti selezioniamo le tabelle Address, Customer e CustomerAddress. Clicchiamo su Finish.
Il risultato sarà:
Domain Service:
Il domain service mette a disposizioni i metodi e le entità alle applicazioni client.
Creiamo un nuovo domain service:
e lo chiamiamo CustomerDomainService si aprirà una finestra come questa:
se questa risulta vuota, compilate prima il progetto SilverlightApplicationPostExample.Web quindi riprovate.
Selezionate Customer, Enable editing e Generate associated classes for metadata (quest’ultimo creare altre classi partial sulle quali potremo lavorare in futuro).
(L’OData endpoint sono un set di estensioni del protocollo ATOM le quali semplificano la condivisione di dati sul web.)
Facciamo ok ed otteniamo:
To be continue…
0x92bf7443, 0x69cc, 0x4e04, 0x8d, 0x9f, 0x9c, 0xe9, 0xdc, 0xf8, 0xae, 0x1f
Sharepoint 2010: Abilitare l’accesso Anonymous
Per abilitare l’accesso Anonymous possiamo fare in due maniera:
- Vecchia maniera IIS
- Maniera Sharepoint (anche questa non tanto nuova, visto che lo facevamo anche con il 2007 :D )
Anyway… ecco i passi da fare nel secondo, semplice caso:
- Avviamo il Central Administrator –> Manage Web Applications –> Selezionare la web application –> Authentication Providers –> click su Default
- Abilitare l’anonymous nella finestra successiva
- Andiamo nella nostra Web application e facciamo Site Actions -> Site Settings -> Site Permissions –> cliccare su Anonymous Access e scegliere il tipo di accesso desiderato:
Click…
0x304248fe, 0x3283, 0x4793, 0xa2, 0xf9, 0x1b, 0x38, 0x4a, 0x2f, 0x6f, 0x5c
Statistics