Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/13/12 17:28:04 (12 years ago)
Author:
ascheibe
Message:

#1648

  • added a ws method for resetting a password
  • added user role checking for the service
Location:
branches/ClientUserManagement/HeuristicLab.Services.Access/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/AccessService.cs

    r7611 r7612  
    3636    private IUserManager UserManager {
    3737      get {
    38         if (userManager == null) userManager = new UserManager();
     38        if (userManager == null) userManager = AccessServiceLocator.Instance.UserManager;
    3939        return userManager;
    4040      }
     
    4444    private IRoleVerifier RoleVerifier {
    4545      get {
    46         if (roleVerifier == null) roleVerifier = new RoleVerifier();
     46        if (roleVerifier == null) roleVerifier = AccessServiceLocator.Instance.RoleVerifier;
    4747        return roleVerifier;
    4848      }
     
    143143
    144144    public void DeleteClient(DT.Client client) {
     145      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     146
    145147      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    146148        //load client because we could get a detached object
     
    198200
    199201    public void DeleteClientGroup(DT.ClientGroup clientGroup) {
     202      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     203
    200204      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    201205        //load clientGroup because we could get a detached object
     
    289293
    290294    public void DeleteClientLog(DT.ClientLog log) {
     295      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     296
    291297      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    292298        context.ClientLogs.DeleteOnSubmit(Convert.ToEntity(log));
     
    484490
    485491    public DT.User AddUser(DT.User user) {
     492      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     493
    486494      DA.User accessUser;
    487495      DA.aspnet_User aspUser;
     
    529537
    530538    public void DeleteUser(DT.User user) {
     539      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     540
    531541      if (user.Id != null && user.Id != Guid.Empty) {
    532542        //delete asp.net user
     
    551561
    552562    public void UpdateUser(DT.User user) {
     563      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     564
    553565      AddUser(user);
    554566    }
    555567
    556568    public void AddUserToRole(DT.Role role, DT.User user) {
     569      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     570
    557571      //TODO: usernames and rolenames have to be unique!
    558572      MembershipUser msUser = Membership.GetUser((object)user.Id);
     
    563577
    564578    public void RemoveUserFromRole(DT.Role role, DT.User user) {
     579      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     580
    565581      MembershipUser msUser = Membership.GetUser((object)user.Id);
    566582      if (msUser != null) {
     
    569585    }
    570586
    571     public bool ResetPassword(Guid userId, string oldPassword, string newPassword) {
     587    public bool ChangePassword(Guid userId, string oldPassword, string newPassword) {
    572588      MembershipUser msUser = Membership.GetUser(userId);
    573589      if (msUser != null) {
     
    575591      }
    576592      return false;
     593    }
     594
     595    public string ResetPassword(Guid userId) {
     596      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     597
     598      MembershipUser msUser = Membership.GetUser(userId);
     599      if (msUser != null) {
     600        return msUser.ResetPassword();
     601      } else {
     602        throw new Exception("Password reset failed.");
     603      }
    577604    }
    578605    #endregion
     
    626653
    627654    public void DeleteUserGroup(DT.UserGroup group) {
     655      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     656
    628657      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    629658        context.UserGroupBases.DeleteOnSubmit(Convert.ToEntity(group));
     
    733762
    734763    public DT.Role AddRole(DT.Role role) {
     764      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     765
    735766      Roles.CreateRole(role.Name);
    736767      return role;
     
    738769
    739770    public void DeleteRole(DT.Role role) {
     771      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     772
    740773      Roles.DeleteRole(role.Name);
    741774    }
     
    767800
    768801    public void RemoveRoleFromGroup(DT.UserGroup userGroup, DT.Role role) {
     802      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     803
    769804      Guid[] userIds;
    770805      string[] aspUsers;
     
    795830
    796831    public IEnumerable<DT.ClientError> GetClientErrors() {
     832      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     833
    797834      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    798835        var query = from c in context.ClientErrors
     
    803840
    804841    public IEnumerable<DT.ClientError> GetLastClientErrors(DateTime startDate) {
     842      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     843
    805844      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    806845        var query = from c in context.ClientErrors
     
    812851
    813852    public void DeleteError(DT.ClientError error) {
     853      roleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
     854
    814855      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    815856        var query = context.ClientErrors.Where(x => x.Id == error.Id);
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/IAccessService.cs

    r7611 r7612  
    104104
    105105    #region User
    106     //TODO: i don't think this method is needed
    107106    [OperationContract]
    108107    LightweightUser Login();
     
    142141
    143142    [OperationContract]
    144     bool ResetPassword(Guid userId, string oldPassword, string newPassword);
     143    bool ChangePassword(Guid userId, string oldPassword, string newPassword);
     144
     145    [OperationContract]
     146    string ResetPassword(Guid userId);
    145147    #endregion
    146148
Note: See TracChangeset for help on using the changeset viewer.