コード例 #1
0
        //[Authorize(Roles = "Admin")]
        public async Task <bool> AgregarRoleUsuario(UsuarioRole ur)
        {
            try
            {
                var role = await roleManager.FindByNameAsync(ur.Role);

                if (role == null)
                {
                    throw new Exception("El Role no existe");
                }

                var user = await userManager.FindByNameAsync(ur.Username);

                if (user == null)
                {
                    throw new Exception("El Usuario no existe");
                }

                var result = await userManager.AddToRoleAsync(user, ur.Role);

                if (result.Succeeded)
                {
                    return(true);
                }
                return(false);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
コード例 #2
0
        public string getNome(string id)
        {
            UsuarioRole ur = db.UsuarioRole.SingleOrDefault(x => x.UserId == id);

            if (ur != null)
            {
                switch (ur.RoleId)
                {
                case "0":
                    return("Administrador");

                case "1":
                    return(db.Clientes.Find(id).nome);

                case "2":
                    return(db.Cooperativas.Find(id).razaoSocial);

                case "3":
                    return(db.Empresas.Find(id).razaoSocial);

                case "4":
                    return(db.Funcionarios.Find(id).nome);

                default:
                    return("Usuário");
                }
            }
            return("Usuário");
        }
コード例 #3
0
 public UsuariosController(ApplicationDbContext context, UserManager <ApplicationUser> userManager, RoleManager <IdentityRole> roleManager)
 {
     _context     = context;
     _userManager = userManager;
     _roleManager = roleManager;
     _usuarioRole = new UsuarioRole();
     usuarioRole  = new List <SelectListItem>();
 }
コード例 #4
0
 private Usuario(string nome, string email, double latitude, double longitude, UsuarioRole role)
 {
     Nome      = nome;
     Email     = email;
     Latitude  = latitude;
     Longitude = longitude;
     Role      = role;
 }
コード例 #5
0
        public async Task <IActionResult> Eliminar([FromBody] UsuarioRole itemN)
        {
            //buscar la UsuarioRole
            var itemEncontrado = await this.Repositorio.UsuarioRoles.FindAsync(x => x.UsuarioId == itemN.UsuarioId && x.RoleId == itemN.RoleId);

            if (itemEncontrado == null)
            {
                return(BadRequest(new { ok = false, mensaje = $"No se encontró el UsuarioRole con Id {itemN.RoleId}", erros = "" }));
            }

            // borrado fisico

            this.Repositorio.UsuarioRoles.RemoveRange(itemEncontrado);
            await this.Repositorio.CompleteAsync();


            #region REMUEVE MODULOS DEFAULT

            //Asignar los modulos default del role
            var listaModulos = await this.Repositorio.RoleModulosDefault.FindAsync(x => x.RoleId == itemN.RoleId);

            if (listaModulos.Any())
            {
                var arrayMod = listaModulos.FirstOrDefault().Modulos.Split(',');

                if (arrayMod.Length > 0)
                {
                    List <UsuarioModulo> listaUM = new List <UsuarioModulo>();
                    foreach (var key in arrayMod)
                    {
                        UsuarioModulo itum = new UsuarioModulo()
                        {
                            UsuarioId = itemN.UsuarioId,
                            ModuloId  = Int32.Parse(key)
                        };
                    }

                    if (listaUM.Any())
                    {
                        this.Repositorio.UsuarioModulos.RemoveRange(listaUM);
                        await this.Repositorio.CompleteAsync();
                    }
                }
            }
            #endregion



            var obj = new
            {
                ok          = true,
                mensaje     = $"Se Borró el UsuarioRole {itemN.RoleId}, correctamente",
                UsuarioRole = itemEncontrado
            };

            return(Ok(obj));
        }
コード例 #6
0
        public string getRoles(string id)
        {
            UsuarioRole ur = db.UsuarioRole.SingleOrDefault(x => x.UserId == id);

            return(ur != null && ur.RoleId == "0" ? "Admin" :
                   ur != null && ur.RoleId == "1" ? "Cliente" :
                   ur != null && ur.RoleId == "2" ? "Cooperativa" :
                   ur != null && ur.RoleId == "3" ? "Empresa" :
                   ur != null && ur.RoleId == "4" ? "Funcionario" :
                   " ");
        }
コード例 #7
0
        public async Task <ActionResult> RegisterFuncionario(RegFuncionarioViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName     = model.email,
                    Email        = model.email,
                    ativo        = true,
                    dataCadastro = DateTime.Now
                };

                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    string       idCoop = User.Identity.GetUserId();
                    Funcionarios f      = new Funcionarios()
                    {
                        funcionarioId  = user.Id,
                        cooperativaId  = idCoop,
                        nome           = model.nome,
                        dataNascimento = model.dataNascimento
                    };

                    Roles r = db.Roles.Find("4");
                    if (r == null)
                    {
                        r      = new Roles();
                        r.Id   = "4";
                        r.Name = "Funcionario";
                        db.Roles.Add(r);
                    }

                    UsuarioRole ur = new UsuarioRole();
                    ur.UserId = user.Id;
                    ur.RoleId = "4";

                    db.UsuarioRole.Add(ur);
                    db.Funcionarios.Add(f);
                    db.SaveChanges();

                    return(RedirectToAction("Funcionarios", "Cooperativas"));
                }
                else
                {
                    ViewBag.UsuarioExiste = "E-mail já cadastrado!";
                }
            }

            return(View(model));
        }
