public async Task SetPermissionsAsync(UpdateCollabPermissionsRequest request)
        {
            if (request == null)
            {
                return;
            }

            var id = request.CollabId;

            var tasks = new List <Task>();

            if (Permission.AllowIsValid(request.UndoCheckouts))
            {
                tasks.Add(Client.UpdateProjectPermissions(id, new Permission("UndoCheckouts", request.UndoCheckouts)));
            }
            if (Permission.AllowIsValid(request.CreateSessions))
            {
                tasks.Add(Client.UpdateProjectPermissions(id, new Permission("CreateSessions", request.CreateSessions)));
            }
            if (Permission.AllowIsValid(request.ShareItems))
            {
                tasks.Add(Client.UpdateProjectPermissions(id, new Permission("ShareItems", request.ShareItems)));
            }

            if (Permission.AllowIsValid(request.Invite))
            {
                tasks.Add(Client.UpdateProjectPermissions(id, new Permission("Invite", request.Invite)));
            }
            if (Permission.AllowIsValid(request.ManageParticipants))
            {
                tasks.Add(Client.UpdateProjectPermissions(id, new Permission("ManageParticipants", request.ManageParticipants)));
            }
            if (Permission.AllowIsValid(request.ManagePermissions))
            {
                tasks.Add(Client.UpdateProjectPermissions(id, new Permission("ManagePermissions", request.ManagePermissions)));
            }

            if (Permission.AllowIsValid(request.FullControl))
            {
                tasks.Add(Client.UpdateProjectPermissions(id, new Permission("FullControl", request.FullControl)));
            }

            await Task.WhenAll(tasks);
        }
예제 #2
0
        public async Task SetPermissionsAsync(UpdateCollabPermissionsRequest request)
        {
            if (request == null)
            {
                return;
            }

            var id = request.CollabId;

            var tasks = new List <Task>();

            if (Permission.AllowIsValid(request.SaveCopy))
            {
                tasks.Add(Client.UpdateSessionPermissions(id, new Permission("SaveCopy", request.SaveCopy)));
            }
            if (Permission.AllowIsValid(request.PrintCopy))
            {
                tasks.Add(Client.UpdateSessionPermissions(id, new Permission("PrintCopy", request.PrintCopy)));
            }

            if (Permission.AllowIsValid(request.Markup))
            {
                tasks.Add(Client.UpdateSessionPermissions(id, new Permission("Markup", request.Markup)));
            }
            if (Permission.AllowIsValid(request.AddDocuments))
            {
                tasks.Add(Client.UpdateSessionPermissions(id, new Permission("AddDocuments", request.AddDocuments)));
            }
            if (Permission.AllowIsValid(request.MarkupAlert))
            {
                tasks.Add(Client.UpdateSessionPermissions(id, new Permission("MarkupAlert", request.MarkupAlert)));
            }

            if (Permission.AllowIsValid(request.FullControl))
            {
                tasks.Add(Client.UpdateSessionPermissions(id, new Permission("FullControl", request.FullControl)));
            }

            await Task.WhenAll(tasks);
        }
예제 #3
0
        public async Task <IActionResult> UpdatePermissions([Bind] UpdateCollabPermissionsRequest request)
        {
            try
            {
                if (request == null)
                {
                    return(BadRequest());
                }

                await InitClient();

                await CollaborationService.SetPermissionsAsync(request);

                return(RedirectToAction("PermissionDetails", new Dictionary <string, string> {
                    { "collabId", request.CollabId }
                }));
            }
            catch (StudioApiException e)
            {
                return(HandleError(e));
            }
        }