Fråga : Tillåtelser för Sharepoint beställnings- workflowstatus

när klicka uppgiftsobjektet vi createad en beställnings- workfow som är tillhörande med, bildar arkivet, oss har ”mot efterkrav data från användare” handling, som skapar en ny uppgift i beställnings- uppgift listar ”HRTasks”, problemet alla vi har den skapade uppgiften kan redigeras av bidrar användare, kan oss lyftte tar fram det förnekade meddelandet när användaren, som inte tilldelat till, som framåt till sida”listar/HRTasks/DispForm.aspx "
Thanks
" klar "

Svar : Tillåtelser för Sharepoint beställnings- workflowstatus

Hi,

Jag försökte spring kodifiera och fungerar fint med den tilldelade och non-tilldelade användaren.
Behaga bilagan avlusaren (bilaga till w3wp.exe) i visuellt hjälpmedelstudio för att testa utfärda för fel.

Härmed kodifiera, har vi använt -

offentlig åsidosättande utan laga kraft ItemUpdating (SPItemEventProperties rekvisita)
        {
            base.ItemUpdating (rekvisita);

            om, riktig == (för properties.ListTitle.Equals ( DocumentLibararyType.Tasks, StringComparison.InvariantCultureIgnoreCase))
            {
                SPWeb plats = ogiltigt;
                försök
                {
                    SPListItem spItem = properties.ListItem;
                    plats = properties.OpenWeb ();
                    SPGroup spOwnerGroup = site.AssociatedOwnerGroup;
                    SPUser spCurrentUser = site.CurrentUser;

                    stränga strStatusen = spItem [ItemFiledType.Status] .ToString ();
                    int-intIndex = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf (”nr.”);
                    stränga spAssignedToen = spItem [ItemFiledType.AssignedTo] .ToString (). Ta bort (0, intIndex + 1);
                    stränga spCurrentUserLoginName = site.CurrentUser.LoginName;
                    stränga spCurrentUserName = site.CurrentUser.Name;  // tillfogade för att se, om ”tilldelad till” är samma som känd av strömanvändare.
                    boolblnAllowUpdate = falskt;

                    om, falsk == (för spCurrentUserLoginName.Equals (”sharepoint\ \ system”, StringComparison.InvariantCultureIgnoreCase))
                    {
                        foreach (SPGroup spg i spCurrentUser.Groups)
                        {
                            om (site.AssociatedOwnerGroup ! = ogiltigt)
                            {
                                om, == 0 (för spg. Name.CompareTo (site.AssociatedOwnerGroup.Name))
                                {
                                    om, riktig == (för strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase))
                                    {
                                        // detta är meddelandet som vi skulle något liknande för att visa till användaren
                                        // om henne försök att uppdatera en aktivuppgift
                                        properties.ErrorMessage = ”uppgiften ar avslutad och kan redan inte uppdateras nu. ”;
                                        //// som detta fodrar avbryter faktiskt borttagningsen
                                        rekvisita. Annulleringen = true;
                                    }
                                    annars
                                    {
                                        blnAllowUpdate = true;
                                    }
                                }
                            }
                        }

                        //, om uppgiftsstatusen är färdig det, är inte den något mera aktivuppgiften
                        // annars vi avbryter raderingen
                        // om (strStatusen! = ”avslutad” &&strStatus! = ”produktion” &&strStatus! = ”förnekat godkännande”)
                        om (falsk blnAllowUpdate==)
                        {
                            // ”spAssignedTo.CompareTo (spCurrentUserName)! = 0,” som detta villkorar ökat för att se, om ”tilldelad till” är samma som känt av strömanvändare.
                            om ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = 0 && spAssignedTo.CompareTo (spCurrentUserName)! = 0) &&
                                falsk == (för strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase)))
                            {
                                // detta är meddelandet som vi skulle något liknande för att visa till användaren
                                // om henne försök att uppdatera en aktivuppgift
                                properties.ErrorMessage = ”detta objekt är stilla pågående och kan endast uppdateras av skaparen av objektet. ”;
                                //// som detta fodrar avbryter faktiskt borttagningsen
                                rekvisita. Annulleringen = true;
                            }
                            annars, om, riktig == (för strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase))
                            {
                                // detta är meddelandet som vi skulle något liknande för att visa till användaren
                                // om henne försök att ta bort en aktivuppgift
                                properties.ErrorMessage = ”uppgiften ar avslutad och kan redan inte uppdateras nu. ”;
                                //// som detta fodrar avbryter faktiskt borttagningsen
                                rekvisita. Annulleringen = true;
                            }
                        }
                    }
                }
                fånga (undantagsföre detta)
                {
                    properties.ErrorMessage = ”ett inre fel uppstod stunder som gör handling” + Environment.NewLine +
                        före detta. Message.ToString ();
                    rekvisita. Annulleringen = true;
                }
            }

        }

Jag hoppas, det hjälper.

Jubel…,
Rajendra
Andra lösningar  
 
programming4us programming4us