Cuestión : Permisos de encargo del estado del flujo de trabajo de Sharepoint

createad que un workfow de encargo se asoció a la biblioteca de las formas, nosotros hacemos que “recoja los datos la acción que crean una nueva tarea en lista de tarea de encargo “HRTasks”, el problema del usuario” tenemos la tarea creada podemos ser corregidos por todos contribuimos a usuarios, podemos nosotros levantamos el mensaje negado acceso cuando el usuario a quien no asignado cuando tecleo el artículo de la tarea ese delantero al

Thanks
“enumera/HRTasks/DispForm.aspx " de la página class= del

Respuesta : Permisos de encargo del estado del flujo de trabajo de Sharepoint

Hola,

Intenté funcionar con el código y los trabajos muy bien con el usuario asignado y no-asignado.
Atar por favor la depuración (fijación a w3wp.exe) en estudio visual para eliminar errores de la edición.

Adjunto el código, hemos utilizado -

vacío público ItemUpdating (características de la invalidación de SPItemEventProperties)
        {
            base.ItemUpdating (características);

            si == (de properties.ListTitle.Equals (DocumentLibararyType.Tasks , StringComparison.InvariantCultureIgnoreCase) verdad)
            {
                Sitio = falta de información de SPWeb;
                intento
                {
                    spItem de SPListItem = properties.ListItem;
                    sitio = properties.OpenWeb ();
                    spOwnerGroup de SPGroup = site.AssociatedOwnerGroup;
                    spCurrentUser de SPUser = site.CurrentUser;

                    encadenar el strStatus = el spItem [ItemFiledType.Status] .ToString ();
                    intIndex de la internacional = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf (“#");
                    encadenar el spAssignedTo = el spItem [ItemFiledType.AssignedTo] .ToString (). Quitar (0, intIndex + 1);
                    encadenar el spCurrentUserLoginName = site.CurrentUser.LoginName;
                    encadenar el spCurrentUserName = site.CurrentUser.Name;  // agregó para ver si “asignada a” es igual que nombre del usuario actual.
                    blnAllowUpdate del bool = falso;

                    si == (de spCurrentUserLoginName.Equals (“\ \ sistema del sharepoint”, StringComparison.InvariantCultureIgnoreCase) falso)
                    {
                        foreach (SPGroup spg en spCurrentUser.Groups)
                        {
                            ¡si (site.AssociatedOwnerGroup ! = falta de información)
                            {
                                si == 0 (del spg. Name.CompareTo (site.AssociatedOwnerGroup.Name))
                                {
                                    si == (de strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) verdad)
                                    {
                                        // esto es el mensaje que quisiéramos demostrar al usuario
                                        // si él intenta poner al día una tarea activa
                                        properties.ErrorMessage = “tarea se termina y no se puede ya ahora poner al día. ”;
                                        //// esta línea cancela realmente la cancelación
                                        características. La cancelación = verdad;
                                    }
                                   
                                    {
                                        el blnAllowUpdate = verdad;
                                    }
                                }
                            }
                        }

                        // si el estado de la tarea es completo él no es tarea activa más
                        // cancelamos de otra manera la canceladura
                        ¡// si (strStatus! ¡= strStatus “terminado” del &&! ¡= strStatus del && de la “producción”! = “aprobación negada”)
                        si (== del blnAllowUpdate falso)
                        {
                            ¡// “spAssignedTo.CompareTo (spCurrentUserName)! = 0” que esta condición agregó para considerar si “asignada a” es igual que nombre del usuario actual.
                            ¡si ((spAssignedTo.CompareTo (spCurrentUserLoginName)! ¡= 0 && spAssignedTo.CompareTo (spCurrentUserName)! = 0) &&
                                == (de strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) falso))
                            {
                                // esto es el mensaje que quisiéramos demostrar al usuario
                                // si él intenta poner al día una tarea activa
                                properties.ErrorMessage = “este artículo está todavía en curso y se puede poner al día solamente por el creador del artículo. ”;
                                //// esta línea cancela realmente la cancelación
                                características. La cancelación = verdad;
                            }
                            si == (de strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) verdad)
                            {
                                // esto es el mensaje que quisiéramos demostrar al usuario
                                // si él intenta suprimir una tarea activa
                                properties.ErrorMessage = “tarea se termina y no se puede ya ahora poner al día. ”;
                                //// esta línea cancela realmente la cancelación
                                características. La cancelación = verdad;
                            }
                        }
                    }
                }
                retén (excepción ex)
                {
                    properties.ErrorMessage = “un error interno ocurrió mientras que hacía la acción” + Environment.NewLine +
                        ex. Message.ToString ();
                    características. La cancelación = verdad;
                }
            }

        }

Espero, él ayudo.

Aclamaciones…
Rajendra
Otras soluciones  
 
programming4us programming4us