Merge branch 'develop' into feature/filter-loader

This commit is contained in:
Viktor Fomin 2020-11-13 10:30:09 +03:00 committed by GitHub
commit fc33f10e37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 1728 additions and 237 deletions

View File

@ -24,9 +24,8 @@
*/
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
using ASC.ApiSystem.Classes;
using ASC.ApiSystem.Interfaces;
using ASC.Core.Tenants;

View File

@ -61,7 +61,19 @@ namespace ASC.Data.Backup.Controllers
/// <param name="backupMail">Include mail in the backup</param>
/// <category>Backup</category>
[Create("createbackupschedule")]
public bool CreateBackupSchedule(BackupSchedule backupSchedule)
public bool CreateBackupScheduleFromBody([FromBody]BackupSchedule backupSchedule)
{
return CreateBackupSchedule(backupSchedule);
}
[Create("createbackupschedule")]
[Consumes("application/x-www-form-urlencoded")]
public bool CreateBackupScheduleFromForm([FromForm]BackupSchedule backupSchedule)
{
return CreateBackupSchedule(backupSchedule);
}
private bool CreateBackupSchedule(BackupSchedule backupSchedule)
{
if (CoreBaseSettings.Standalone)
{
@ -106,7 +118,19 @@ namespace ASC.Data.Backup.Controllers
/// <category>Backup</category>
/// <returns>Backup Progress</returns>
[Create("startbackup")]
public BackupProgress StartBackup(Models.Backup backup)
public BackupProgress StartBackupFromBody([FromBody]Models.Backup backup)
{
return StartBackup(backup);
}
[Create("startbackup")]
[Consumes("application/x-www-form-urlencoded")]
public BackupProgress StartBackupFromForm([FromForm]Models.Backup backup)
{
return StartBackup(backup);
}
private BackupProgress StartBackup(Models.Backup backup)
{
if (CoreBaseSettings.Standalone)
{
@ -193,7 +217,19 @@ namespace ASC.Data.Backup.Controllers
/// <category>Backup</category>
/// <returns>Restore Progress</returns>
[Create("startrestore")]
public BackupProgress StartBackupRestore(BackupRestore backupRestore)
public BackupProgress StartBackupRestoreFromBody([FromBody]BackupRestore backupRestore)
{
return StartBackupRestore(backupRestore);
}
[Create("startrestore")]
[Consumes("application/x-www-form-urlencoded")]
public BackupProgress StartBackupRestoreFromForm([FromForm]BackupRestore backupRestore)
{
return StartBackupRestore(backupRestore);
}
private BackupProgress StartBackupRestore(BackupRestore backupRestore)
{
if (CoreBaseSettings.Standalone)
{

View File

@ -2,7 +2,6 @@
using System.Collections.Generic;
using ASC.Api.Collections;
using ASC.Data.Backup.Contracts;
namespace ASC.Data.Backup.Models
{

View File

@ -1,7 +1,6 @@
using System.Collections.Generic;
using ASC.Api.Collections;
using ASC.Data.Backup.Contracts;
namespace ASC.Data.Backup.Models
{

View File

@ -1,12 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using ASC.Api.Collections;
using ASC.Data.Backup.Contracts;
using static ASC.Data.Backup.BackupAjaxHandler;
namespace ASC.Data.Backup.ModelApi
{

View File

@ -0,0 +1,9 @@
namespace ASC.Files.Core.Model
{
public class CheckDocServiceUrlModel
{
public string DocServiceUrl { get; set; }
public string DocServiceUrlInternal { get; set; }
public string DocServiceUrlPortal { get; set; }
}
}

View File

@ -0,0 +1,8 @@
namespace ASC.Files.Core.Model
{
public class CreateTextOrHtmlFileModel
{
public string Title { get; set; }
public string Content { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace ASC.Files.Core.Model
{
public class CreateWordpressPostModel
{
public string Title { get; set; }
public string Content { get; set; }
public int Status { get; set; }
}
}

View File

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace ASC.Files.Core.Model
{
public class DisplayModel
{
public bool Set { get; set; }
}
}

View File

@ -0,0 +1,7 @@
namespace ASC.Files.Core.Model
{
public class EasyBibCitationBookModel
{
public string CitationData { get; set; }
}
}

View File

@ -0,0 +1,11 @@
using System.IO;
namespace ASC.Files.Core.Model
{
public class FileStreamModel
{
public Stream File { get; set; }
public bool Encrypted { get; set; }
public bool Forcesave { get; set; }
}
}

View File

@ -0,0 +1,9 @@
using ASC.Files.Core.Security;
namespace ASC.Files.Core.Model
{
public class GenerateSharedLinkModel
{
public FileShare Share { get; set; }
}
}

View File

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace ASC.Files.Core.Model
{
public class HideConfirmConvertModel
{
public bool Save { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System.IO;
namespace ASC.Files.Core.Model
{
public class InsertFileModel
{
public Stream File { get; set; }
public string Title { get; set; }
public bool? CreateNewIfExist { get; set; }
public bool KeepConvertStatus { get; set; }
}
}

View File

@ -0,0 +1,13 @@
using System.IO;
namespace ASC.Files.Core.Model
{
public class SaveEditingModel
{
public string FileExtension { get; set; }
public string DownloadUri { get; set; }
public Stream Stream { get; set; }
public string Doc { get; set; }
public bool Forcesave { get; set; }
}
}

View File

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace ASC.Files.Core.Model
{
public class TemplatesModel
{
public IEnumerable<int> FileIds { get; set; }
}
}

View File

@ -0,0 +1,14 @@
namespace ASC.Files.Core.Model
{
public class ThirdPartyModel
{
public string Url { get; set; }
public string Login { get; set; }
public string Password { get; set; }
public string Token { get; set; }
public bool IsCorporate { get; set; }
public string CustomerTitle { get; set; }
public string ProviderKey { get; set; }
public string ProviderId { get; set; }
}
}

View File

@ -0,0 +1,7 @@
namespace ASC.Files.Core.Model
{
public class WordpressSaveModel
{
public string Code { get; set; }
}
}

File diff suppressed because it is too large Load Diff

View File

@ -86,7 +86,19 @@ namespace ASC.Api.Documents
/// </summary>
/// <visible>false</visible>
[Update("keys")]
public object SetKeys(PrivacyRoomModel model)
public object SetKeysFromBody([FromBody]PrivacyRoomModel model)
{
return SetKeys(model);
}
[Update("keys")]
[Consumes("application/x-www-form-urlencoded")]
public object SetKeysFromForm([FromForm]PrivacyRoomModel model)
{
return SetKeys(model);
}
private object SetKeys(PrivacyRoomModel model)
{
PermissionContext.DemandPermissions(new UserSecurityProvider(AuthContext.CurrentAccount.ID), Constants.Action_EditUser);
@ -152,7 +164,19 @@ namespace ASC.Api.Documents
/// <returns></returns>
/// <visible>false</visible>
[Update("")]
public bool SetPrivacyRoom(PrivacyRoomModel model)
public bool SetPrivacyRoomFromBody([FromBody]PrivacyRoomModel model)
{
return SetPrivacyRoom(model);
}
[Update("")]
[Consumes("application/x-www-form-urlencoded")]
public bool SetPrivacyRoomFromForm([FromForm]PrivacyRoomModel model)
{
return SetPrivacyRoom(model);
}
private bool SetPrivacyRoom(PrivacyRoomModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

View File

@ -63,7 +63,19 @@ namespace ASC.Employee.Core.Controllers
}
[Create]
public GroupWrapperFull AddGroup(GroupModel groupModel)
public GroupWrapperFull AddGroupFromBody([FromBody]GroupModel groupModel)
{
return AddGroup(groupModel);
}
[Create]
[Consumes("application/x-www-form-urlencoded")]
public GroupWrapperFull AddGroupFromForm([FromForm] GroupModel groupModel)
{
return AddGroup(groupModel);
}
private GroupWrapperFull AddGroup(GroupModel groupModel)
{
PermissionContext.DemandPermissions(Constants.Action_EditGroups, Constants.Action_AddRemoveUser);
@ -84,7 +96,19 @@ namespace ASC.Employee.Core.Controllers
}
[Update("{groupid}")]
public GroupWrapperFull UpdateGroup(Guid groupid, GroupModel groupModel)
public GroupWrapperFull UpdateGroupFromBody(Guid groupid, [FromBody]GroupModel groupModel)
{
return UpdateGroup(groupid, groupModel);
}
[Update("{groupid}")]
[Consumes("application/x-www-form-urlencoded")]
public GroupWrapperFull UpdateGroupFromForm(Guid groupid, [FromForm] GroupModel groupModel)
{
return UpdateGroup(groupid, groupModel);
}
private GroupWrapperFull UpdateGroup(Guid groupid, GroupModel groupModel)
{
PermissionContext.DemandPermissions(Constants.Action_EditGroups, Constants.Action_AddRemoveUser);
var group = UserManager.GetGroups().SingleOrDefault(x => x.ID == groupid).NotFoundIfNull("group not found");
@ -96,7 +120,7 @@ namespace ASC.Employee.Core.Controllers
group.Name = groupModel.GroupName ?? group.Name;
UserManager.SaveGroupInfo(group);
RemoveMembersFrom(new GroupModel { Groupid = groupid, Members = UserManager.GetUsersByGroup(groupid, EmployeeStatus.All).Select(u => u.ID).Where(id => !groupModel.Members.Contains(id)) });
RemoveMembersFrom(groupid, new GroupModel {Members = UserManager.GetUsersByGroup(groupid, EmployeeStatus.All).Select(u => u.ID).Where(id => !groupModel.Members.Contains(id)) });
TransferUserToDepartment(groupModel.GroupManager, @group, true);
if (groupModel.Members != null)
@ -109,7 +133,7 @@ namespace ASC.Employee.Core.Controllers
MessageService.Send(MessageAction.GroupUpdated, MessageTarget.Create(groupid), group.Name);
return GetById(groupModel.Groupid);
return GetById(groupid);
}
[Delete("{groupid}")]
@ -135,34 +159,58 @@ namespace ASC.Employee.Core.Controllers
}
[Update("{groupid}/members/{newgroupid}")]
public GroupWrapperFull TransferMembersTo(TransferGroupMembersModel transferGroupMembersModel)
public GroupWrapperFull TransferMembersTo(Guid groupid, Guid newgroupid)
{
PermissionContext.DemandPermissions(Constants.Action_EditGroups, Constants.Action_AddRemoveUser);
var oldgroup = GetGroupInfo(transferGroupMembersModel.GroupId);
var oldgroup = GetGroupInfo(groupid);
var newgroup = GetGroupInfo(transferGroupMembersModel.NewGroupId);
var newgroup = GetGroupInfo(newgroupid);
var users = UserManager.GetUsersByGroup(oldgroup.ID);
foreach (var userInfo in users)
{
TransferUserToDepartment(userInfo.ID, newgroup, false);
}
return GetById(transferGroupMembersModel.NewGroupId);
return GetById(newgroupid);
}
[Create("{groupid}/members")]
public GroupWrapperFull SetMembersTo(GroupModel groupModel)
public GroupWrapperFull SetMembersToFromBody(Guid groupid, [FromBody]GroupModel groupModel)
{
RemoveMembersFrom(new GroupModel { Groupid = groupModel.Groupid, Members = UserManager.GetUsersByGroup(groupModel.Groupid).Select(x => x.ID) });
AddMembersTo(groupModel);
return GetById(groupModel.Groupid);
return SetMembersTo(groupid, groupModel);
}
[Create("{groupid}/members")]
[Consumes("application/x-www-form-urlencoded")]
public GroupWrapperFull SetMembersToFromForm(Guid groupid, [FromForm] GroupModel groupModel)
{
return SetMembersTo(groupid, groupModel);
}
private GroupWrapperFull SetMembersTo(Guid groupid, GroupModel groupModel)
{
RemoveMembersFrom(groupid, new GroupModel {Members = UserManager.GetUsersByGroup(groupid).Select(x => x.ID) });
AddMembersTo(groupid, groupModel);
return GetById(groupid);
}
[Update("{groupid}/members")]
public GroupWrapperFull AddMembersTo(GroupModel groupModel)
public GroupWrapperFull AddMembersToFromBody(Guid groupid, [FromBody]GroupModel groupModel)
{
return AddMembersTo(groupid, groupModel);
}
[Update("{groupid}/members")]
[Consumes("application/x-www-form-urlencoded")]
public GroupWrapperFull AddMembersToFromForm(Guid groupid, [FromForm] GroupModel groupModel)
{
return AddMembersTo(groupid, groupModel);
}
private GroupWrapperFull AddMembersTo(Guid groupid, GroupModel groupModel)
{
PermissionContext.DemandPermissions(Constants.Action_EditGroups, Constants.Action_AddRemoveUser);
var group = GetGroupInfo(groupModel.Groupid);
var group = GetGroupInfo(groupid);
foreach (var userId in groupModel.Members)
{
@ -172,9 +220,21 @@ namespace ASC.Employee.Core.Controllers
}
[Update("{groupid}/manager")]
public GroupWrapperFull SetManager(SetManagerModel setManagerModel)
public GroupWrapperFull SetManagerFromBody(Guid groupid, [FromBody]SetManagerModel setManagerModel)
{
var group = GetGroupInfo(setManagerModel.GroupId);
return SetManager(groupid, setManagerModel);
}
[Update("{groupid}/manager")]
[Consumes("application/x-www-form-urlencoded")]
public GroupWrapperFull SetManagerFromForm(Guid groupid, [FromForm] SetManagerModel setManagerModel)
{
return SetManager(groupid, setManagerModel);
}
private GroupWrapperFull SetManager(Guid groupid, SetManagerModel setManagerModel)
{
var group = GetGroupInfo(groupid);
if (UserManager.UserExists(setManagerModel.UserId))
{
UserManager.SetDepartmentManager(group.ID, setManagerModel.UserId);
@ -183,14 +243,26 @@ namespace ASC.Employee.Core.Controllers
{
throw new ItemNotFoundException("user not found");
}
return GetById(setManagerModel.GroupId);
return GetById(groupid);
}
[Delete("{groupid}/members")]
public GroupWrapperFull RemoveMembersFrom(GroupModel groupModel)
public GroupWrapperFull RemoveMembersFromFromBody(Guid groupid, [FromBody]GroupModel groupModel)
{
return RemoveMembersFrom(groupid, groupModel);
}
[Delete("{groupid}/members")]
[Consumes("application/x-www-form-urlencoded")]
public GroupWrapperFull RemoveMembersFromFromForm(Guid groupid, [FromForm] GroupModel groupModel)
{
return RemoveMembersFrom(groupid, groupModel);
}
private GroupWrapperFull RemoveMembersFrom(Guid groupid, GroupModel groupModel)
{
PermissionContext.DemandPermissions(Constants.Action_EditGroups, Constants.Action_AddRemoveUser);
var group = GetGroupInfo(groupModel.Groupid);
var group = GetGroupInfo(groupid);
foreach (var userId in groupModel.Members)
{

View File

@ -346,7 +346,6 @@ namespace ASC.Employee.Core.Controllers
public IEnumerable<EmployeeWraper> GetSimpleByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isAdministrator)
{
var users = GetByFilter(employeeStatus, groupId, activationStatus, employeeType, isAdministrator);
return users.Select(EmployeeWraperHelper.Get);
}
@ -399,7 +398,20 @@ namespace ASC.Employee.Core.Controllers
[Create]
[Authorize(AuthenticationSchemes = "confirm", Roles = "LinkInvite,Administrators")]
public EmployeeWraperFull AddMember(MemberModel memberModel)
public EmployeeWraperFull AddMemberFromBody([FromBody]MemberModel memberModel)
{
return AddMember(memberModel);
}
[Create]
[Authorize(AuthenticationSchemes = "confirm", Roles = "LinkInvite,Administrators")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull AddMemberFromForm([FromForm]MemberModel memberModel)
{
return AddMember(memberModel);
}
private EmployeeWraperFull AddMember(MemberModel memberModel)
{
ApiContext.AuthByClaim();
@ -458,7 +470,19 @@ namespace ASC.Employee.Core.Controllers
}
[Create("active")]
public EmployeeWraperFull AddMemberAsActivated(MemberModel memberModel)
public EmployeeWraperFull AddMemberAsActivatedFromBody([FromBody]MemberModel memberModel)
{
return AddMemberAsActivated(memberModel);
}
[Create("active")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull AddMemberAsActivatedFromForm([FromForm] MemberModel memberModel)
{
return AddMemberAsActivated(memberModel);
}
private EmployeeWraperFull AddMemberAsActivated(MemberModel memberModel)
{
PermissionContext.DemandPermissions(Constants.Action_AddRemoveUser);
@ -514,7 +538,19 @@ namespace ASC.Employee.Core.Controllers
}
[Update("{userid}/culture")]
public EmployeeWraperFull UpdateMemberCulture(string userid, UpdateMemberModel memberModel)
public EmployeeWraperFull UpdateMemberCultureFromBody(string userid, [FromBody]UpdateMemberModel memberModel)
{
return UpdateMemberCulture(userid, memberModel);
}
[Update("{userid}/culture")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull UpdateMemberCultureFromForm(string userid, [FromForm] UpdateMemberModel memberModel)
{
return UpdateMemberCulture(userid, memberModel);
}
private EmployeeWraperFull UpdateMemberCulture(string userid, UpdateMemberModel memberModel)
{
var user = GetUserInfo(userid);
@ -550,7 +586,19 @@ namespace ASC.Employee.Core.Controllers
}
[Update("{userid}")]
public EmployeeWraperFull UpdateMember(string userid, UpdateMemberModel memberModel)
public EmployeeWraperFull UpdateMemberFromBody(string userid, [FromBody]UpdateMemberModel memberModel)
{
return UpdateMember(userid, memberModel);
}
[Update("{userid}")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull UpdateMemberFromForm(string userid, [FromForm] UpdateMemberModel memberModel)
{
return UpdateMember(userid, memberModel);
}
private EmployeeWraperFull UpdateMember(string userid, UpdateMemberModel memberModel)
{
var user = GetUserInfo(userid);
@ -729,7 +777,19 @@ namespace ASC.Employee.Core.Controllers
}
[Update("{userid}/contacts")]
public EmployeeWraperFull UpdateMemberContacts(string userid, UpdateMemberModel memberModel)
public EmployeeWraperFull UpdateMemberContactsFromBody(string userid, [FromBody]UpdateMemberModel memberModel)
{
return UpdateMemberContacts(userid, memberModel);
}
[Update("{userid}/contacts")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull UpdateMemberContactsFromForm(string userid, [FromForm] UpdateMemberModel memberModel)
{
return UpdateMemberContacts(userid, memberModel);
}
private EmployeeWraperFull UpdateMemberContacts(string userid, UpdateMemberModel memberModel)
{
var user = GetUserInfo(userid);
@ -742,7 +802,19 @@ namespace ASC.Employee.Core.Controllers
}
[Create("{userid}/contacts")]
public EmployeeWraperFull SetMemberContacts(string userid, UpdateMemberModel memberModel)
public EmployeeWraperFull SetMemberContactsFromBody(string userid, [FromBody]UpdateMemberModel memberModel)
{
return SetMemberContacts(userid, memberModel);
}
[Create("{userid}/contacts")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull SetMemberContactsFromForm(string userid, [FromForm] UpdateMemberModel memberModel)
{
return SetMemberContacts(userid, memberModel);
}
private EmployeeWraperFull SetMemberContacts(string userid,UpdateMemberModel memberModel)
{
var user = GetUserInfo(userid);
@ -755,7 +827,19 @@ namespace ASC.Employee.Core.Controllers
}
[Delete("{userid}/contacts")]
public EmployeeWraperFull DeleteMemberContacts(string userid, UpdateMemberModel memberModel)
public EmployeeWraperFull DeleteMemberContactsFromBody(string userid, [FromBody]UpdateMemberModel memberModel)
{
return DeleteMemberContacts(userid, memberModel);
}
[Delete("{userid}/contacts")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull DeleteMemberContactsFromForm(string userid, [FromForm]UpdateMemberModel memberModel)
{
return DeleteMemberContacts(userid, memberModel);
}
private EmployeeWraperFull DeleteMemberContacts(string userid, UpdateMemberModel memberModel)
{
var user = GetUserInfo(userid);
@ -780,7 +864,19 @@ namespace ASC.Employee.Core.Controllers
[Create("{userid}/photo")]
public FileUploadResult UploadMemberPhoto(string userid, IFormCollection model)
public FileUploadResult UploadMemberPhotoFromBody(string userid, [FromBody]IFormCollection model)
{
return UploadMemberPhoto(userid, model);
}
[Create("{userid}/photo")]
[Consumes("application/x-www-form-urlencoded")]
public FileUploadResult UploadMemberPhotoFromForm(string userid, [FromForm] IFormCollection model)
{
return UploadMemberPhoto(userid, model);
}
private FileUploadResult UploadMemberPhoto(string userid, IFormCollection model)
{
var result = new People.Models.FileUploadResult();
var autosave = bool.Parse(model["Autosave"]);
@ -876,7 +972,19 @@ namespace ASC.Employee.Core.Controllers
}
[Update("{userid}/photo")]
public ThumbnailsDataWrapper UpdateMemberPhoto(string userid, UpdateMemberModel model)
public ThumbnailsDataWrapper UpdateMemberPhotoFromBody(string userid, [FromBody]UpdateMemberModel model)
{
return UpdateMemberPhoto(userid, model);
}
[Update("{userid}/photo")]
[Consumes("application/x-www-form-urlencoded")]
public ThumbnailsDataWrapper UpdateMemberPhotoFromForm(string userid, [FromForm] UpdateMemberModel model)
{
return UpdateMemberPhoto(userid, model);
}
private ThumbnailsDataWrapper UpdateMemberPhoto(string userid, UpdateMemberModel model)
{
var user = GetUserInfo(userid);
@ -914,7 +1022,19 @@ namespace ASC.Employee.Core.Controllers
[Create("{userid}/photo/thumbnails")]
public ThumbnailsDataWrapper CreateMemberPhotoThumbnails(string userid, ThumbnailsModel thumbnailsModel)
public ThumbnailsDataWrapper CreateMemberPhotoThumbnailsFromBody(string userid, [FromBody]ThumbnailsModel thumbnailsModel)
{
return CreateMemberPhotoThumbnails(userid, thumbnailsModel);
}
[Create("{userid}/photo/thumbnails")]
[Consumes("application/x-www-form-urlencoded")]
public ThumbnailsDataWrapper CreateMemberPhotoThumbnailsFromForm(string userid, [FromForm] ThumbnailsModel thumbnailsModel)
{
return CreateMemberPhotoThumbnails(userid, thumbnailsModel);
}
private ThumbnailsDataWrapper CreateMemberPhotoThumbnails(string userid, ThumbnailsModel thumbnailsModel)
{
var user = GetUserInfo(userid);
@ -949,7 +1069,20 @@ namespace ASC.Employee.Core.Controllers
[AllowAnonymous]
[Create("password", false)]
public object SendUserPassword(MemberModel memberModel)
public object SendUserPasswordFromBody([FromBody]MemberModel memberModel)
{
return SendUserPassword(memberModel);
}
[AllowAnonymous]
[Create("password", false)]
[Consumes("application/x-www-form-urlencoded")]
public object SendUserPasswordFromForm([FromForm] MemberModel memberModel)
{
return SendUserPassword(memberModel);
}
private object SendUserPassword(MemberModel memberModel)
{
string error;
if (!string.IsNullOrEmpty(error = UserManagerWrapper.SendUserPassword(memberModel.Email)))
@ -962,7 +1095,20 @@ namespace ASC.Employee.Core.Controllers
[Update("{userid}/password")]
[Authorize(AuthenticationSchemes = "confirm", Roles = "PasswordChange,EmailChange,Activation,Administrators")]
public EmployeeWraperFull ChangeUserPassword(Guid userid, MemberModel memberModel)
public EmployeeWraperFull ChangeUserPasswordFromBody(Guid userid, [FromBody]MemberModel memberModel)
{
return ChangeUserPassword(userid, memberModel);
}
[Update("{userid}/password")]
[Authorize(AuthenticationSchemes = "confirm", Roles = "PasswordChange,EmailChange,Activation,Administrators")]
[Consumes("application/x-www-form-urlencoded")]
public EmployeeWraperFull ChangeUserPasswordFromForm(Guid userid, [FromForm] MemberModel memberModel)
{
return ChangeUserPassword(userid, memberModel);
}
private EmployeeWraperFull ChangeUserPassword(Guid userid, MemberModel memberModel)
{
ApiContext.AuthByClaim();
PermissionContext.DemandPermissions(new UserSecurityProvider(userid), Constants.Action_EditUser);
@ -1010,7 +1156,19 @@ namespace ASC.Employee.Core.Controllers
[Create("email", false)]
public object SendEmailChangeInstructions(UpdateMemberModel model)
public object SendEmailChangeInstructionsFromBody([FromBody]UpdateMemberModel model)
{
return SendEmailChangeInstructions(model);
}
[Create("email", false)]
[Consumes("application/x-www-form-urlencoded")]
public object SendEmailChangeInstructionsFromForm([FromForm] UpdateMemberModel model)
{
return SendEmailChangeInstructions(model);
}
private object SendEmailChangeInstructions(UpdateMemberModel model)
{
Guid.TryParse(model.UserId, out var userid);
@ -1075,7 +1233,20 @@ namespace ASC.Employee.Core.Controllers
[Update("activationstatus/{activationstatus}")]
[Authorize(AuthenticationSchemes = "confirm", Roles = "Activation,Administrators")]
public IEnumerable<EmployeeWraperFull> UpdateEmployeeActivationStatus(EmployeeActivationStatus activationstatus, UpdateMembersModel model)
public IEnumerable<EmployeeWraperFull> UpdateEmployeeActivationStatusFromBody(EmployeeActivationStatus activationstatus, [FromBody]UpdateMembersModel model)
{
return UpdateEmployeeActivationStatus(activationstatus, model);
}
[Update("activationstatus/{activationstatus}")]
[Authorize(AuthenticationSchemes = "confirm", Roles = "Activation,Administrators")]
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<EmployeeWraperFull> UpdateEmployeeActivationStatusFromForm(EmployeeActivationStatus activationstatus, [FromForm] UpdateMembersModel model)
{
return UpdateEmployeeActivationStatus(activationstatus, model);
}
private IEnumerable<EmployeeWraperFull> UpdateEmployeeActivationStatus(EmployeeActivationStatus activationstatus, UpdateMembersModel model)
{
ApiContext.AuthByClaim();
@ -1094,9 +1265,20 @@ namespace ASC.Employee.Core.Controllers
return retuls;
}
[Update("type/{type}")]
public IEnumerable<EmployeeWraperFull> UpdateUserTypeFromBody(EmployeeType type, [FromBody]UpdateMembersModel model)
{
return UpdateUserType(type, model);
}
[Update("type/{type}")]
public IEnumerable<EmployeeWraperFull> UpdateUserType(EmployeeType type, UpdateMembersModel model)
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<EmployeeWraperFull> UpdateUserTypeFromForm(EmployeeType type, [FromForm] UpdateMembersModel model)
{
return UpdateUserType(type, model);
}
private IEnumerable<EmployeeWraperFull> UpdateUserType(EmployeeType type, UpdateMembersModel model)
{
var users = model.UserIds
.Where(userId => !UserManager.IsSystemUser(userId))
@ -1133,7 +1315,19 @@ namespace ASC.Employee.Core.Controllers
}
[Update("status/{status}")]
public IEnumerable<EmployeeWraperFull> UpdateUserStatus(EmployeeStatus status, UpdateMembersModel model)
public IEnumerable<EmployeeWraperFull> UpdateUserStatusFromBody(EmployeeStatus status, [FromBody]UpdateMembersModel model)
{
return UpdateUserStatus(status, model);
}
[Update("status/{status}")]
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<EmployeeWraperFull> UpdateUserStatusFromForm(EmployeeStatus status, [FromForm] UpdateMembersModel model)
{
return UpdateUserStatus(status, model);
}
private IEnumerable<EmployeeWraperFull> UpdateUserStatus(EmployeeStatus status, UpdateMembersModel model)
{
PermissionContext.DemandPermissions(Constants.Action_EditUser);
@ -1175,7 +1369,19 @@ namespace ASC.Employee.Core.Controllers
[Update("invite")]
public IEnumerable<EmployeeWraperFull> ResendUserInvites(UpdateMembersModel model)
public IEnumerable<EmployeeWraperFull> ResendUserInvitesFromBody([FromBody]UpdateMembersModel model)
{
return ResendUserInvites(model);
}
[Update("invite")]
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<EmployeeWraperFull> ResendUserInvitesFromForm([FromForm] UpdateMembersModel model)
{
return ResendUserInvites(model);
}
private IEnumerable<EmployeeWraperFull> ResendUserInvites(UpdateMembersModel model)
{
var users = model.UserIds
.Where(userId => !UserManager.IsSystemUser(userId))
@ -1209,7 +1415,19 @@ namespace ASC.Employee.Core.Controllers
}
[Update("delete", Order = -1)]
public IEnumerable<EmployeeWraperFull> RemoveUsers(UpdateMembersModel model)
public IEnumerable<EmployeeWraperFull> RemoveUsersFromBody([FromBody]UpdateMembersModel model)
{
return RemoveUsers(model);
}
[Update("delete", Order = -1)]
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<EmployeeWraperFull> RemoveUsersFromForm([FromForm] UpdateMembersModel model)
{
return RemoveUsers(model);
}
private IEnumerable<EmployeeWraperFull> RemoveUsers(UpdateMembersModel model)
{
PermissionContext.DemandPermissions(Constants.Action_AddRemoveUser);
@ -1252,9 +1470,21 @@ namespace ASC.Employee.Core.Controllers
[Update("thirdparty/linkaccount")]
public void LinkAccount(string serializedProfile)
public void LinkAccountFromBody([FromBody]LinkAccountModel model)
{
var profile = new LoginProfile(Signature, InstanceCrypto, serializedProfile);
LinkAccount(model);
}
[Update("thirdparty/linkaccount")]
[Consumes("application/x-www-form-urlencoded")]
public void LinkAccountFromForm([FromForm]LinkAccountModel model)
{
LinkAccount(model);
}
public void LinkAccount(LinkAccountModel model)
{
var profile = new LoginProfile(Signature, InstanceCrypto, model.SerializedProfile);
if (string.IsNullOrEmpty(profile.AuthorizationError))
{
@ -1311,35 +1541,56 @@ namespace ASC.Employee.Core.Controllers
}
[Update(@"reassign/terminate")]
public void TerminateReassign(Guid userId)
public void TerminateReassignFromBody([FromBody]TerminateModel model)
{
PermissionContext.DemandPermissions(Constants.Action_EditUser);
QueueWorkerReassign.Terminate(Tenant.TenantId, userId);
QueueWorkerReassign.Terminate(Tenant.TenantId, model.UserId);
}
[Update(@"reassign/terminate")]
[Consumes("application/x-www-form-urlencoded")]
public void TerminateReassignFromForm([FromForm]TerminateModel model)
{
PermissionContext.DemandPermissions(Constants.Action_EditUser);
QueueWorkerReassign.Terminate(Tenant.TenantId, model.UserId);
}
[Create(@"reassign/start")]
public ReassignProgressItem StartReassign(Guid fromUserId, Guid toUserId, bool deleteProfile)
public ReassignProgressItem StartReassignFromBody([FromBody]StartReassignModel model)
{
return StartReassign(model);
}
[Create(@"reassign/start")]
[Consumes("application/x-www-form-urlencoded")]
public ReassignProgressItem StartReassignFromForm([FromForm]StartReassignModel model)
{
return StartReassign(model);
}
private ReassignProgressItem StartReassign(StartReassignModel model)
{
PermissionContext.DemandPermissions(Constants.Action_EditUser);
var fromUser = UserManager.GetUsers(fromUserId);
var fromUser = UserManager.GetUsers(model.FromUserId);
if (fromUser == null || fromUser.ID == Constants.LostUser.ID)
throw new ArgumentException("User with id = " + fromUserId + " not found");
throw new ArgumentException("User with id = " + model.FromUserId + " not found");
if (fromUser.IsOwner(Tenant) || fromUser.IsMe(AuthContext) || fromUser.Status != EmployeeStatus.Terminated)
throw new ArgumentException("Can not delete user with id = " + fromUserId);
throw new ArgumentException("Can not delete user with id = " + model.FromUserId);
var toUser = UserManager.GetUsers(toUserId);
var toUser = UserManager.GetUsers(model.ToUserId);
if (toUser == null || toUser.ID == Constants.LostUser.ID)
throw new ArgumentException("User with id = " + toUserId + " not found");
throw new ArgumentException("User with id = " + model.ToUserId + " not found");
if (toUser.IsVisitor(UserManager) || toUser.Status == EmployeeStatus.Terminated)
throw new ArgumentException("Can not reassign data to user with id = " + toUserId);
throw new ArgumentException("Can not reassign data to user with id = " + model.ToUserId);
return QueueWorkerReassign.Start(Tenant.TenantId, fromUserId, toUserId, SecurityContext.CurrentAccount.ID, deleteProfile);
return QueueWorkerReassign.Start(Tenant.TenantId, model.FromUserId, model.ToUserId, SecurityContext.CurrentAccount.ID, model.DeleteProfile);
}
private void CheckReassignProccess(IEnumerable<Guid> userIds)
@ -1357,7 +1608,6 @@ namespace ASC.Employee.Core.Controllers
//#endregion
#region Remove user data
@ -1370,25 +1620,46 @@ namespace ASC.Employee.Core.Controllers
}
[Update(@"remove/terminate")]
public void TerminateRemove(Guid userId)
public void TerminateRemoveFromBody([FromBody]TerminateModel model)
{
PermissionContext.DemandPermissions(Constants.Action_EditUser);
QueueWorkerRemove.Terminate(Tenant.TenantId, userId);
QueueWorkerRemove.Terminate(Tenant.TenantId, model.UserId);
}
[Update(@"remove/terminate")]
[Consumes("application/x-www-form-urlencoded")]
public void TerminateRemoveFromForm([FromForm]TerminateModel model)
{
PermissionContext.DemandPermissions(Constants.Action_EditUser);
QueueWorkerRemove.Terminate(Tenant.TenantId, model.UserId);
}
[Create(@"remove/start")]
public RemoveProgressItem StartRemove(Guid userId)
public RemoveProgressItem StartRemoveFromBody([FromBody]TerminateModel model)
{
return StartRemove(model);
}
[Create(@"remove/start")]
[Consumes("application/x-www-form-urlencoded")]
public RemoveProgressItem StartRemoveFromForm([FromForm]TerminateModel model)
{
return StartRemove(model);
}
private RemoveProgressItem StartRemove(TerminateModel model)
{
PermissionContext.DemandPermissions(Constants.Action_EditUser);
var user = UserManager.GetUsers(userId);
var user = UserManager.GetUsers(model.UserId);
if (user == null || user.ID == Constants.LostUser.ID)
throw new ArgumentException("User with id = " + userId + " not found");
throw new ArgumentException("User with id = " + model.UserId + " not found");
if (user.IsOwner(Tenant) || user.IsMe(AuthContext) || user.Status != EmployeeStatus.Terminated)
throw new ArgumentException("Can not delete user with id = " + userId);
throw new ArgumentException("Can not delete user with id = " + model.UserId);
return QueueWorkerRemove.Start(Tenant.TenantId, user, SecurityContext.CurrentAccount.ID, true);
}

View File

@ -5,7 +5,6 @@ namespace ASC.People.Models
{
public class GroupModel
{
public Guid Groupid { get; set; }
public Guid GroupManager { get; set; }
public string GroupName { get; set; }
public IEnumerable<Guid> Members { get; set; }

View File

@ -0,0 +1,7 @@
namespace ASC.People.Models
{
public class LinkAccountModel
{
public string SerializedProfile{get;set;}
}
}

View File

@ -4,7 +4,6 @@ namespace ASC.People.Models
{
public class SetManagerModel
{
public Guid GroupId { get; set; }
public Guid UserId { get; set; }
}
}

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace ASC.People.Models
{
public class StartReassignModel
{
public Guid FromUserId { get; set; }
public Guid ToUserId { get; set; }
public bool DeleteProfile { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace ASC.People.Models
{
public class TerminateModel
{
public Guid UserId { get; set; }
}
}

View File

@ -60,7 +60,7 @@ namespace ASC.Web.Api.Controllers
return AuthenticateMe(auth);
}
public AuthenticationTokenData AuthenticateMe(AuthModel auth)
private AuthenticationTokenData AuthenticateMe(AuthModel auth)
{
var tenant = TenantManager.GetCurrentTenant();
var user = GetUser(tenant.TenantId, auth);
@ -92,7 +92,15 @@ namespace ASC.Web.Api.Controllers
[AllowAnonymous]
[Create("confirm", false)]
public ValidationResult CheckConfirm([FromBody] EmailValidationKeyModel model)
public ValidationResult CheckConfirmFromBody([FromBody] EmailValidationKeyModel model)
{
return EmailValidationKeyModelHelper.Validate(model);
}
[AllowAnonymous]
[Create("confirm", false)]
[Consumes("application/x-www-form-urlencoded")]
public ValidationResult CheckConfirmFromForm([FromForm] EmailValidationKeyModel model)
{
return EmailValidationKeyModelHelper.Validate(model);
}

View File

@ -21,7 +21,6 @@ using ASC.Web.Core.Utility;
using ASC.Web.Studio.Core;
using ASC.Web.Studio.Core.Notify;
using ASC.Web.Studio.UserControls.Management;
using ASC.Web.Studio.UserControls.Statistics;
using ASC.Web.Studio.Utility;
using Microsoft.AspNetCore.Mvc;
@ -222,11 +221,19 @@ namespace ASC.Web.Api.Controllers
}
[Create("mobile/registration")]
public void RegisterMobileAppInstall(MobileAppModel model)
public void RegisterMobileAppInstallFromBody([FromBody]MobileAppModel model)
{
var currentUser = UserManager.GetUsers(SecurityContext.CurrentAccount.ID);
MobileAppInstallRegistrator.RegisterInstall(currentUser.Email, model.Type);
}
}
[Create("mobile/registration")]
[Consumes("application/x-www-form-urlencoded")]
public void RegisterMobileAppInstallFromForm([FromForm]MobileAppModel model)
{
var currentUser = UserManager.GetUsers(SecurityContext.CurrentAccount.ID);
MobileAppInstallRegistrator.RegisterInstall(currentUser.Email, model.Type);
}
}
public static class PortalControllerExtension

View File

@ -134,7 +134,19 @@ namespace ASC.Web.Api.Controllers
}
[Create("audit/settings/lifetime")]
public TenantAuditSettings SetAuditSettings(TenantAuditSettingsWrapper wrapper)
public TenantAuditSettings SetAuditSettingsFromBody([FromBody] TenantAuditSettingsWrapper wrapper)
{
return SetAuditSettings(wrapper);
}
[Create("audit/settings/lifetime")]
[Consumes("application/x-www-form-urlencoded")]
public TenantAuditSettings SetAuditSettingsFromForm([FromForm] TenantAuditSettingsWrapper wrapper)
{
return SetAuditSettings(wrapper);
}
private TenantAuditSettings SetAuditSettings(TenantAuditSettingsWrapper wrapper)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

View File

@ -341,7 +341,19 @@ namespace ASC.Api.Settings
}
[Create("messagesettings")]
public object EnableAdminMessageSettings(AdminMessageSettingsModel model)
public object EnableAdminMessageSettingsFromBody([FromBody]AdminMessageSettingsModel model)
{
return EnableAdminMessageSettings(model);
}
[Create("messagesettings")]
[Consumes("application/x-www-form-urlencoded")]
public object EnableAdminMessageSettingsFromForm([FromForm] AdminMessageSettingsModel model)
{
return EnableAdminMessageSettings(model);
}
private object EnableAdminMessageSettings(AdminMessageSettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -354,7 +366,20 @@ namespace ASC.Api.Settings
[AllowAnonymous]
[Create("sendadmmail")]
public object SendAdmMail(AdminMessageSettingsModel model)
public object SendAdmMailFromBody([FromBody]AdminMessageSettingsModel model)
{
return SendAdmMail(model);
}
[AllowAnonymous]
[Create("sendadmmail")]
[Consumes("application/x-www-form-urlencoded")]
public object SendAdmMailFromForm([FromForm] AdminMessageSettingsModel model)
{
return SendAdmMail(model);
}
private object SendAdmMail(AdminMessageSettingsModel model)
{
var studioAdminMessageSettings = SettingsManager.Load<StudioAdminMessageSettings>();
var enableAdmMess = studioAdminMessageSettings.Enable || TenantExtra.IsNotPaid();
@ -377,7 +402,19 @@ namespace ASC.Api.Settings
}
[Create("maildomainsettings")]
public object SaveMailDomainSettings(MailDomainSettingsModel model)
public object SaveMailDomainSettingsFromBody([FromBody] MailDomainSettingsModel model)
{
return SaveMailDomainSettings(model);
}
[Create("maildomainsettings")]
[Consumes("application/x-www-form-urlencoded")]
public object SaveMailDomainSettingsFromForm([FromForm] MailDomainSettingsModel model)
{
return SaveMailDomainSettings(model);
}
private object SaveMailDomainSettings(MailDomainSettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -409,7 +446,20 @@ namespace ASC.Api.Settings
[AllowAnonymous]
[Create("sendjoininvite")]
public object SendJoinInviteMail(AdminMessageSettingsModel model)
public object SendJoinInviteMailFromBody([FromBody]AdminMessageSettingsModel model)
{
return SendJoinInviteMail(model);
}
[AllowAnonymous]
[Create("sendjoininvite")]
[Consumes("application/x-www-form-urlencoded")]
public object SendJoinInviteMailFromForm([FromForm] AdminMessageSettingsModel model)
{
return SendJoinInviteMail(model);
}
private object SendJoinInviteMail(AdminMessageSettingsModel model)
{
try
{
@ -625,7 +675,19 @@ namespace ASC.Api.Settings
}
[Create("greetingsettings")]
public ContentResult SaveGreetingSettings(GreetingSettingsModel model)
public ContentResult SaveGreetingSettingsFromBody([FromBody]GreetingSettingsModel model)
{
return SaveGreetingSettings(model);
}
[Create("greetingsettings")]
[Consumes("application/x-www-form-urlencoded")]
public ContentResult SaveGreetingSettingsFromForm([FromForm]GreetingSettingsModel model)
{
return SaveGreetingSettings(model);
}
private ContentResult SaveGreetingSettings(GreetingSettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -698,7 +760,19 @@ namespace ASC.Api.Settings
}
[Update("version")]
public TenantVersionWrapper SetVersion(SettingsModel model)
public TenantVersionWrapper SetVersionFromBody([FromBody]SettingsModel model)
{
return SetVersion(model);
}
[Update("version")]
[Consumes("application/x-www-form-urlencoded")]
public TenantVersionWrapper SetVersionFromForm([FromForm] SettingsModel model)
{
return SetVersion(model);
}
private TenantVersionWrapper SetVersion(SettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -762,7 +836,19 @@ namespace ASC.Api.Settings
}
[Update("security")]
public IEnumerable<SecurityWrapper> SetWebItemSecurity(WebItemSecurityModel model)
public IEnumerable<SecurityWrapper> SetWebItemSecurityFromBody([FromBody]WebItemSecurityModel model)
{
return SetWebItemSecurity(model);
}
[Update("security")]
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<SecurityWrapper> SetWebItemSecurityFromForm([FromForm] WebItemSecurityModel model)
{
return SetWebItemSecurity(model);
}
private IEnumerable<SecurityWrapper> SetWebItemSecurity(WebItemSecurityModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -796,7 +882,19 @@ namespace ASC.Api.Settings
}
[Update("security/access")]
public IEnumerable<SecurityWrapper> SetAccessToWebItems(WebItemSecurityModel model)
public IEnumerable<SecurityWrapper> SetAccessToWebItemsFromBody([FromBody]WebItemSecurityModel model)
{
return SetAccessToWebItems(model);
}
[Update("security/access")]
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<SecurityWrapper> SetAccessToWebItemsFromForm([FromForm] WebItemSecurityModel model)
{
return SetAccessToWebItems(model);
}
private IEnumerable<SecurityWrapper> SetAccessToWebItems(WebItemSecurityModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -854,11 +952,23 @@ namespace ASC.Api.Settings
public object IsProductAdministrator(Guid productid, Guid userid)
{
var result = WebItemSecurity.IsProductAdministrator(productid, userid);
return new { ProductId = productid, UserId = userid, Administrator = result, };
return new { ProductId = productid, UserId = userid, Administrator = result };
}
[Update("security/administrator")]
public object SetProductAdministrator(SecurityModel model)
public object SetProductAdministratorFromBody([FromBody]SecurityModel model)
{
return SetProductAdministrator(model);
}
[Update("security/administrator")]
[Consumes("application/x-www-form-urlencoded")]
public object SetProductAdministratorFromForm([FromForm] SecurityModel model)
{
return SetProductAdministrator(model);
}
private object SetProductAdministrator(SecurityModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -886,10 +996,21 @@ namespace ASC.Api.Settings
return TenantInfoSettingsHelper.GetAbsoluteCompanyLogoPath(SettingsManager.Load<TenantInfoSettings>());
}
///<visible>false</visible>
[Create("whitelabel/save")]
public bool SaveWhiteLabelSettings([FromBody] WhiteLabelModel model, [FromQuery] WhiteLabelQuery query)
public bool SaveWhiteLabelSettingsFromBody([FromBody] WhiteLabelModel model, [FromQuery] WhiteLabelQuery query)
{
return SaveWhiteLabelSettings(model, query);
}
[Create("whitelabel/save")]
[Consumes("application/x-www-form-urlencoded")]
public bool SaveWhiteLabelSettingsFromForm([FromForm] WhiteLabelModel model, [FromQuery] WhiteLabelQuery query)
{
return SaveWhiteLabelSettings(model, query);
}
private bool SaveWhiteLabelSettings(WhiteLabelModel model, WhiteLabelQuery query)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -940,7 +1061,6 @@ namespace ASC.Api.Settings
}
///<visible>false</visible>
[Create("whitelabel/savefromfiles")]
public bool SaveWhiteLabelSettingsFromFiles([FromQuery] WhiteLabelQuery query)
@ -1138,14 +1258,38 @@ namespace ASC.Api.Settings
}
[Update("iprestrictions")]
public IEnumerable<string> SaveIpRestrictions(IpRestrictionsModel model)
public IEnumerable<string> SaveIpRestrictionsFromBody([FromBody]IpRestrictionsModel model)
{
return SaveIpRestrictions(model);
}
[Update("iprestrictions")]
[Consumes("application/x-www-form-urlencoded")]
public IEnumerable<string> SaveIpRestrictionsFromForm([FromForm] IpRestrictionsModel model)
{
return SaveIpRestrictions(model);
}
private IEnumerable<string> SaveIpRestrictions(IpRestrictionsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
return IPRestrictionsService.Save(model.Ips, Tenant.TenantId);
}
[Update("iprestrictions/settings")]
public IPRestrictionsSettings UpdateIpRestrictionsSettings(IpRestrictionsModel model)
public IPRestrictionsSettings UpdateIpRestrictionsSettingsFromBody([FromBody]IpRestrictionsModel model)
{
return UpdateIpRestrictionsSettings(model);
}
[Update("iprestrictions/settings")]
[Consumes("application/x-www-form-urlencoded")]
public IPRestrictionsSettings UpdateIpRestrictionsSettingsFromForm([FromForm] IpRestrictionsModel model)
{
return UpdateIpRestrictionsSettings(model);
}
private IPRestrictionsSettings UpdateIpRestrictionsSettings(IpRestrictionsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -1156,7 +1300,19 @@ namespace ASC.Api.Settings
}
[Update("tips")]
public TipsSettings UpdateTipsSettings(SettingsModel model)
public TipsSettings UpdateTipsSettingsFromBody([FromBody]SettingsModel model)
{
return UpdateTipsSettings(model);
}
[Update("tips")]
[Consumes("application/x-www-form-urlencoded")]
public TipsSettings UpdateTipsSettingsFromForm([FromForm] SettingsModel model)
{
return UpdateTipsSettings(model);
}
private TipsSettings UpdateTipsSettings(SettingsModel model)
{
var settings = new TipsSettings { Show = model.Show };
SettingsManager.SaveForCurrentUser(settings);
@ -1191,7 +1347,20 @@ namespace ASC.Api.Settings
[Update("wizard/complete", Check = false)]
[Authorize(AuthenticationSchemes = "confirm", Roles = "Wizard")]
public WizardSettings CompleteWizard(WizardModel wizardModel)
public WizardSettings CompleteWizardFromBody([FromBody]WizardModel wizardModel)
{
return CompleteWizard(wizardModel);
}
[Update("wizard/complete", Check = false)]
[Authorize(AuthenticationSchemes = "confirm", Roles = "Wizard")]
[Consumes("application/x-www-form-urlencoded")]
public WizardSettings CompleteWizardFromForm([FromForm] WizardModel wizardModel)
{
return CompleteWizard(wizardModel);
}
private WizardSettings CompleteWizard(WizardModel wizardModel)
{
ApiContext.AuthByClaim();
@ -1202,7 +1371,19 @@ namespace ASC.Api.Settings
[Update("tfaapp")]
public bool TfaSettings(TfaModel model)
public bool TfaSettingsFromBody([FromBody]TfaModel model)
{
return TfaSettings(model);
}
[Update("tfaapp")]
[Consumes("application/x-www-form-urlencoded")]
public bool TfaSettingsFromForm([FromForm] TfaModel model)
{
return TfaSettings(model);
}
private bool TfaSettings(TfaModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -1311,7 +1492,19 @@ namespace ASC.Api.Settings
}
[Update("tfaappnewapp")]
public object TfaAppNewApp(TfaModel model)
public object TfaAppNewAppFromBody([FromBody]TfaModel model)
{
return TfaAppNewApp(model);
}
[Update("tfaappnewapp")]
[Consumes("application/x-www-form-urlencoded")]
public object TfaAppNewAppFromForm([FromForm] TfaModel model)
{
return TfaAppNewApp(model);
}
private object TfaAppNewApp(TfaModel model)
{
var isMe = model.Id.Equals(Guid.Empty);
var user = UserManager.GetUsers(isMe ? AuthContext.CurrentAccount.ID : model.Id);
@ -1355,7 +1548,19 @@ namespace ASC.Api.Settings
///<visible>false</visible>
[Update("colortheme")]
public void SaveColorTheme(SettingsModel model)
public void SaveColorThemeFromBody([FromBody]SettingsModel model)
{
SaveColorTheme(model);
}
[Update("colortheme")]
[Consumes("application/x-www-form-urlencoded")]
public void SaveColorThemeFromForm([FromForm] SettingsModel model)
{
SaveColorTheme(model);
}
private void SaveColorTheme(SettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
ColorThemesSettingsHelper.SaveColorTheme(model.Theme);
@ -1364,7 +1569,19 @@ namespace ASC.Api.Settings
///<visible>false</visible>
[Update("timeandlanguage")]
public object TimaAndLanguage(SettingsModel model)
public object TimaAndLanguageFromBody([FromBody]SettingsModel model)
{
return TimaAndLanguage(model);
}
[Update("timeandlanguage")]
[Consumes("application/x-www-form-urlencoded")]
public object TimaAndLanguageFromForm([FromForm] SettingsModel model)
{
return TimaAndLanguage(model);
}
private object TimaAndLanguage(SettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -1406,7 +1623,19 @@ namespace ASC.Api.Settings
}
[Create("owner")]
public object SendOwnerChangeInstructions(SettingsModel model)
public object SendOwnerChangeInstructionsFromBody([FromBody]SettingsModel model)
{
return SendOwnerChangeInstructions(model);
}
[Create("owner")]
[Consumes("application/x-www-form-urlencoded")]
public object SendOwnerChangeInstructionsFromForm([FromForm] SettingsModel model)
{
return SendOwnerChangeInstructions(model);
}
private object SendOwnerChangeInstructions(SettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -1432,7 +1661,20 @@ namespace ASC.Api.Settings
[Update("owner")]
[Authorize(AuthenticationSchemes = "confirm", Roles = "PortalOwnerChange")]
public void Owner(SettingsModel model)
public void OwnerFromBody([FromBody]SettingsModel model)
{
Owner(model);
}
[Update("owner")]
[Authorize(AuthenticationSchemes = "confirm", Roles = "PortalOwnerChange")]
[Consumes("application/x-www-form-urlencoded")]
public void OwnerFromForm([FromForm] SettingsModel model)
{
Owner(model);
}
private void Owner(SettingsModel model)
{
var newOwner = Constants.LostUser;
try
@ -1461,7 +1703,19 @@ namespace ASC.Api.Settings
///<visible>false</visible>
[Update("defaultpage")]
public object SaveDefaultPageSettings(SettingsModel model)
public object SaveDefaultPageSettingsFromBody([FromBody]SettingsModel model)
{
return SaveDefaultPageSettings(model);
}
[Update("defaultpage")]
[Consumes("application/x-www-form-urlencoded")]
public object SaveDefaultPageSettingsFromForm([FromForm] SettingsModel model)
{
return SaveDefaultPageSettings(model);
}
private object SaveDefaultPageSettings(SettingsModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -1591,7 +1845,19 @@ namespace ASC.Api.Settings
}
[Create("customnavigation/create")]
public CustomNavigationItem CreateCustomNavigationItem(CustomNavigationItem item)
public CustomNavigationItem CreateCustomNavigationItemFromBody([FromBody]CustomNavigationItem item)
{
return CreateCustomNavigationItem(item);
}
[Create("customnavigation/create")]
[Consumes("application/x-www-form-urlencoded")]
public CustomNavigationItem CreateCustomNavigationItemFromForm([FromForm] CustomNavigationItem item)
{
return CreateCustomNavigationItem(item);
}
private CustomNavigationItem CreateCustomNavigationItem(CustomNavigationItem item)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
@ -1661,12 +1927,17 @@ namespace ASC.Api.Settings
}
[Update("emailactivation")]
public EmailActivationSettings UpdateEmailActivationSettings(bool show)
public EmailActivationSettings UpdateEmailActivationSettingsFromBody([FromBody]EmailActivationSettings settings)
{
var settings = new EmailActivationSettings { Show = show };
SettingsManager.SaveForCurrentUser(settings);
return settings;
}
[Update("emailactivation")]
[Consumes("application/x-www-form-urlencoded")]
public EmailActivationSettings UpdateEmailActivationSettingsFromForm([FromForm]EmailActivationSettings settings)
{
SettingsManager.SaveForCurrentUser(settings);
return settings;
}
@ -1786,7 +2057,19 @@ namespace ASC.Api.Settings
public readonly object Locker = new object();
[Create("encryption/start")]
public bool StartStorageEncryption(StorageEncryptionModel storageEncryption)
public bool StartStorageEncryptionFromBody([FromBody]StorageEncryptionModel storageEncryption)
{
return StartStorageEncryption(storageEncryption);
}
[Create("encryption/start")]
[Consumes("application/x-www-form-urlencoded")]
public bool StartStorageEncryptionFromForm([FromForm] StorageEncryptionModel storageEncryption)
{
return StartStorageEncryption(storageEncryption);
}
private bool StartStorageEncryption(StorageEncryptionModel storageEncryption)
{
lock (Locker)
{
@ -1965,7 +2248,19 @@ namespace ASC.Api.Settings
}
[Update("storage")]
public StorageSettings UpdateStorage(StorageModel model)
public StorageSettings UpdateStorageFromBody([FromBody]StorageModel model)
{
return UpdateStorage(model);
}
[Update("storage")]
[Consumes("application/x-www-form-urlencoded")]
public StorageSettings UpdateStorageFromForm([FromForm] StorageModel model)
{
return UpdateStorage(model);
}
private StorageSettings UpdateStorage(StorageModel model)
{
try
{
@ -2033,7 +2328,19 @@ namespace ASC.Api.Settings
}
[Update("storage/cdn")]
public CdnStorageSettings UpdateCdn(StorageModel model)
public CdnStorageSettings UpdateCdnFromBody([FromBody]StorageModel model)
{
return UpdateCdn(model);
}
[Update("storage/cdn")]
[Consumes("application/x-www-form-urlencoded")]
public CdnStorageSettings UpdateCdnFromForm([FromForm] StorageModel model)
{
return UpdateCdn(model);
}
private CdnStorageSettings UpdateCdn(StorageModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
if (!CoreBaseSettings.Standalone) return null;
@ -2130,7 +2437,19 @@ namespace ASC.Api.Settings
///<visible>false</visible>
[Create("rebranding/company")]
public bool SaveCompanyWhiteLabelSettings(CompanyWhiteLabelSettingsWrapper companyWhiteLabelSettingsWrapper)
public bool SaveCompanyWhiteLabelSettingsFromBody([FromBody] CompanyWhiteLabelSettingsWrapper companyWhiteLabelSettingsWrapper)
{
return SaveCompanyWhiteLabelSettings(companyWhiteLabelSettingsWrapper);
}
[Create("rebranding/company")]
[Consumes("application/x-www-form-urlencoded")]
public bool SaveCompanyWhiteLabelSettingsFromForm([FromForm] CompanyWhiteLabelSettingsWrapper companyWhiteLabelSettingsWrapper)
{
return SaveCompanyWhiteLabelSettings(companyWhiteLabelSettingsWrapper);
}
private bool SaveCompanyWhiteLabelSettings(CompanyWhiteLabelSettingsWrapper companyWhiteLabelSettingsWrapper)
{
if (companyWhiteLabelSettingsWrapper.Settings == null) throw new ArgumentNullException("settings");
@ -2164,7 +2483,19 @@ namespace ASC.Api.Settings
///<visible>false</visible>
[Create("rebranding/additional")]
public bool SaveAdditionalWhiteLabelSettings(AdditionalWhiteLabelSettingsWrapper wrapper)
public bool SaveAdditionalWhiteLabelSettingsFromBody([FromBody]AdditionalWhiteLabelSettingsWrapper wrapper)
{
return SaveAdditionalWhiteLabelSettings(wrapper);
}
[Create("rebranding/additional")]
[Consumes("application/x-www-form-urlencoded")]
public bool SaveAdditionalWhiteLabelSettingsFromForm([FromForm] AdditionalWhiteLabelSettingsWrapper wrapper)
{
return SaveAdditionalWhiteLabelSettings(wrapper);
}
private bool SaveAdditionalWhiteLabelSettings(AdditionalWhiteLabelSettingsWrapper wrapper)
{
if (wrapper.Settings == null) throw new ArgumentNullException("settings");
@ -2196,7 +2527,19 @@ namespace ASC.Api.Settings
///<visible>false</visible>
[Create("rebranding/mail")]
public bool SaveMailWhiteLabelSettings(MailWhiteLabelSettings settings)
public bool SaveMailWhiteLabelSettingsFromBody([FromBody] MailWhiteLabelSettings settings)
{
return SaveMailWhiteLabelSettings(settings);
}
///<visible>false</visible>
[Create("rebranding/mail")]
public bool SaveMailWhiteLabelSettingsFromForm([FromForm] MailWhiteLabelSettings settings)
{
return SaveMailWhiteLabelSettings(settings);
}
private bool SaveMailWhiteLabelSettings(MailWhiteLabelSettings settings)
{
if (settings == null) throw new ArgumentNullException("settings");
@ -2208,13 +2551,25 @@ namespace ASC.Api.Settings
///<visible>false</visible>
[Update("rebranding/mail")]
public bool UpdateMailWhiteLabelSettings(bool footerEnabled)
public bool UpdateMailWhiteLabelSettingsFromBody([FromBody]MailWhiteLabelSettingsModel model)
{
return UpdateMailWhiteLabelSettings(model);
}
[Update("rebranding/mail")]
[Consumes("application/x-www-form-urlencoded")]
public bool UpdateMailWhiteLabelSettingsFromForm([FromForm]MailWhiteLabelSettingsModel model)
{
return UpdateMailWhiteLabelSettings(model);
}
private bool UpdateMailWhiteLabelSettings(MailWhiteLabelSettingsModel model)
{
DemandRebrandingPermission();
var settings = SettingsManager.LoadForDefaultTenant<MailWhiteLabelSettings>();
settings.FooterEnabled = footerEnabled;
settings.FooterEnabled = model.FooterEnabled;
SettingsManager.SaveForDefaultTenant(settings);
@ -2267,7 +2622,19 @@ namespace ASC.Api.Settings
}
[Create("authservice")]
public bool SaveAuthKeys(AuthServiceModel model)
public bool SaveAuthKeysFromBody([FromBody]AuthServiceModel model)
{
return SaveAuthKeys(model);
}
[Create("authservice")]
[Consumes("application/x-www-form-urlencoded")]
public bool SaveAuthKeysFromForm([FromForm] AuthServiceModel model)
{
return SaveAuthKeys(model);
}
private bool SaveAuthKeys(AuthServiceModel model)
{
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
if (!SetupInfo.IsVisibleSettings(ManagementType.ThirdPartyAuthorization.ToString()))

View File

@ -80,7 +80,19 @@ namespace ASC.Api.Settings
}
[Create("smtp")]
public SmtpSettingsWrapper SaveSmtpSettings(SmtpSettingsWrapper smtpSettings)
public SmtpSettingsWrapper SaveSmtpSettingsFromBody([FromBody]SmtpSettingsWrapper smtpSettings)
{
return SaveSmtpSettings(smtpSettings);
}
[Create("smtp")]
[Consumes("application/x-www-form-urlencoded")]
public SmtpSettingsWrapper SaveSmtpSettingsFromForm([FromForm] SmtpSettingsWrapper smtpSettings)
{
return SaveSmtpSettings(smtpSettings);
}
private SmtpSettingsWrapper SaveSmtpSettings(SmtpSettingsWrapper smtpSettings)
{
CheckSmtpPermissions();

View File

@ -0,0 +1,7 @@
namespace ASC.Web.Api.Models
{
public class MailWhiteLabelSettingsModel
{
public bool FooterEnabled { get; set; }
}
}

View File

@ -2,8 +2,6 @@
using ASC.Api.Collections;
using Microsoft.AspNetCore.Http;
namespace ASC.Web.Api.Models
{
public class WhiteLabelModel