Ejemplo n.º 1
0
      public void Save(TadmapImage image)
      {
         bool isNew = false;

         TadmapDb db = new TadmapDb();
         UserImage dbImage = db.UserImages.SingleOrDefault(i => i.Id == image.Id);

         if (dbImage == null)
         {
            dbImage = new UserImage();

            // can't change date added, id or owner
            dbImage.DateAdded = DateTime.Now;
            dbImage.UserId = image.UserId;
            dbImage.Id = image.Id;

            isNew = true;
         }
         else
         {
            isNew = false;
         }

         dbImage.Title = image.Title;
         dbImage.Description = image.Description;
         dbImage.Key = image.Key;
         dbImage.OffensiveCount = image.IsOffensive ? (byte)1 : (byte)0;
         dbImage.Privacy = image.IsPublic ? (byte)1 : (byte)0;

         if (isNew)
            db.UserImages.InsertOnSubmit(dbImage);

         db.SubmitChanges();
      }
Ejemplo n.º 2
0
      public IQueryable<TadmapImage> GetAllImages()
      {
         TadmapDb db = new TadmapDb();

         return from i in db.UserImages
                select new TadmapImage
                {
                   Id = i.Id,
                   Title = i.Title,
                   Description = i.Description,
                   Key = i.Key,
                   IsPublic = i.Privacy == 1,
                   IsOffensive = i.OffensiveCount > 0,
                   OwnerName = i.User.UserOpenIds.Single().OpenIdUrl,
                   ImageSet = new ImageSet1(i.Key)
                };
      }
Ejemplo n.º 3
0
      private Guid CreateNewUser(string openIdUrl)
      {
         TadmapDb db = new TadmapDb(Database.TadmapConnection);

         User newUser = new User();
         newUser.Id = Guid.NewGuid();
         newUser.Name = string.Empty;

         UserRole newUserRole = new UserRole();
         newUserRole.UserId = newUser.Id;
         newUserRole.Role = TadmapRoles.Collector;

         UserOpenId newOpenId = new UserOpenId();
         newOpenId.UserId = newUser.Id;
         newOpenId.OpenIdUrl = openIdUrl;

         db.Users.InsertOnSubmit(newUser);
         db.UserRoles.InsertOnSubmit(newUserRole);
         db.UserOpenIds.InsertOnSubmit(newOpenId);

         db.SubmitChanges();

         return newUser.Id;
      }
Ejemplo n.º 4
0
      /// <summary>
      /// This authenticates a user based on a response from an openid provider.
      /// </summary>
      private ActionResult AuthenticateUser(IAuthenticationResponse response)
      {
         if (response.Status != AuthenticationStatus.Authenticated)
            throw new ArgumentException("The response status must be 'Authenticated'. (" + response.Status.ToString() + ")", "response");

         TadmapDb db = new TadmapDb();

         var user = db.UserOpenIds.Where(u => u.OpenIdUrl == response.ClaimedIdentifier.ToString()).SingleOrDefault();
         Guid userId;

         if (user != null)
         {
            userId = user.UserId;
         }
         else
         {
            userId = CreateNewUser(response.ClaimedIdentifier.ToString());
         }

         var roles = from role in db.UserRoles
                     where role.UserId == userId
                     select role.Role;

         CookieUserData userData = new CookieUserData(
            userId,
            response.FriendlyIdentifierForDisplay.ToString(),
            roles.ToArray()
         );
         
         FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
           1,
           response.ClaimedIdentifier.ToString(),
           DateTime.Now,
           DateTime.Now.AddHours(5),
           false,
           userData.ToString()
         );

         // Encrypt the ticket.
         string encTicket = FormsAuthentication.Encrypt(ticket);

         // Create the cookie.
         Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

         return RedirectToAction("Index", new { controller = "Home" });
      }