//Get user profile date in terms of claims when calling /connect/userinfo public async Task GetProfileDataAsync(ProfileDataRequestContext context) { if (!string.IsNullOrEmpty(context.Subject.Identity.Name)) { m_User user = await _userRepository.FirstOrDefaultAsync(a => a.Name == context.Subject.Identity.Name); if (user != null) { var claims = ResourceOwnerPasswordValidator.GetUserClaims(user); context.IssuedClaims = claims.Where(x => context.RequestedClaimTypes.Contains(x.Type)).ToList(); } } else { //get subject from context (this was set ResourceOwnerPasswordValidator.ValidateAsync), //where and subject was set to my user id. var userId = context.Subject.Claims.FirstOrDefault(x => x.Type == "sub"); if (!string.IsNullOrEmpty(userId?.Value) && int.Parse(userId.Value) > 0) { //get user from db (find user by user id) var user = _userRepository.Get(int.Parse(userId.Value)); // issue the claims for the user if (user != null) { var claims = ResourceOwnerPasswordValidator.GetUserClaims(user); context.IssuedClaims = claims.Where(x => context.RequestedClaimTypes.Contains(x.Type)).ToList(); } } } }
public ActionResult DeleteConfirmed(int id) { m_User m_User = db.m_Users.Find(id); db.m_Users.Remove(m_User); db.SaveChanges(); return(RedirectToAction("Index")); }
public UserModel Add(string id, string profileImageUrl, string screenName, string token, string OAuthToken) { var newUser = null as UserModel; var dbContext = new MeleeMeEntities(); using (dbContext) { var mUser = dbContext.m_User.FirstOrDefault(mu => mu.TwitterUserId == id); if (mUser != null) { var um = new UserModel { TwitterUserId = id, UserId = mUser.UserId, ImageUrl = profileImageUrl, AccessToken = mUser.m_Credentials.Select(at => at.AccessToken).ToString(), Stats = MeleeRepository.GetMeleeStats(id, UserType.Challenger), Connections = new ConnectionRepository().Get(mUser.UserId) }; mUser.ProfileImageUrl = profileImageUrl; mUser.ScreenName = screenName; dbContext.SaveChanges(); return(um); } var u = new m_User { TwitterUserId = id, ProfileImageUrl = profileImageUrl, ScreenName = screenName }; dbContext.m_User.Add(u); AddUserCredentials(dbContext, u, token); AddConnection(dbContext, u, token, OAuthToken); newUser = new UserModel { TwitterUserId = id, ImageUrl = profileImageUrl, ScreenName = screenName, AccessToken = token, UserId = u.UserId, Stats = new MeleeStatisticsModel() }; dbContext.SaveChanges(); newUser.Connections = new ConnectionRepository().Get(u.UserId); } return(newUser); }
public ActionResult Edit([Bind(Include = "ID,loginid,password,name,gender,follows")] m_User m_User) { if (ModelState.IsValid) { db.Entry(m_User).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(m_User)); }
private static void AddUserCredentials(MeleeMeEntities dbContext, m_User u, string accessToken) { var c = new m_Credentials { UserId = u.UserId, AccessToken = accessToken }; dbContext.m_Credentials.Add(c); }
// GET: m_User/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } m_User m_User = db.m_Users.Find(id); if (m_User == null) { return(HttpNotFound()); } return(View(m_User)); }
public ActionResult Create([Bind(Include = "ID,loginid,password,name,gender,follows")] m_User m_User) { if (ModelState.IsValid) { m_User.password = Helper.AESHelper.Encrypt(m_User.password); db.m_Users.Add(m_User); db.SaveChanges(); Session["id"] = m_User.ID; Session["name"] = m_User.name; return(RedirectToAction("UserLog", "Log")); } return(View(m_User)); }
private void AddConnection(MeleeMeEntities dbContext, m_User u, string accessToken, string OAuthToken) { var conn = new m_UserConnections { UserId = u.UserId, ConnectionId = (from c in dbContext.m_Connections where c.ConnectionName == "Twitter" select c.ConnectionId).FirstOrDefault(), AccessToken = accessToken, OAuthToken = OAuthToken }; dbContext.m_UserConnections.Add(conn); }
//build claims array from user data public static Claim[] GetUserClaims(m_User user) { return(new Claim[] { new Claim("user_id", user.Id.ToString() ?? ""), new Claim(JwtClaimTypes.Name, user.Name), new Claim(JwtClaimTypes.GivenName, user.Name), new Claim(JwtClaimTypes.FamilyName, user.Name), //new Claim(JwtClaimTypes.Email, user.Email ?? ""), //new Claim("some_claim_you_want_to_see", user.Some_Data_From_User ?? ""), ////roles //new Claim(JwtClaimTypes.Role, user.Role) }); }
//[TestMethod] public void TestManyToMany() { m_User user1 = new m_User(); user1.Name = "teddy1"; m_User user2 = new m_User(); user2.Name = "teddy2"; m_Group group = new m_Group(); group.Name = "group"; group.Users.Add(user1); group.Users.Add(user2); gateway.Save(group); Assert.AreEqual(2, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(2, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); user1 = gateway.Find <m_User>(user1.ID); user1.Groups = new m_GroupArrayList(); gateway.Save(user1); Assert.AreEqual(2, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); user1.Groups.Add(group); gateway.Save(user1); Assert.AreEqual(2, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(2, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); gateway.Delete(user1); Assert.AreEqual(1, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); group = gateway.Find <m_Group>(group.ID); group.Users = null; gateway.Save(group); Assert.AreEqual(0, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(0, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(1, gateway.Count <m_Group>(WhereClip.All)); gateway.Delete(group); Assert.AreEqual(0, gateway.Count <m_User>(WhereClip.All)); Assert.AreEqual(0, gateway.Count <m_UserGroup>(WhereClip.All)); Assert.AreEqual(0, gateway.Count <m_Group>(WhereClip.All)); }
public ActionResult UserBinfo(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if ((int)id == (int)Session["id"]) { return(RedirectToAction("ShowList", "m_Blog")); } m_User m_User = db.m_Users.Find(id); if (m_User == null) { return(HttpNotFound()); } return(View(m_User)); }