public async Task <View_gruppi_politici_con_giunta> GetGruppoAttuale(List <string> lGruppi,
                                                                             RuoliIntEnum role)
        {
            var query = PRContext
                        .JOIN_GRUPPO_AD
                        .Where(g => lGruppi.Contains(g.GruppoAD));

            if (role == RuoliIntEnum.Assessore_Sottosegretario_Giunta ||
                role == RuoliIntEnum.Amministratore_Giunta ||
                role == RuoliIntEnum.Responsabile_Segreteria_Giunta ||
                role == RuoliIntEnum.Segreteria_Giunta_Regionale)
            {
                query = query.Where(g => g.GiuntaRegionale);
            }

            var join_gruppo = await query.FirstOrDefaultAsync();

            if (join_gruppo == null)
            {
                return(null);
            }

            var gruppo = await PRContext
                         .View_gruppi_politici_con_giunta
                         .SingleOrDefaultAsync(g => g.id_gruppo == join_gruppo.id_gruppo);

            return(gruppo);
        }
Exemple #2
0
        internal static string GetFirmatariEM_OPENDATA(IEnumerable <FirmeDto> firme, RuoliIntEnum ruolo)
        {
            try
            {
                if (firme == null)
                {
                    return("--");
                }
                var firmeDtos = firme.ToList();
                if (!firmeDtos.Any())
                {
                    return("--");
                }

                var result = "";
                foreach (var firmeDto in firme)
                {
                    if (string.IsNullOrEmpty(firmeDto.Data_ritirofirma))
                    {
                        if (ruolo == RuoliIntEnum.Amministratore_PEM)
                        {
                            result +=
                                $"{firmeDto.UTENTI_NoCons.id_persona}-{DecryptString(firmeDto.FirmaCert, AppSettingsConfiguration.masterKey)}; ";
                        }
                        else
                        {
                            result += $"{DecryptString(firmeDto.FirmaCert, AppSettingsConfiguration.masterKey)}; ";
                        }
                    }
                    else
                    {
                        if (ruolo == RuoliIntEnum.Amministratore_PEM)
                        {
                            result +=
                                $"{firmeDto.UTENTI_NoCons.id_persona}-{DecryptString(firmeDto.FirmaCert, AppSettingsConfiguration.masterKey)} (ritirata); ";
                        }
                        else
                        {
                            result +=
                                $"{DecryptString(firmeDto.FirmaCert, AppSettingsConfiguration.masterKey)} (ritirata); ";
                        }
                    }
                }

                return(result);
            }
            catch (Exception e)
            {
                Log.Error("GetFirmatariEM_OPENDATA", e);
                throw e;
            }
        }
        public async Task <IHttpActionResult> GetToken(RuoliIntEnum ruolo)
        {
            try
            {
                var result = await _logic.CambioRuolo(ruolo, await GetSession());

                return(Ok(result));
            }
            catch (Exception e)
            {
                Log.Error("GetToken - Ruoli", e);
                return(ErrorHandler(e));
            }
        }
        public async Task <LoginResponse> CambioRuolo(RuoliIntEnum ruolo, SessionManager session)
        {
            try
            {
                var ruoloInDb = await _unitOfWork.Ruoli.Get((int)ruolo);

                if (ruoloInDb == null)
                {
                    throw new Exception("Ruolo non trovato");
                }

                var persona           = Mapper.Map <View_UTENTI, PersonaDto>(await _unitOfWork.Persone.Get(session._currentUId));
                var intranetAdService = new proxyAD();
                var Gruppi_Utente     = new List <string>(intranetAdService.GetGroups(
                                                              persona.userAD.Replace(@"CONSIGLIO\", ""), "PEM_",
                                                              AppSettingsConfiguration.TOKEN_R));

                var lRuoli = Gruppi_Utente.Select(group => $"CONSIGLIO\\{group}").ToList();

                var ruoli_utente = await _unitOfWork.Ruoli.RuoliUtente(lRuoli);

                var ruoloAccessibile = ruoli_utente.SingleOrDefault(r => r.IDruolo == (int)ruolo);
                if (ruoloAccessibile == null)
                {
                    throw new Exception("Ruolo non accessibile");
                }

                persona.CurrentRole = ruolo;
                persona.Gruppo      = await _unitOfWork.Gruppi.GetGruppoPersona(lRuoli, persona.IsGiunta());

                persona.Carica = await _unitOfWork.Persone.GetCarica(persona.UID_persona);

                persona.Ruoli = ruoli_utente.Select(Mapper.Map <RUOLI, RuoliDto>);

                var token = GetToken(persona);

                return(new LoginResponse
                {
                    jwt = token,
                    id = persona.UID_persona,
                    persona = persona
                });
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public static string ConvertToAD(RuoliIntEnum ruolo)
        {
            switch (ruolo)
            {
            case RuoliIntEnum.Amministratore_PEM:
                return("PEM_Admin");

            case RuoliIntEnum.Amministratore_Giunta:
                return("PEM_Admin_Giunta");

            case RuoliIntEnum.Consigliere_Regionale:
                return("PEM_Consiglieri");

            case RuoliIntEnum.Responsabile_Segreteria_Politica:
                return("PEM_Resp_Segreteria");

            case RuoliIntEnum.Segreteria_Politica:
                return("PEM_Segreteria_politica");

            case RuoliIntEnum.Assessore_Sottosegretario_Giunta:
                return("PEM_Assessori");

            case RuoliIntEnum.Responsabile_Segreteria_Giunta:
                return("PEM_Resp_Segreteria_Giunta");

            case RuoliIntEnum.Segreteria_Giunta_Regionale:
                return("PEM_Segreteria_Giunta");

            case RuoliIntEnum.Presidente_Regione:
                return("PEM_Presidente");

            case RuoliIntEnum.Segreteria_Assemblea:
                return("PEM_Segr_Assemblea");

            case RuoliIntEnum.Utente:
                return("PEM_Generic");

            case RuoliIntEnum.SERVIZIO_JOB:
                return(default);

            default:
                throw new ArgumentOutOfRangeException(nameof(ruolo), ruolo, null);
            }
        }
        public async Task <LoginResponse> CambioRuolo(RuoliIntEnum ruolo)
        {
            try
            {
                var requestUrl = $"{apiUrl}/autenticazione/cambio-ruolo?ruolo={ruolo}";

                var lst = JsonConvert.DeserializeObject <LoginResponse>(await Get(requestUrl, _token));
                return(lst);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error("CambioRuolo", ex);
                throw ex;
            }
            catch (Exception ex)
            {
                Log.Error("CambioRuolo", ex);
                throw ex;
            }
        }
        public async Task <ActionResult> CambioRuolo(RuoliIntEnum ruolo, string returnUrl)
        {
            LoginResponse response;

            try
            {
                response = await ApiGateway.CambioRuolo(ruolo);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(HttpNotFound(e.Message));
            }

            await SalvaDatiInCookies(response.persona, response.jwt, response.persona.userAD.Replace(@"CONSIGLIO\", ""));

            //if (Url.IsLocalUrl(returnUrl)) return Redirect(returnUrl);

            return(RedirectToAction("RiepilogoSedute", "Sedute"));
        }
        public async Task <RuoliDto> GetRuolo(RuoliIntEnum ruolo)
        {
            try
            {
                var requestUrl = $"{apiUrl}/persone/{(int)ruolo}";

                var lst = JsonConvert.DeserializeObject <RuoliDto>(await Get(requestUrl, _token));

                return(lst);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error("GetRuolo", ex);
                throw ex;
            }
            catch (Exception ex)
            {
                Log.Error("GetPersona", ex);
                throw ex;
            }
        }
Exemple #9
0
 public async Task <RUOLI> GetRuolo(RuoliIntEnum ruolo)
 {
     return(await _unitOfWork.Ruoli.Get((int)ruolo));
 }
        public async Task <Guid> SalvaUtente(PersonaUpdateRequest request, RuoliIntEnum ruolo)
        {
            try
            {
                var intranetAdService = new proxyAD();

                if (request.UID_persona == Guid.Empty)
                {
                    //NUOVO

                    string ldapPath     = "OU=PEM,OU=Intranet,OU=Gruppi,DC=consiglio,DC=lombardia";
                    string autoPassword = _logicUtil.GenerateRandomCode();
                    intranetAdService.CreatePEMADUser(
                        request.userAD,
                        autoPassword,
                        ruolo == RuoliIntEnum.Amministratore_Giunta,
                        AppSettingsConfiguration.TOKEN_W
                        );
                    autoPassword = ruolo == RuoliIntEnum.Amministratore_Giunta ? $"{autoPassword}" : "[Stessa usata per accedere al tuo pc]";

                    request.UID_persona = Guid.NewGuid();
                    request.no_Cons     = 1;
                    UTENTI_NoCons newUser = request;
                    _unitOfWork.Persone.Add(newUser);
                    await _unitOfWork.CompleteAsync();


                    await _logicUtil.InvioMail(new MailModel
                    {
                        DA        = "*****@*****.**",
                        A         = request.email,
                        CC        = "*****@*****.**",
                        OGGETTO   = "PEM - Utenza aperta",
                        MESSAGGIO =
                            $"Benvenuto in PEM, <br/> utilizza le seguenti credenziali: <br/> <b>Username</b> <br/> {request.userAD.Replace(@"CONSIGLIO\", "")}<br/> <b>Password</b> <br/> {autoPassword}<br/><br/> {AppSettingsConfiguration.urlPEM}"
                    });
                }
                else
                {
                    foreach (var item in request.gruppiAd)
                    {
                        if (item.Membro)
                        {
                            try
                            {
                                var resultAdd = intranetAdService.AddUserToADGroup(item.GruppoAD, request.userAD,
                                                                                   AppSettingsConfiguration.TOKEN_W);
                                if (resultAdd != 0)
                                {
                                    throw new InvalidOperationException($"Errore inserimento gruppo AD [{item.GruppoAD}]");
                                }
                            }
                            catch (Exception e)
                            {
                                Log.Error($"Add - {item.GruppoAD}", e);
                            }
                        }
                        else
                        {
                            try
                            {
                                var resultRemove = intranetAdService.RemoveUserFromADGroup(item.GruppoAD,
                                                                                           request.userAD,
                                                                                           AppSettingsConfiguration.TOKEN_W);
                                if (resultRemove == false)
                                {
                                    throw new InvalidOperationException($"Errore rimozione gruppo AD [{item.GruppoAD}]");
                                }
                            }
                            catch (Exception e)
                            {
                                Log.Error($"Remove - {item.GruppoAD}", e);
                            }
                        }
                    }


                    if (request.no_Cons == 1)
                    {
                        //Consigliere/Assessore
                        UTENTI_NoCons persona = await _unitOfWork.Persone.Get_NoCons(request.UID_persona);

                        persona.id_gruppo_politico_rif = request.id_gruppo_politico_rif;
                        persona.UserAD            = request.userAD;
                        persona.notifica_firma    = request.notifica_firma;
                        persona.notifica_deposito = request.notifica_deposito;
                        await _unitOfWork.CompleteAsync();
                    }
                    else
                    {
                        await _unitOfWork.Persone.UpdateUtente_NoCons(request.UID_persona, request.id_persona,
                                                                      request.userAD.Replace(@"CONSIGLIO\", ""));
                    }
                }

                return(request.UID_persona);
            }
            catch (Exception e)
            {
                throw e;
            }
        }