Ejemplo n.º 1
0
        public JsonResult AddMessage(NewMessageViewModel message)
        {
            if (!string.IsNullOrEmpty(message.MessageBody))
            {
                var context = new EfDbContext();
                var username = User.Identity.IsAuthenticated ? User.Identity.Name : message.Username;

                var newMessage = new Message
                {
                    Username = username,
                    MessageBody = message.MessageBody,
                    PostedDateTime = DateTime.Now,
                    GameId = message.GameId
                };

                var identityManager = new IdentityManager();

                if (User.Identity.IsAuthenticated && !identityManager.IsUserInRole(User.Identity.GetUserId(), "Guest"))
                {
                    if (identityManager.IsUserInRole(User.Identity.GetUserId(), "Member"))
                    {
                        newMessage.Label = "Member";
                    }
                    else if (identityManager.IsUserInRole(User.Identity.GetUserId(), "Admin"))
                    {
                        newMessage.Label = "Admin";
                    }
                }
                else
                {
                    newMessage.Label = "Guest";
                }


                context.Messages.Add(newMessage);
                context.SaveChanges();
                var result = new {message = "Success"};
                return Json(result, JsonRequestBehavior.AllowGet);
            }
            else
            {
                var result = new { message = "Failed" };
                return Json(result, JsonRequestBehavior.AllowGet);
            }
        }
 // GET: /VideoStream/VideoStreamViewer
 public ActionResult StreamViewer(int id)
 {
     var identityManager = new IdentityManager();
     VideoStream videoStream = db.VideoStreams.FirstOrDefault(s => s.VideoStreamId == id);
     if (videoStream != null)
     {
         if (videoStream.IsPublic || identityManager.IsUserInRole(User.Identity.GetUserId(), "Member"))
         {
             return View(videoStream);
         }
     }
     return RedirectToAction("Index");
 }
Ejemplo n.º 3
0
 public VideoStreamViewModel(VideoStream stream, string userId)
     : this()
 {
     this.Source = stream.Source;
     this.IsLive = stream.IsLive;
     if (stream.IsPublic)
     {
         this.IsPublic = true;
     }
     else
     {
         var identityManager = new IdentityManager();
         this.IsPublic = identityManager.IsUserInRole(userId, "Member");
     }
 }
Ejemplo n.º 4
0
        public async static void ConfigureRoles()
        {
            var identityManager = new IdentityManager();

            const string superAdminRole = "SuperAdmin";
            const string adminUser = "******";

            var roles = new List<string>() {superAdminRole, "Admin", "Moderator", "Member", "Guest"};

            foreach (var role in roles)
            {
                if (!identityManager.RoleExists(role))
                {
                    identityManager.CreateRole(role);
                }
            }

            if (!await identityManager.UserExistsAsync(adminUser))
            {
                await identityManager.CreateUserAsync(new ApplicationUser()
                {
                    UserName = adminUser
                },
                "jk/2eRb296#{1=m");
            }

            if (!identityManager.IsUserInRole(identityManager.GetUserIdByName(adminUser), superAdminRole))
                await
                    identityManager.AddUserToRoleAsync(await identityManager.GetUserIdByNameAsync(adminUser),
                        superAdminRole);

            if (!identityManager.IsUserInRole(identityManager.GetUserIdByName(adminUser), "Admin"))
                await
                    identityManager.AddUserToRoleAsync(await identityManager.GetUserIdByNameAsync(adminUser),
                        "Admin");
        }
        public ActionResult Edit(int? id)
        {
            var identityManager = new IdentityManager();
            if (id != null)
            {
                var viewModel = new EditStreamGroupsViewModel(db.VideoStreams.Find(id));
                
                var userId = User.Identity.GetUserId();
                if (identityManager.IsUserInRole(userId, "Admin"))
                {
                    viewModel.AllGroups = db.Groups.ToList().Select(g => new SelectListItem
                                    {
                                        Text = g.Name,
                                        Value = g.GroupId.ToString()
                                    });
                }
                else
                {
                    viewModel.AllGroups = db.Groups.ToList().Where(g => g.OwnerId == userId).Select(g => new SelectListItem
                                    {
                                        Text = g.Name,
                                        Value = g.GroupId.ToString()
                                    });
                }


                viewModel.Groups = db.Groups.Where(group => group.Streams.Any(stream => stream.VideoStreamId == id)).ToList();
                                
                

                if (viewModel != null)
                {
                    ViewBag.Title = "Edit";
                    return View(viewModel);
                }
            }
            
            return RedirectToActionPermanent("AccessDenied", "Home");
        }
Ejemplo n.º 6
0
        public async Task<ActionResult> ViewThread(int threadId, int page = 1, ViewSortOrder sortOrder = ViewSortOrder.DateAscending )
        {
            var identityManager = new IdentityManager();
            var thread = await this.db.Threads.SingleOrDefaultAsync(t => t.ThreadId == threadId);

            ForumPostsViewModel model =
                ForumMapping.ForumPostsToForumPostsViewModel(
                    new ForumItems().WithThreadId(threadId).WithPageSize(
                        this.pageSize).WithSortOrder(sortOrder).Posts(page),
                        thread,
                        sortOrder,
                        page,
                        this.pageSize);

            foreach (var post in model.ForumPosts)
            {
                var userId = await identityManager.GetUserIdByNameAsync(post.Username);
                var tag = "Guest";

                if (!string.IsNullOrEmpty(userId))
                {
                    if (identityManager.IsUserInRole(userId, "Member"))
                    {
                        tag = "Member";
                    }
                    else if (identityManager.IsUserInRole(userId, "Moderator"))
                    {
                        tag = "Moderator";
                    }
                    else if (identityManager.IsUserInRole(userId, "Admin"))
                    {
                        tag = "Admin";
                    }
                }

                post.UserTag = tag;

                var post1 = post;
                post.UserPosts = User.Identity.IsAuthenticated
                    ? await db.ForumPosts.CountAsync(p => p.Username == post1.Username)
                    : 0;

            }

            this.UpdateCategoryList();

            model.ParentThread.CategoryName =
                CategoryList.SingleOrDefault(c => thread != null && c.Key == thread.CategoryId).Value;
            
            return this.View(model);
        }