Questione : Permessi su ordinazione di condizione di flusso di lavoro di Sharepoint

createad che un workfow su ordinazione si è associato con la biblioteca delle forme, noi facciamo “i dati l'azione che generano una nuova operazione nella lista di operazione su ordinazione “HRTasks„, il problema dall'utente„ raccogliere abbiamo l'operazione generata possiamo essere pubblicati da tutti contribuiamo gli utenti, possiamo noi abbiamo sollevato il messaggio negato accesso quando utente a che non assegnato quando scatto l'articolo di operazione quel di andata “al

Thanks
elenca/HRTasks/DispForm.aspx " della pagina class= del

Risposta : Permessi su ordinazione di condizione di flusso di lavoro di Sharepoint

Ciao,

Ho provato a fare funzionare il codice e gli impianti benissimo con l'utente assegnato e non-assegnato.
Attaccare prego il programma di messa a punto (attaccatura a w3wp.exe) in studio visivo per mettere a punto l'edizione.

Con questo il codice, abbiamo usato -

vuoto pubblico ItemUpdating (proprietà della provvigione supplementare di SPItemEventProperties)
        {
            base.ItemUpdating (proprietà);

            se (== di properties.ListTitle.Equals (DocumentLibararyType.Tasks , StringComparison.InvariantCultureIgnoreCase) allineare)
            {
                Luogo = posizione di segnale minimo di SPWeb;
                prova
                {
                    spItem di SPListItem = properties.ListItem;
                    luogo = properties.OpenWeb ();
                    spOwnerGroup di SPGroup = site.AssociatedOwnerGroup;
                    spCurrentUser di SPUser = site.CurrentUser;

                    mettere insieme lo strStatus = lo spItem [ItemFiledType.Status] .ToString ();
                    intIndex di int = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf (“#");
                    mettere insieme lo spAssignedTo = lo spItem [ItemFiledType.AssignedTo] .ToString (). Rimuovere (0, intIndex + 1);
                    mettere insieme lo spCurrentUserLoginName = site.CurrentUser.LoginName;
                    mettere insieme lo spCurrentUserName = site.CurrentUser.Name;  // ha aggiunto per vedere se “assegnato a„ è stesso del nome dell'utente corrente.
                    blnAllowUpdate di bool = falso;

                    se (== di spCurrentUserLoginName.Equals (“\ \ sistema dello sharepoint„, StringComparison.InvariantCultureIgnoreCase) falso)
                    {
                        foreach (SPGroup spg in spCurrentUser.Groups)
                        {
                            se (site.AssociatedOwnerGroup ! = posizione di segnale minimo)
                            {
                                se (== 0 di spg. Name.CompareTo (site.AssociatedOwnerGroup.Name))
                                {
                                    se (== di strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) allineare)
                                    {
                                        // questo è il messaggio che vorremmo mostrare all'utente
                                        // se prova ad aggiornare un'operazione attiva
                                        properties.ErrorMessage = “operazione già è completato e non può ora essere aggiornato. „;
                                        //// questa linea realmente annulla la cancellazione
                                        proprietà. L'annullamento = allinea;
                                    }
                                    altrimenti
                                    {
                                        il blnAllowUpdate = allinea;
                                    }
                                }
                            }
                        }

                        // se la condizione di operazione è completa esso non sarà operazione attiva più
                        // annulliamo al contrario l'omissione
                        // se (strStatus! = strStatus “completato„ del &&! = strStatus del && “di produzione„! = “approvazione negata„)
                        se (== del blnAllowUpdate falso)
                        {
                            // “spAssignedTo.CompareTo (spCurrentUserName)! = 0„ che questa circostanza ha aggiunto per vedere se “assegnato a„ è stessa del nome dell'utente corrente.
                            se ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = 0 && spAssignedTo.CompareTo (spCurrentUserName)! = 0) &&
                                (== di strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) falso))
                            {
                                // questo è il messaggio che vorremmo mostrare all'utente
                                // se prova ad aggiornare un'operazione attiva
                                properties.ErrorMessage = “questo articolo è ancora in progresso e può essere aggiornato soltanto dal creatore dell'articolo. „;
                                //// questa linea realmente annulla la cancellazione
                                proprietà. L'annullamento = allinea;
                            }
                            altrimenti se (== di strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) allineare)
                            {
                                // questo è il messaggio che vorremmo mostrare all'utente
                                // se prova a cancellare un'operazione attiva
                                properties.ErrorMessage = “operazione già è completato e non può ora essere aggiornato. „;
                                //// questa linea realmente annulla la cancellazione
                                proprietà. L'annullamento = allinea;
                            }
                        }
                    }
                }
                fermo (eccezione ex)
                {
                    properties.ErrorMessage = “un errore interno ha accaduto mentre faceva l'azione„ + Environment.NewLine +
                        ex. Message.ToString ();
                    proprietà. L'annullamento = allinea;
                }
            }

        }

Spero, esso aiuto.

Acclamazioni…
Rajendra
Altre soluzioni  
 
programming4us programming4us