コード例 #8
0
        public ActionResult DeleteFuncionario(string id)
        {
            Funcionarios f  = db.Funcionarios.Find(id);
            Usuarios     u  = db.Usuarios.Find(id);
            UsuarioRole  ur = db.UsuarioRole.Where(x => x.UserId == id).SingleOrDefault();

            db.Funcionarios.Remove(f);
            db.Usuarios.Remove(u);
            db.UsuarioRole.Remove(ur);
            db.SaveChanges();

            return(RedirectToAction("Funcionarios", "Cooperativas"));
        }
コード例 #9
0
        public Result <UsuarioRole> InsUsuarioRole(UsuarioRole role)
        {
            var result = new Result <UsuarioRole>();

            try
            {
                using (var connection = _dapperAdapter.Open())
                {
                    role.Id        = connection.Insert(role);
                    result.Success = true;
                }
            }
            catch (Exception ex)
            {
                result.Message   = "Error insertando rol a usuario.";
                result.Exception = ex;
            }
            return(result);
        }
コード例 #10
0
        public Result <Nothing> DelUsuarioRole(UsuarioRole role)
        {
            var result = new Result <Nothing>();

            try
            {
                using (var connection = _dapperAdapter.Open())
                {
                    connection.Execute("delete from SEG.UsuariosRoles where RoleId = @RoleId and UsuarioId = @UsuarioId", role);
                }
                result.Success = true;
            }
            catch (Exception ex)
            {
                result.Message   = "Error borrando rol a usuario.";
                result.Exception = ex;
            }

            return(result);
        }
コード例 #11
0
 public static Usuario Criar(string nome, string email, double latitude, double longitude, UsuarioRole role)
 {
     return(new Usuario(nome, email, latitude, longitude, role));
 }
コード例 #12
0
ファイル: Extenciones.cs プロジェクト: gauss13/Perfiles
 public static void Map(this UsuarioRole itemDb, UsuarioRole itemNuevo)
 {
     itemDb.UsuarioId = itemNuevo.UsuarioId;
     itemDb.RoleId    = itemNuevo.RoleId;
 }
コード例 #13
0
        public async Task <IActionResult> Crear([FromBody] UsuarioRole item)
        {
            try
            {
                var r = await this.Repositorio.UsuarioRoles.AddAsync(item);

                await this.Repositorio.CompleteAsync();

                #region ASIGNAR MODULOS DEFAULT


                //Asignar los modulos default del role
                var listaModulos = await this.Repositorio.RoleModulosDefault.FindAsync(x => x.RoleId == item.RoleId);

                if (listaModulos.Any())
                {
                    var arrayMod = listaModulos.FirstOrDefault().Modulos.Split(',');

                    if (arrayMod.Length > 0)
                    {
                        List <UsuarioModulo> listaUM = new List <UsuarioModulo>();
                        foreach (var key in arrayMod)
                        {
                            UsuarioModulo itum = new UsuarioModulo()
                            {
                                UsuarioId = item.UsuarioId,
                                ModuloId  = Int32.Parse(key)
                            };

                            listaUM.Add(itum);
                        }

                        if (listaUM.Any())
                        {
                            await this.Repositorio.UsuarioModulos.AddRangeAsync(listaUM);

                            await this.Repositorio.CompleteAsync();
                        }
                    }
                }

                #endregion


                var obj = new
                {
                    ok          = true,
                    UsuarioRole = r
                };

                return(Created("", obj));
            }
            catch (Exception ex)
            {
                return(BadRequest(new
                {
                    ok = false,
                    mensaje = "Se produjo un error al crear la UsuarioRole",
                    errors = new { mensaje = ex.Message }
                }));
            }
        }
