Example #1
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            var user = MembershipSession.GetUser();

            if (user.IsAuthenticated && (string.IsNullOrEmpty(user.Email) || !user.HasSigned))
            {
                this.HandleUnauthorizedRequest(filterContext);
            }
            else
            {
                base.OnAuthorization(filterContext);
            }
        }
Example #2
0
 public override string GetUserId(Controller controller)
 {
     // In this sample we use the session to store the user identifiers.
     // That's not the best practice, because you should have a logic to identify
     // a user. You might want to use "OpenID Connect".
     // You can read more about the protocol in the following link:
     // https://developers.google.com/accounts/docs/OAuth2Login.
     //var user = controller.Session["google.user"];
     //if (user == null)
     //{
     //    user = Guid.NewGuid();
     //    controller.Session["google.user"] = user;
     //}
     //return user.ToString();
     return(MembershipSession.GetUser(controller.Session, controller.User.Identity).Id);
 }
Example #3
0
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            var user       = MembershipSession.GetUser();
            var controller = filterContext.Controller as BaseController;

            if (user.IsAuthenticated && (string.IsNullOrEmpty(user.Email) || !user.HasSigned))
            {
                string manifestController = "Account";
                string manifestAction     = "Manifest";
                if (!(filterContext.RouteData.Values["controller"].ToString() == manifestController && filterContext.RouteData.Values["action"].ToString() == manifestAction))
                {
                    if (controller.IsAjaxRequest)
                    {
                        filterContext.Result = new JsonResult()
                        {
                            JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                            Data = new
                            {
                                Message = "SignRequired: Patvirtinkite el. paštą ir sutikite su taisyklėmis.",
                                Url     =
                                    new UrlHelper(
                                        ((MvcHandler)HttpContext.Current.Handler).RequestContext).
                                    Action(manifestAction, manifestController)
                            }
                        };
                    }
                    else
                    {
                        var routeVals = new RouteValueDictionary()
                        {
                            { "controller", manifestController }, { "action", manifestAction }
                        };
                        filterContext.Result = new RedirectToRouteResult(routeVals);
                    }
                }
            }
            else if (!allowAnonymous)
            {
                base.HandleUnauthorizedRequest(filterContext);
            }
        }
Example #4
0
        public ChatIndexModel GetIndexModel()
        {
            using (var context = usersSessionFactory.CreateContext())
            {
                var userId = MembershipSession.GetUser().DbId;
                var orgIds = MembershipSession.GetUser().OrganizationIds;
                var model  = new ChatIndexModel();
                model.Groups =
                    context.ChatGroups.Where(c => c.ChatMessages.Any() && (!c.IsPrivate || orgIds.Contains(c.OrganizationId))).OrderByDescending(m => m.ChatMessages.Max(cm => cm.Date))
                    .Select(g => new ChatGroupModel()
                {
                    Id           = g.Id,
                    Name         = g.Name,
                    Url          = g.Url,
                    MessageCount = g.ChatMessages.Count(),
                    Date         = g.ChatMessages.Max(m => m.Date),
                    Users        = g.ChatGroupUsers.Where(u => u.UserId != userId).Select(u => new ChatUser()
                    {
                        Id       = u.User.ObjectId,
                        DbId     = u.User.Id,
                        Name     = u.User.FirstName + " " + u.User.LastName,
                        IsOnline = u.User.ChatClients.Any()
                    })
                }).Take(20).ToList();

                model.Users = context.ChatClients.Where(c => c.User.Id != userId).Select(c => new ChatUser()
                {
                    Id       = c.User.ObjectId,
                    DbId     = c.User.Id,
                    Name     = c.User.FirstName + " " + c.User.LastName,
                    IsOnline = true
                }).Distinct().ToList();

                return(model);
            }
        }