Ejemplo n.º 1
0
 public HomeController(ILogger <HomeController> logger, UserManager <IdentityUser> um, ApplicationDbContext db, InviteManager im, SignalRMessenger srm)
 {
     _logger = logger;
     _um     = um;
     _db     = db;
     _im     = im;
     _Msgr   = srm;
 }
Ejemplo n.º 2
0
 public RegisterModel(SignInManager <IdentityUser> signInManager, UserManager <IdentityUser> userManager, ILogger <RegisterModel> logger, IEmailSender emailSender, InviteManager identityManager)
 {
     _signInManager     = signInManager;
     _userManager       = userManager;
     _logger            = logger;
     _emailSender       = emailSender;
     this.inviteManager = identityManager;
 }
Ejemplo n.º 3
0
    private async Task OnClientReady()
    {
        await InviteManager.BootUp(_client);

        Console.WriteLine("Ready");

        _client.Log -= Log;
    }
Ejemplo n.º 4
0
        private static ClaimsIdentity TransformClaims(ClaimsIdentity ident)
        {
            var issuer = ident.Claims.First().Issuer;

            ident.AddClaim(new Claim(CustomClaimTypes.AuthType, AuthTypes.Local));

            if (!ident.HasClaim(ClaimTypes.Email))
            {
                var name = ident.GetClaim(ClaimTypes.Name);
                if (name.IndexOf("@") > -1)
                {
                    ident.AddClaim(new Claim(ClaimTypes.Email, name));
                }
                else
                {
                    var upn = ident.GetClaim(ClaimTypes.Upn);
                    if (upn.IndexOf("@") > -1)
                    {
                        ident.AddClaim(new Claim(ClaimTypes.Email, upn));
                    }
                }
            }

            var response = InviteManager.GetDirectoryRoles(ident.GetClaim(CustomClaimTypes.ObjectIdentifier));

            if (response.Successful)
            {
                foreach (var role in response.Roles)
                {
                    switch (role.Type)
                    {
                    case "#microsoft.graph.directoryRole":
                        ident.AddClaim(new Claim(ClaimTypes.Role, role.DisplayName));
                        break;

                    case "#microsoft.graph.group":
                        ident.AddClaim(new Claim(CustomClaimTypes.MemberOfGroup, JsonConvert.SerializeObject(new GroupObject(role.DisplayName, role.Id))));
                        break;
                    }
                }
            }
            else
            {
                Logging.WriteToAppLog("Error retrieving app roles", EventLogEntryType.Error, new Exception(response.ErrorMessage));
            }

            var fullName = ident.Claims.FirstOrDefault(c => c.Type == "name").Value;

            ident.AddClaim(new Claim(CustomClaimTypes.FullName, fullName));

            return(ident);
        }
Ejemplo n.º 5
0
        // This function will get triggered/executed when a new message is written
        // on an Azure Queue called invitations.
        public static void ProcessUserQueue([QueueTrigger("%queueName%")] BatchQueueItem batch, IBinder binder)
        {
            try
            {
                var mgr = new InviteManager(batch);

                BulkInviteResults res;
                var task = Task.Run(async() => {
                    res = await mgr.BulkInvitations(batch.BulkInviteSubmissionId);
                });
                task.Wait();
            }
            catch (Exception ex)
            {
                Logging.WriteToAppLog(String.Format("Error processing queue '{0}'", StorageRepo.QueueName), System.Diagnostics.EventLogEntryType.Error, ex);
                throw;
            }
        }