コード例 #14
0
        public async Task <ActionResult> RegisterCooperativa(RegisterCooperativaViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName     = model.email,
                    Email        = model.email,
                    ativo        = true,
                    dataCadastro = DateTime.Now
                };

                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

                    NetGoogleGeocoding geoCoder = new NetGoogleGeocoding();

                    string endereco         = model.endereco + ", " + model.numero;
                    string enderecoConsulta = endereco + " - " + model.cidade + " - " + model.estado;

                    Cooperativas c = new Cooperativas();
                    c.cooperativaId = user.Id;
                    c.cnpj          = model.cnpj;
                    c.razaoSocial   = model.razaoSocial;
                    c.endereco      = endereco;
                    c.cidade        = model.cidade;
                    c.estado        = model.estado;

                    try
                    {
                        var response = geoCoder.GoogleGeocode(enderecoConsulta).GeoCodes[0];
                        if (response != null)
                        {
                            c.enderecoCoordenada = geoCoder.ConvertLatLonToDbGeometry(response.Longitude, response.Latitude);
                        }
                        else
                        {
                            c.enderecoCoordenada = null;
                        }
                    }
                    catch (Exception)
                    {
                        c.enderecoCoordenada = null;
                    }

                    Roles r = db.Roles.Find("2");
                    if (r == null)
                    {
                        r      = new Roles();
                        r.Id   = "2";
                        r.Name = "Cooperativa";
                        db.Roles.Add(r);
                    }

                    UsuarioRole ur = new UsuarioRole();
                    ur.UserId = user.Id;
                    ur.RoleId = "2";

                    db.UsuarioRole.Add(ur);

                    db.Cooperativas.Add(c);
                    db.SaveChanges();

                    LoginViewModel lvm = new LoginViewModel()
                    {
                        Email      = model.email,
                        Password   = model.Password,
                        RememberMe = false
                    };

                    return(await Login(lvm, null));
                }
                AddErrors(result);
            }

            ViewBag.retorno = @Url.Action("Login", "Account");

            return(View(model));
        }
コード例 #15
0
        public async Task <ActionResult> RegisterCliente(RegisterClienteViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName     = model.email,
                    Email        = model.email,
                    ativo        = true,
                    dataCadastro = DateTime.Now
                };

                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    //await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

                    NetGoogleGeocoding geoCoder = new NetGoogleGeocoding();

                    string endereco         = model.endereco + ", " + model.numero;
                    string enderecoConsulta = endereco + " - " + model.cidade + " - " + model.estado;

                    Clientes c = new Clientes();
                    c.clienteId = user.Id;
                    //c.cpf = model.cpf.Replace(".", "").Replace("-", ""); // Se Habilitar o cadastro com CPF, descomente está linha
                    c.tipo           = model.tipo.ToString();
                    c.nome           = model.nome;
                    c.endereco       = enderecoConsulta;
                    c.email          = model.email;
                    c.sexo           = model.sexo.ToString();
                    c.dataNascimento = model.dataNascimento;
                    if (model.telefone != null)
                    {
                        c.telefone = model.telefone.Replace("(", "").Replace(")", "").Replace("-", "").Replace(" ", ""); // adicionei o Replace (Teste) - Titans
                    }
                    c.celular       = model.celular.Replace("(", "").Replace(")", "").Replace("-", "").Replace(" ", ""); // adicionei o Replace (Teste) - Titans
                    c.cooperativaId = model.cooperativaId;

                    try
                    {
                        var response = geoCoder.GoogleGeocode(enderecoConsulta).GeoCodes[0];
                        if (response != null)
                        {
                            c.enderecoCoordenada = geoCoder.ConvertLatLonToDbGeometry(response.Longitude, response.Latitude);
                        }
                        else
                        {
                            c.enderecoCoordenada = null;
                        }
                    }
                    catch (Exception)
                    {
                        c.enderecoCoordenada = null;
                    }

                    Roles r = db.Roles.Find("1");
                    if (r == null)
                    {
                        r      = new Roles();
                        r.Id   = "1";
                        r.Name = "Cliente";
                        db.Roles.Add(r);
                    }

                    UsuarioRole ur = new UsuarioRole();
                    ur.UserId = user.Id;
                    ur.RoleId = "1";

                    db.UsuarioRole.Add(ur);

                    db.Clientes.Add(c);
                    db.SaveChanges();

                    LoginViewModel lvm = new LoginViewModel()
                    {
                        Email      = model.email,
                        Password   = model.Password,
                        RememberMe = false
                    };

                    return(await Login(lvm, null));
                }
                AddErrors(result);
            }

            #region ValidaçãoFalha
            var SexoList = new List <dynamic>();
            SexoList.Add(new { Id = "M", Text = "Masculino" });
            SexoList.Add(new { Id = "F", Text = "Feminino" });
            ViewBag.sexo = new SelectList(SexoList, "Id", "Text");

            var TipoList = new List <dynamic>();
            TipoList.Add(new { Id = "D", Text = "Doador" });
            TipoList.Add(new { Id = "V", Text = "Vendedor" });
            ViewBag.tipo = new SelectList(TipoList, "Id", "Text");

            var EstadoList = new List <dynamic>();
            EstadoList.Add(new { Id = "SE", Text = "Sergipe" });
            EstadoList.Add(new { Id = "BA", Text = "Bahia" });
            ViewBag.estado = new SelectList(EstadoList, "Id", "Text");

            ViewBag.cooperativas = new SelectList(db.Cooperativas, "cooperativaId", "cnpj", model.cooperativaId);

            ViewBag.retorno = @Url.Action("Login", "Account");

            #endregion

            return(View(model));
        }