Exemple #1
0
        public override Task OnConnected()
        {
            string     userId      = Guid.Empty.ToString();
            OllertUser currentUser = null;

            if (Context.User != null)
            {
                var db = new Ollert.DAL.OllertDbContext();
                userId      = Context.User.Identity.GetUserId();
                currentUser = db.Users.First(u => u.Id == userId);
            }


            string connectionId = Context.ConnectionId;

            var user = ConnectedUsers.GetOrAdd(userId, _ => new User
            {
                UserName      = Context.User != null ? Context.User.Identity.Name : "<anonyme>",
                UserId        = userId,
                UseGravatar   = currentUser != null ? currentUser.UseGravatar : false,
                EmailMd5      = currentUser != null ? currentUser.EmailMd5 : string.Empty,
                ConnectionIds = new HashSet <string>()
            });

            lock (user.ConnectionIds)
            {
                user.ConnectionIds.Add(connectionId);
            }

            this.Clients.All.onConnected(ConnectedUsers.Select(u => u.Value));

            return(base.OnConnected());
        }
Exemple #2
0
        private async Task SignInAsync(OllertUser user, bool isPersistent)
        {
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
            var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);

            AuthenticationManager.SignIn(new AuthenticationProperties()
            {
                IsPersistent = isPersistent
            }, identity);
        }
Exemple #3
0
        public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Manage"));
            }

            if (ModelState.IsValid)
            {
                // Get the information about the user from the external login provider
                var info = await AuthenticationManager.GetExternalLoginInfoAsync();

                if (info == null)
                {
                    return(View("ExternalLoginFailure"));
                }
                var user = new OllertUser()
                {
                    UserName = model.UserName
                };
                var result = await UserManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    result = await UserManager.AddLoginAsync(user.Id, info.Login);

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

                        return(RedirectToLocal(returnUrl));
                    }
                }
                AddErrors(result);
            }

            ViewBag.ReturnUrl = returnUrl;
            return(View(model));
        }
Exemple #4
0
        protected override void Seed(Ollert.DAL.OllertDbContext context)
        {
            //  This method will be called after migrating to the latest version.

            var userManager = new UserManager <OllertUser>(new UserStore <OllertUser>(context));
            var user        = new OllertUser()
            {
                UserName = "******"
            };
            var userResult = userManager.Create(user, "123456");

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data. E.g.
            //

            var admin = context.Users.First(u => u.UserName == "Admin");

            var salle = new Salle
            {
                Nom          = "Development",
                Proprietaire = admin
            };

            context.Salles.AddOrUpdate(T => T.Nom, salle);

            var carte = new Carte
            {
                Titre         = "Card example 1",
                Description   = @"Do it really!",
                NumeroDemande = 40,
                DateCreation  = DateTime.Now,
                Etapes        = new List <CarteEtape> {
                    new CarteEtape {
                        Estimation = 1200, Position = 0, Terminee = false, Titre = "Total"
                    }
                }
            };

            var tableau1 = new Tableau {
                Nom = "Waiting", Position = 0, Salle = salle
            };

            tableau1.Cartes.Add(carte);

            var message = new Message
            {
                Texte       = "Hi, do it quickly!",
                CreateOn    = DateTime.Now,
                Utilisateur = context.Users.First()
            };

            carte.Messages = new List <Message> {
                message
            };

            context.Tableaux.AddOrUpdate(
                T => T.Nom,
                tableau1,
                new Tableau {
                Nom = "Pending", Position = 1, Salle = salle
            },
                new Tableau {
                Nom = "Accepted", Position = 2, Salle = salle
            },
                new Tableau {
                Nom = "Development", Position = 3, Salle = salle
            },
                new Tableau {
                Nom = "Tests", Position = 4, Salle = salle
            },
                new Tableau {
                Nom = "Done", Position = 5, Salle = salle
            }
                );

            //var db = new OllertDbContext();
            var david = new OllertUser()
            {
                UserName = "******",
                Email    = "*****@*****.**",
                Avatar   = System.IO.File.ReadAllBytes(this.MapPath("~/Content/images/avatar/david.png"))
            };
            var yannick = new OllertUser()
            {
                UserName = "******",
                Email    = "*****@*****.**",
                Avatar   = System.IO.File.ReadAllBytes(this.MapPath("~/Content/images/avatar/yannick.png"))
            };

            var r1 = userManager.Create(david, "123456");
            var r2 = userManager.Create(yannick, "123456");
        }