コード例 #1
0
ファイル: ProfileService.cs プロジェクト: Basil1991/MicroDDD
        //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();
                    }
                }
            }
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
ファイル: MeleeUserRepository.cs プロジェクト: twdean/MeleeMe
        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);
        }
コード例 #4
0
 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));
 }
コード例 #5
0
ファイル: MeleeUserRepository.cs プロジェクト: twdean/MeleeMe
        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);
        }
コード例 #6
0
        // 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));
        }
コード例 #7
0
        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));
        }
コード例 #8
0
ファイル: MeleeUserRepository.cs プロジェクト: twdean/MeleeMe
        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);
        }
コード例 #9
0
 //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)
     });
 }
コード例 #10
0
        //[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));
        }
コード例 #11
0
        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));
        }