Ejemplo n.º 1
0
        public ActionResult PostUserRole()
        {
            string roleids = DoRequest.GetFormString("roleids");
            int    userid  = DoRequest.GetFormInt("userid");

            List <UserRoleList> oldlist = new List <UserRoleList>();
            var reslist = GetUserRole.Do(userid);

            if (reslist != null && reslist.Body != null && reslist.Body.user_role_list != null)
            {
                oldlist = reslist.Body.user_role_list;
            }

            string[]   newidss = roleids.Split(',');
            List <int> newids  = new List <int>();

            foreach (string em in newidss)
            {
                newids.Add(Utils.StrToInt(em, 0));
            }

            string delids = "";
            int    _count = 0;

            foreach (UserRoleList em in oldlist)
            {
                if (!newids.Contains(em.role_id))
                {
                    if (_count == 0)
                    {
                        delids = em.role_id.ToString();
                    }
                    else
                    {
                        delids = delids + "," + em.role_id.ToString();
                    }
                }
            }
            if (delids.Equals(""))
            {
                delids = "0";
            }
            int returnValue = -1;
            var res         = OpUserRole.Do(userid, roleids, delids);

            if (res != null && res.Header != null && res.Header.Result != null && res.Header.Result.Code != null)
            {
                returnValue = Utils.StrToInt(res.Header.Result.Code, -1);
            }
            if (returnValue == 0)
            {
                return(Json(new { error = false, message = "操作成功!" }));
            }

            return(Json(new { error = true, message = "操作失败!" }));
        }
Ejemplo n.º 2
0
        public ActionResult GetRoleList()
        {
            int                 userid   = DoRequest.GetFormInt("id");
            List <RoleInfo>     item1    = new List <RoleInfo>();
            List <UserRoleList> item2    = new List <UserRoleList>();
            var                 resrole  = QueryRoleList.Do();
            var                 resrole2 = GetUserRole.Do(userid);

            if (resrole != null && resrole.Body != null && resrole.Body.role_list != null && resrole2 != null && resrole2.Body != null && resrole2.Body.user_role_list != null)
            {
                item1 = resrole.Body.role_list;
                item2 = resrole2.Body.user_role_list;
                return(Json(new { error = false, role = item1, role2 = item2, message = "操作成功!" }));
            }

            return(Json(new { error = true, message = "操作失败" }));
        }
Ejemplo n.º 3
0
        public UserRoleInfo GetUserRole(string userId)
        {
            var      getUserRole = new GetUserRole(Client.Ticket, Token, Client.AccountDomain, ApplicationId, userId);
            var      xml         = getUserRole.Post();
            XElement userElm     = xml.Element("user");
            // User info
            var returnedUserId = userElm.Attribute("id").Value;
            var name           = userElm.Element("name").Value;
            var userRoleInfo   = new UserRoleInfo(returnedUserId, name);

            // Role info
            foreach (XElement node in userElm.Element("roles").Elements("role"))
            {
                var roleId       = int.Parse(node.Attribute("id").Value);
                var roleName     = node.Element("name").Value;
                var accessNode   = node.Element("access");
                var roleAccessId = int.Parse(accessNode.Attribute("id").Value);
                var roleAccess   = accessNode.Value;
                userRoleInfo.AddRole(roleId, roleName, roleAccessId, roleAccess);
            }
            return(userRoleInfo);
        }
Ejemplo n.º 4
0
        public UserRoleInfo GetUserRole(string userId)
        {
            var getUserRole = new GetUserRole(Client.Ticket, Token, Client.AccountDomain, ApplicationId, userId);
            var xml         = getUserRole.Post().CreateNavigator();

            // User info
            var returnedUserId = xml.SelectSingleNode("/qdbapi/user").GetAttribute("id", String.Empty);
            var name           = xml.SelectSingleNode("/qdbapi/user/name").Value;
            var userRoleInfo   = new UserRoleInfo(returnedUserId, name);

            // Role info
            var roleNodes = xml.Select("/qdbapi/user/roles/role");

            foreach (XPathNavigator node in roleNodes)
            {
                var roleId       = int.Parse(node.GetAttribute("id", String.Empty));
                var roleName     = node.SelectSingleNode("name").Value;
                var accessNode   = node.SelectSingleNode("access");
                var roleAccessId = int.Parse(accessNode.GetAttribute("id", String.Empty));
                var roleAccess   = accessNode.Value;
                userRoleInfo.AddRole(roleId, roleName, roleAccessId, roleAccess);
            }
            return(userRoleInfo);
        }
Ejemplo n.º 5
0
 public void Setup()
 {
     tokenProvider      = new Mock <IAccessTokenProvider>();
     userRoleRepository = new Mock <IUserRoleRepository>();
     _fixture           = new GetUserRole(tokenProvider.Object, userRoleRepository.Object);
 }
Ejemplo n.º 6
0
		public TList<UserRole> GetUserRole(GetUserRole request)
		{
			var httpRequest = RequestContext.Get<IHttpRequest>();
			
			var userSession = httpRequest.GetSession ();

			if (userSession == null)
				return new TList<UserRole> ();

			if (!request.UserId.HasValue)
				request.UserId = default(int);
						
			long? totalCount=null;
			
			var pager= httpRequest.BuildPager();

			var visitor = ReadExtensions.CreateExpression<UserRole>();
			var predicate = PredicateBuilder.True<UserRole>();
						
			if (request.UserId == default(int))
				request.UserId = int.Parse (userSession.UserAuthId);
			else if (!(userSession.HasRole (RoleNames.Admin)) && request.UserId != int.Parse (userSession.UserAuthId)) {
				throw HttpError.Unauthorized ("User no allowed to read roles from other user");
			}
						
			predicate= q=>q.UserId==request.UserId;

			return AuthRepoProxy.Execute(db=>{
				
				if(pager.PageNumber.HasValue)
				{
					totalCount= db.Count(predicate);
					int rows= pager.PageSize.HasValue? pager.PageSize.Value:Defs.PageSize;
					visitor.Limit(pager.PageNumber.Value*rows, rows);
				}

				visitor.Where(predicate);

				var ur = db.Select(visitor);
				if(ur.Count>0)
				{
					var rp = PredicateBuilder.False<AuthRole>();
					foreach (var r in ur)
					{
						var id = r.AuthRoleId;
						rp= rp.Or(f=>f.Id==id);
					}
					var roles = db.Select<AuthRole>(rp);

					foreach (var r in ur){
						r.Name= roles.Find(f=>f.Id==r.AuthRoleId).Name;
					}
				}
								
				return new TList<UserRole>(){
					Result=ur,
					TotalCount=totalCount
				};
			});
			
		}