Beispiel #1
0
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, BasicCommunityRequirement requirement, Trade resource)
        {
            string email = Helpers.Claims.GetEmail(context.User.Claims);

            if (email == null)
            {
                return(null);
            }

            Need4Service service = new Need4Service();

            UserService.UserServiceClient userClient = service.GetUserClient();
            Need4Protocol.User            user       = userClient.GetUser(new Need4Protocol.User {
                Email = email
            });

            TradeUserInfo tradeUserInfo = user != null ?
                                          new TradeUserInfo {
                AuthenticatedUserId = user.Id, TradeId = resource.Id
            } :
            new TradeUserInfo {
                UnauthenticatedUser = new Empty(), TradeId = resource.Id
            };

            TradeService.TradeServiceClient tradeClient = service.GetTradeClient();
            PermissionSet permissions = tradeClient.GetPermissions(tradeUserInfo);

            bool hasJoinTradePermission = (from p in permissions.Permissions
                                           where p.PermissionType.Name == _Permissions.BASIC
                                           select p).Any();

            if (hasJoinTradePermission)
            {
                context.Succeed(requirement);
            }

            return(Task.CompletedTask);
        }
 protected override void OnInitialized()
 {
     base.OnInitialized();
     tradeClient = Need4Service.GetTradeClient();
     user        = Utility.GetUser();
 }