Ejemplo n.º 6
0
        public static async Task <GuestRequest> ExecuteDispositionAsync(GuestRequest request, string approver, string profileUrl, PreAuthDomain domainSettings = null)
        {
            request.AuthUser    = approver;
            request.LastModDate = DateTime.UtcNow;

            if (request.Disposition == Disposition.Approved || request.Disposition == Disposition.AutoApproved)
            {
                //INVITE (request updated internally)
                var mgr = new InviteManager(profileUrl, null);
                request = await mgr.ProcessInvitationAsync(request, domainSettings);
            }
            else if (request.Disposition == Disposition.Denied)
            {
                //UPDATE GuestRequest to set denied status
                request = await UpdateAsync(request);
            }

            return(request);
        }
        public static async Task <GuestRequest> ExecuteDispositionAsync(GuestRequest request, string approver, string profileUrl, PreAuthDomain domainSettings = null)
        {
            request.AuthUser    = approver;
            request.LastModDate = DateTime.UtcNow;

            if (request.Disposition == Disposition.Approved || request.Disposition == Disposition.AutoApproved)
            {
                //INVITE
                request.Status = await InviteManager.SendInvitation(request, profileUrl, domainSettings);

                if (request.Status.Substring(0, 5) == "Error")
                {
                    request.Disposition = Disposition.Pending;
                }
            }

            //UPDATE
            await DocDBRepo.DB <GuestRequest> .UpdateItemAsync(request);

            return(request);
        }
Ejemplo n.º 8
0
        public void AddInvitation_Test()
        {
            InviteManager i = new InviteManager();

            i.AddInvitation <GameInvitation>("i1", "r1"); //add 1 a
            i.AddInvitation <ChatInvitation>("i1", "r1"); //add 1 b
            i.AddInvitation <ChatInvitation>("i1", "r1"); //idempotence test

            Assert.AreEqual(2, i.Invitations.Count);

            i.AddInvitation <GameInvitation>("i2", "r2");//add 2 a

            Assert.AreEqual(3, i.Invitations.Count);

            i.RemoveInvitation <GameInvitation>("i1", "r1");//remove 1 a

            bool res  = i.IsInvitationSent <GameInvitation>("i1", "r1");
            bool res2 = i.IsInvitationSent <ChatInvitation>("i1", "r1");

            Assert.IsFalse(res);
            Assert.IsTrue(res2);
        }
        private static ClaimsIdentity TransformClaims(ClaimsIdentity ident)
        {
            var issuer = ident.Claims.First().Issuer;

            ident.AddClaim(new Claim(CustomClaimTypes.AuthType, AuthTypes.Local));

            if (!ident.HasClaim(ClaimTypes.Email))
            {
                var name = ident.GetClaim(ClaimTypes.Name);
                if (name.IndexOf("@") > -1)
                {
                    ident.AddClaim(new Claim(ClaimTypes.Email, name));
                }
                else
                {
                    var upn = ident.GetClaim(ClaimTypes.Upn);
                    if (upn.IndexOf("@") > -1)
                    {
                        ident.AddClaim(new Claim(ClaimTypes.Email, upn));
                    }
                }
            }

            var roles = InviteManager.GetDirectoryRoles(ident.GetClaim(CustomClaimTypes.ObjectIdentifier));

            foreach (var role in roles)
            {
                ident.AddClaim(new Claim(ClaimTypes.Role, role.DisplayName));
            }

            var fullName = ident.Claims.FirstOrDefault(c => c.Type == "name").Value;

            ident.AddClaim(new Claim(CustomClaimTypes.FullName, fullName));

            return(ident);
        }
Ejemplo n.º 10
0
        public static async Task <GuestRequest> ExecuteDispositionAsync(GuestRequest request, string approver, string profileUrl, PreAuthDomain domainSettings = null)
        {
            request.AuthUser    = approver;
            request.LastModDate = DateTime.UtcNow;

            if (request.Disposition == Disposition.Approved || request.Disposition == Disposition.AutoApproved)
            {
                //INVITE
                var mgr = new InviteManager(profileUrl, null);
                var res = await mgr.ProcessInvitationAsync(request, domainSettings);

                request.Status = res.Status;
                if (request.Status.Substring(0, 5) == "Error")
                {
                    request.Disposition = Disposition.Pending;
                }
                request.InvitationResult = res;
            }

            //UPDATE
            await DocDBRepo.DB <GuestRequest> .UpdateItemAsync(request);

            return(request);
        }
Ejemplo n.º 11
0
 public IndexModel(ApplicationDbContext applicationContext, InviteManager inviteManager)
 {
     this.applicationContext = applicationContext;
     this.inviteManager      = inviteManager;
 }
Ejemplo n.º 12
0
 private async Task OnUserJoined(SocketGuildUser user)
 {
     await InviteManager.NewUserJoined(user);
 }