Pergunta : Permissões feitas sob encomenda do status dos trabalhos de Sharepoint

nós createad que um workfow feito sob encomenda associou com a biblioteca dos formulários, nós mandarmos “coletar os dados a ação que criam uma tarefa nova na lista de tarefa feita sob encomenda “HRTasks”, o problema do usuário” nós temos a tarefa criada podemos ser editados por todos contribuímos usuários, podemos nós levantamos a mensagem negada acesso quando o usuário a que não atribuído quando clique o artigo da tarefa esse para diante ao

Thanks
alista da página “/HRTasks/DispForm.aspx " class= do

Resposta : Permissões feitas sob encomenda do status dos trabalhos de Sharepoint

Olá!,

Eu tentei funcionar o código e os trabalhos muito bem com o usuário atribuído e não-atribuído.
Unir por favor o depurador de programas (anexo a w3wp.exe) no estúdio visual para eliminar erros da edição.

Juntamente o código, nós usamo-nos -

vácuo público ItemUpdating da ultrapassagem (propriedades de SPItemEventProperties)
        {
            base.ItemUpdating (propriedades);

            se (== de properties.ListTitle.Equals (DocumentLibararyType.Tasks , StringComparison.InvariantCultureIgnoreCase) verdadeiro)
            {
                Local = zero de SPWeb;
                tentativa
                {
                    spItem de SPListItem = properties.ListItem;
                    local = properties.OpenWeb ();
                    spOwnerGroup de SPGroup = site.AssociatedOwnerGroup;
                    spCurrentUser de SPUser = site.CurrentUser;

                    amarrar o strStatus = o spItem [ItemFiledType.Status] .ToString ();
                    intIndex do int = spItem [ItemFiledType.AssignedTo] .ToString () .IndexOf (“#");
                    amarrar o spAssignedTo = o spItem [ItemFiledType.AssignedTo] .ToString (). Remover (0, intIndex + 1);
                    amarrar o spCurrentUserLoginName = o site.CurrentUser.LoginName;
                    amarrar o spCurrentUserName = o site.CurrentUser.Name;  // adicionou para ver se “atribuído a” é mesmo que o nome do usuário atual.
                    blnAllowUpdate do bool = falso;

                    se (== de spCurrentUserLoginName.Equals (do “\ sharepoint \ sistema”, StringComparison.InvariantCultureIgnoreCase) falso)
                    {
                        foreach (SPGroup SPG em spCurrentUser.Groups)
                        {
                            se (site.AssociatedOwnerGroup ! = zero)
                            {
                                se (== 0 do SPG. Name.CompareTo (site.AssociatedOwnerGroup.Name))
                                {
                                    se (== de strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) verdadeiro)
                                    {
                                        // isto é a mensagem que nós gostaríamos de mostrar ao usuário
                                        // se tenta atualizar uma tarefa ativa
                                        properties.ErrorMessage = “tarefa já é terminado e não pode ser atualizado agora. ”;
                                        //// esta linha cancela realmente a supressão
                                        propriedades. O cancelamento = retifica;
                                    }
                                    mais
                                    {
                                        o blnAllowUpdate = retifica;
                                    }
                                }
                            }
                        }

                        // se o status da tarefa está completo ele não é tarefa ativa any more
                        // de outra maneira nós cancelamos o apagamento
                        // se (strStatus! = strStatus “terminado” do &&! = strStatus do && da “produção”! = “aprovaçã0 negada”)
                        se (== do blnAllowUpdate falso)
                        {
                            // “spAssignedTo.CompareTo (spCurrentUserName)! = 0” que esta circunstância adicionou para considerar se “atribuído a” é mesma que o nome do usuário atual.
                            se ((spAssignedTo.CompareTo (spCurrentUserLoginName)! = 0 && spAssignedTo.CompareTo (spCurrentUserName)! = 0) &&
                                (== de strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) falso))
                            {
                                // isto é a mensagem que nós gostaríamos de mostrar ao usuário
                                // se tenta atualizar uma tarefa ativa
                                properties.ErrorMessage = “este artigo é ainda em andamento e pode somente ser atualizado pelo criador do artigo. ”;
                                //// esta linha cancela realmente a supressão
                                propriedades. O cancelamento = retifica;
                            }
                            mais se (== de strStatus.Equals (FileItemStatusType.Completed, StringComparison.InvariantCultureIgnoreCase) verdadeiro)
                            {
                                // isto é a mensagem que nós gostaríamos de mostrar ao usuário
                                // se tenta suprimir de uma tarefa ativa
                                properties.ErrorMessage = “tarefa já é terminado e não pode ser atualizado agora. ”;
                                //// esta linha cancela realmente a supressão
                                propriedades. O cancelamento = retifica;
                            }
                        }
                    }
                }
                prendedor (exceção ex)
                {
                    properties.ErrorMessage = “um erro interno ocorreu ao fazer a ação” + Environment.NewLine +
                        . Message.ToString ex ();
                    propriedades. O cancelamento = retifica;
                }
            }

        }

Eu espero, ele ajudo.

Elogios…
Rajendra
Outras soluções  
 
programming4us programming4us