Exemplo n.º 1
0
        public void CargarRoles(Models.Profesional oProf)
        {
            #region Creación dinámica de roles
            //Roles Progress
            if (!Roles.RoleExists("SADM"))
            {
                Roles.CreateRole("SADM");
            }
            if (!Roles.RoleExists("AADM"))
            {
                Roles.CreateRole("AADM");
            }
            if (!Roles.RoleExists("PBAS"))
            {
                Roles.CreateRole("PBAS");
            }
            if (!Roles.RoleExists("PEVA"))
            {
                Roles.CreateRole("PEVA");
            }
            if (!Roles.RoleExists("PAPR"))
            {
                Roles.CreateRole("PAPR");
            }
            if (!Roles.RoleExists("PPFE"))
            {
                Roles.CreateRole("PPFE");
            }
            if (!Roles.RoleExists("PVIS"))
            {
                Roles.CreateRole("PVIS");
            }
            if (!Roles.RoleExists("REC"))
            {
                Roles.CreateRole("REC");
            }
            #endregion

            //Se borran los roles que pudiera tener el usuario.
            foreach (string Rol in Roles.GetRolesForUser(HttpContext.Current.User.Identity.Name))
            {
                Roles.RemoveUserFromRole(HttpContext.Current.User.Identity.Name, Rol);
            }

            #region Asignar Roles
            OpenDbConn();

            List <string>   rolesProfesional = new List <string>();
            DAL.Profesional cProfesional     = new DAL.Profesional(cDblib);
            rolesProfesional = cProfesional.ObtenerRoles(oProf.t001_idficepi);


            foreach (string rol in rolesProfesional)
            {
                if (!HttpContext.Current.User.IsInRole(rol))
                {
                    Roles.AddUserToRole(HttpContext.Current.User.Identity.Name, rol);
                }
            }

            if (HttpContext.Current.Session["PROFESIONAL_ENTRADA"] != null && HttpContext.Current.Session["PROFESIONAL"] != HttpContext.Current.Session["PROFESIONAL_ENTRADA"])
            {
                Models.Profesional oProfEntrada = (Models.Profesional)HttpContext.Current.Session["PROFESIONAL_ENTRADA"];
                if (oProfEntrada.roles.Contains("REC"))
                {
                    if (!HttpContext.Current.User.IsInRole("REC"))
                    {
                        Roles.AddUserToRole(HttpContext.Current.User.Identity.Name, "REC");
                    }
                }
            }

            HttpContext.Current.Session["ROLES"] = rolesProfesional;
            oProf.roles = rolesProfesional;

            #endregion
        }