using System; using System.Collections.Generic; using HeuristicLab.Services.Authentication.DataTransfer; using System.ServiceModel; using System.Net.Security; namespace HeuristicLab.Services.Authentication { [ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)] public interface IAuthenticationService { #region User [OperationContract] User GetUser(Guid id); [OperationContract] User GetUser(Guid applicationId, string userName); [OperationContract] IEnumerable GetUsers(Guid applicationId); [OperationContract] bool InsertUser(User user); [OperationContract] bool DeleteUser(Guid id); [OperationContract] bool UpdateUser(User user); [OperationContract] bool AddUserToRole(Guid roleId, Guid userId); [OperationContract] bool RemoveUserFromRole(Guid roleId, Guid userId); [OperationContract] IEnumerable GetRolesForUser(Guid userId); #endregion #region Role [OperationContract] Role GetRole(Guid id); [OperationContract] Role GetRole(Guid applicationId, string roleName); [OperationContract] IEnumerable GetRoles(Guid applicationId); [OperationContract] bool RoleExists(Guid roleId); [OperationContract] bool IsUserInRole(Guid roleId, Guid userId); [OperationContract] bool InsertRole(Role role); [OperationContract] bool UpdateRole(Role role); [OperationContract] bool DeleteRole(Guid id); [OperationContract] IEnumerable GetUsersInRole(Guid roleId); #endregion #region Application [OperationContract] Application GetApplication(Guid id); [OperationContract] Application InsertApplication(Application application); [OperationContract] bool DeleteApplication(Application application); #endregion #region Membership [OperationContract] Membership InsertMembership(Membership membership); #endregion } }