Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/18/12 17:21:13 (12 years ago)
Author:
ascheibe
Message:

#1648

  • updated frame files
  • added a lightweight user dto for non-admin users
  • added access service roles
  • some more minor changes
Location:
branches/ClientUserManagement/HeuristicLab.Services.Access/3.3
Files:
2 added
7 edited
1 moved

Legend:

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

    r7355 r7367  
    278278      DA.User accessUser = null;
    279279
     280      //TODO: add user to userdb if there is only data available in the asp.net authentication db
    280281      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
    281282        var query = from u in context.UserGroupBases.OfType<DA.User>()
     
    311312    }
    312313
     314    private DT.LightweightUser BuildLightweightUserDto(Guid userId) {
     315      DA.aspnet_User aspUser = null;
     316      DA.User accessUser = null;
     317
     318      //TODO: add user to userdb if there is only data available in the asp.net authentication db
     319      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
     320        var userQuery = from u in context.aspnet_Users
     321                        where u.UserId == userId
     322                        select u;
     323        if (userQuery.Count() == 1) {
     324          aspUser = userQuery.First();
     325        }
     326      }
     327
     328      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     329        var query = from u in context.UserGroupBases.OfType<DA.User>()
     330                    where u.Id == userId
     331                    select u;
     332        if (query.Count() == 1) {
     333          accessUser = query.First();
     334        }
     335      }
     336
     337      if (aspUser == null || accessUser == null) {
     338        //TODO: error handling
     339        return null;
     340      } else {
     341        return Convert.ToDto(accessUser, aspUser);
     342      }
     343    }
     344
    313345    public DT.User Login() {
    314346      Guid userId = UserManager.CurrentUserId;
    315347      return BuildUserDto(userId);
     348    }
     349
     350    public IEnumerable<DT.LightweightUser> GetAllLightweightUsers() {
     351      List<Guid> accessUserGuids = null;
     352
     353      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     354        var query = from u in context.UserGroupBases.OfType<DA.User>()
     355                    select u.Id;
     356        accessUserGuids = query.ToList();
     357      }
     358
     359      return accessUserGuids.Select(x => BuildLightweightUserDto(x));
    316360    }
    317361
     
    445489    }
    446490
     491    public IEnumerable<DT.UserGroup> GetUserGroupsOfUser(Guid userId) {
     492
     493      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
     494        var groupIds = from g in context.UserGroupUserGroups
     495                       where g.UserGroupId == userId
     496                       select g.UserGroupUserGroupId;
     497
     498        var query = from g in context.UserGroupBases.OfType<DA.UserGroup>()
     499                    where groupIds.Contains(g.Id)
     500                    select Convert.ToDto(g);
     501
     502        return query.ToList();
     503      }
     504    }
     505
    447506    public IEnumerable<DT.UserGroup> GetUserGroups(IEnumerable<Guid> ids) {
    448507      using (DA.ClientManagementDataContext context = new DA.ClientManagementDataContext()) {
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/App.config

    r6858 r7367  
    8585        <host>
    8686          <baseAddresses>
    87             <add baseAddress="http://localhost/AccessService" />
     87            <add baseAddress="http://localhost:81/AccessService" />
    8888          </baseAddresses>
    8989        </host>
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/Convert.cs

    r7355 r7367  
    283283
    284284    #region User
     285
     286    public static DT.LightweightUser ToDto(DA.User source, DA.aspnet_User aspUserSource) {
     287      return new DT.LightweightUser() {
     288        Id = source.Id,
     289        FullName = source.FullName,
     290        UserName = aspUserSource.UserName
     291      };
     292    }
     293
    285294    public static DT.User ToDto(DA.User source, DA.aspnet_User aspUserSource, DA.aspnet_Membership aspMembershipSource) {
    286295      return new DT.User() {
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/DataTransfer/User.cs

    r7355 r7367  
    2121
    2222using System;
    23 using System.Collections.Generic;
    2423using System.Runtime.Serialization;
    2524
     
    3635    public string Email { get; set; }
    3736    [DataMember]
    38     public IEnumerable<UserGroup> UserGroups { get; set; }
    39     [DataMember]
    4037    public DateTime CreationDate { get; set; }
    4138    [DataMember]
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/DataTransfer/UserGroupBase.cs

    r7355 r7367  
    2626  [DataContract]
    2727  [KnownType(typeof(User))]
     28  [KnownType(typeof(LightweightUser))]
    2829  [KnownType(typeof(UserGroup))]
    2930  public class UserGroupBase : AccessItem {
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj

    r7358 r7367  
    5555  <ItemGroup>
    5656    <Compile Include="AccessServiceLocator.cs" />
     57    <Compile Include="AccessServiceRoles.cs" />
    5758    <Compile Include="Convert.cs" />
    5859    <Compile Include="DataTransfer\Client.cs" />
     
    6566    <Compile Include="DataTransfer\ClientType.cs" />
    6667    <Compile Include="DataTransfer\Country.cs" />
     68    <Compile Include="DataTransfer\LightweightUser.cs" />
    6769    <Compile Include="DataTransfer\OperatingSystem.cs" />
    6870    <Compile Include="DataTransfer\Plugin.cs" />
     
    8587    <None Include="App.config" />
    8688    <None Include="HeuristicLab.snk" />
    87     <None Include="Properties\AssemblyInfo.frame" />
     89    <None Include="Properties\AssemblyInfo.cs.frame" />
    8890  </ItemGroup>
    8991  <ItemGroup>
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/IAccessService.cs

    r7355 r7367  
    104104
    105105    #region User
     106    //TODO: i don't think this method is needed
    106107    [OperationContract]
    107108    User Login();
    108109
    109110    [OperationContract]
     111    IEnumerable<LightweightUser> GetAllLightweightUsers();
     112
     113    [OperationContract]
    110114    IEnumerable<User> GetAllUsers();
    111115
     
    135139    [OperationContract]
    136140    IEnumerable<UserGroup> GetAllUserGroups();
     141
     142    [OperationContract]
     143    IEnumerable<UserGroup> GetUserGroupsOfUser(Guid userId);
    137144
    138145    [OperationContract]
  • branches/ClientUserManagement/HeuristicLab.Services.Access/3.3/Properties/AssemblyInfo.cs.frame

    r7355 r7367  
    5454// by using the '*' as shown below:
    5555// [assembly: AssemblyVersion("1.0.*")]
    56 [assembly: AssemblyVersion("3.3.5.0")]
    57 [assembly: AssemblyFileVersion("3.3.5.$WCREV$")]
     56[assembly: AssemblyVersion("3.3.0.0")]
     57[assembly: AssemblyFileVersion("3.3.6.$WCREV$")]
Note: See TracChangeset for help on using the changeset viewer.