Ejemplo n.º 1
0
        public IEnumerable <DT.UserGroupBase> GetAllLeightweightUsersAndGroups()
        {
            List <DT.UserGroup>     userGroups = new List <DT.UserGroup>();
            List <DT.UserGroupBase> result     = new List <DT.UserGroupBase>();

            List <Guid> accessUserGuids = null;

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var query = from u in context.aspnet_Users
                            select u.UserId;
                accessUserGuids = query.ToList();
            }
            var lightweightUsers = accessUserGuids.Select(x => BuildLightweightUserDto(x));

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from u in context.UserGroupBases.OfType <DA.UserGroup>()
                            select Convert.ToDto(u);

                userGroups = query.ToList();
            }

            result.AddRange(lightweightUsers);
            result.AddRange(userGroups);

            return(result);
        }
Ejemplo n.º 2
0
        public IEnumerable <DT.Role> GetRoles()
        {
            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var query = from u in context.aspnet_Roles
                            select Convert.ToDto(u);

                return(query.ToList());
            }
        }
Ejemplo n.º 3
0
        private DT.User BuildUserDto(Guid userId)
        {
            DA.aspnet_User       aspUser       = null;
            DA.aspnet_Membership aspMembership = null;
            DA.User accessUser = null;

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var userQuery = from u in context.aspnet_Users
                                where u.UserId == userId
                                select u;
                if (userQuery.Count() == 1)
                {
                    aspUser = userQuery.First();
                }

                var memQuery = from u in context.aspnet_Memberships
                               where u.UserId == userId
                               select u;
                if (memQuery.Count() == 1)
                {
                    aspMembership = memQuery.First();
                }
            }

            if (aspUser != null || aspMembership != null)
            {
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    var query = from u in context.UserGroupBases.OfType <DA.User>()
                                where u.Id == userId
                                select u;
                    if (query.Count() == 1)
                    {
                        accessUser = query.First();
                    }
                    else
                    {
                        //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
                        DA.User user = new DA.User();
                        user.Id       = userId;
                        user.FullName = "Not set";
                        context.UserGroupBases.InsertOnSubmit(user);
                        context.SubmitChanges();
                        accessUser = user;
                    }
                }
            }

            if (aspUser == null || aspMembership == null || accessUser == null)
            {
                throw new Exception("User with id " + userId + " not found.");
            }
            else
            {
                return(Convert.ToDto(accessUser, aspUser, aspMembership));
            }
        }
Ejemplo n.º 4
0
        public IEnumerable <DT.LightweightUser> GetAllLightweightUsers()
        {
            List <Guid> accessUserGuids = null;

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var query = from u in context.aspnet_Users
                            select u.UserId;
                accessUserGuids = query.ToList();
            }
            return(accessUserGuids.Select(x => BuildLightweightUserDto(x)));
        }
Ejemplo n.º 5
0
        public DT.User AddUser(DT.User user)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            DA.User              accessUser;
            DA.aspnet_User       aspUser;
            DA.aspnet_Membership aspMembership;
            bool userExistsInASP;

            Convert.ToEntity(user, out accessUser, out aspUser, out aspMembership, out userExistsInASP);

            if (userExistsInASP)
            {
                if (accessUser.Id == null || accessUser.Id == Guid.Empty)
                {
                    accessUser.Id = aspMembership.UserId;
                }
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    context.UserGroupBases.InsertOnSubmit(accessUser);
                    context.SubmitChanges();
                }
                MembershipUser membershipUser = Membership.GetUser((object)accessUser.Id);
                if (membershipUser != null)
                {
                    membershipUser.Email      = aspMembership.Email;
                    membershipUser.IsApproved = aspMembership.IsApproved;
                    membershipUser.Comment    = aspMembership.Comment;
                    Membership.UpdateUser(membershipUser);
                }
            }
            else
            {
                MembershipUser membershipUser = Membership.CreateUser(aspUser.UserName, aspUser.UserName, aspMembership.Email);
                membershipUser.IsApproved = aspMembership.IsApproved;
                membershipUser.Comment    = aspMembership.Comment;
                Membership.UpdateUser(membershipUser);

                Guid userId = (Guid)membershipUser.ProviderUserKey;
                accessUser.Id = userId;

                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    context.UserGroupBases.InsertOnSubmit(accessUser);
                    context.SubmitChanges();
                }
            }

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var newAspUser       = context.aspnet_Users.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
                var newAspMembership = context.aspnet_Memberships.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
                return(Convert.ToDto(accessUser, newAspUser, newAspMembership));
            }
        }
Ejemplo n.º 6
0
        public IEnumerable <DT.Role> GetRolesOfCurrentUser()
        {
            Guid userId = UserManager.CurrentUserId;

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var query = from ur in context.aspnet_UsersInRoles
                            from r in context.aspnet_Roles
                            where ur.UserId == userId && ur.RoleId == r.RoleId
                            select Convert.ToDto(r);

                return(query.ToList());
            }
        }
Ejemplo n.º 7
0
        public IEnumerable <DT.User> GetAllUsers()
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            List <Guid> accessUserGuids = null;

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var query = from u in context.aspnet_Users
                            select u.UserId;
                accessUserGuids = query.ToList();
            }

            return(accessUserGuids.Select(x => BuildUserDto(x)));
        }
Ejemplo n.º 8
0
        public void AddRoleToGroup(DT.UserGroup userGroup, DT.Role role)
        {
            Guid[]   userIds;
            string[] aspUsers;

            using (DA.AccessServiceDataContext accessContext = new DA.AccessServiceDataContext()) {
                userIds = (from u in accessContext.UserGroupUserGroups
                           where u.UserGroupUserGroupId == userGroup.Id
                           select u.UserGroupId).ToArray();
            }

            using (DA.ASPNETAuthenticationDataContext aspContext = new DA.ASPNETAuthenticationDataContext()) {
                aspUsers = (from u in aspContext.aspnet_Users
                            where userIds.Contains(u.UserId)
                            select u.UserName).ToArray();
            }

            Roles.AddUsersToRole(aspUsers, role.Name);
        }
Ejemplo n.º 9
0
        public void RemoveRoleFromGroup(DT.UserGroup userGroup, DT.Role role)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            Guid[]   userIds;
            string[] aspUsers;

            using (DA.AccessServiceDataContext accessContext = new DA.AccessServiceDataContext()) {
                userIds = (from u in accessContext.UserGroupUserGroups
                           where u.UserGroupUserGroupId == userGroup.Id
                           select u.UserGroupId).ToArray();
            }

            using (DA.ASPNETAuthenticationDataContext aspContext = new DA.ASPNETAuthenticationDataContext()) {
                aspUsers = (from u in aspContext.aspnet_Users
                            where userIds.Contains(u.UserId)
                            select u.UserName).ToArray();
            }

            Roles.RemoveUsersFromRole(aspUsers.ToArray(), role.Name);
        }
Ejemplo n.º 10
0
        public static void ToEntity(DT.User source, out DA.User accessUser, out DA.aspnet_User aspUser, out DA.aspnet_Membership aspMembership, out bool userExistsInASP)
        {
            userExistsInASP = false;
            accessUser      = new DA.User();
            aspUser         = new DA.aspnet_User();
            aspMembership   = new DA.aspnet_Membership();

            if (source.Id != Guid.Empty)
            {
                using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                    var userCol       = context.aspnet_Users.Where(s => s.UserId == source.Id);
                    var membershipCol = context.aspnet_Memberships.Where(s => s.UserId == source.Id);
                    if (userCol.Count() > 0 && membershipCol.Count() > 0)
                    {
                        aspUser         = userCol.First();
                        aspMembership   = membershipCol.First();
                        userExistsInASP = true;
                    }
                }
            }

            accessUser.Id       = source.Id;
            accessUser.FullName = source.FullName;

            aspUser.UserId           = source.Id;
            aspUser.LastActivityDate = source.LastActivityDate;
            aspUser.UserName         = source.UserName;

            aspMembership.UserId                  = source.Id;
            aspMembership.Comment                 = source.Comment;
            aspMembership.CreateDate              = source.CreationDate;
            aspMembership.Email                   = source.Email;
            aspMembership.IsApproved              = source.IsApproved;
            aspMembership.LastLoginDate           = source.LastLoginDate;
            aspMembership.LastPasswordChangedDate = source.LastPasswordChangedDate;
        }
Ejemplo n.º 11
0
    public IEnumerable<DT.Role> GetRolesOfCurrentUser() {
      Guid userId = UserManager.CurrentUserId;

      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var query = from ur in context.aspnet_UsersInRoles
                    from r in context.aspnet_Roles
                    where ur.UserId == userId && ur.RoleId == r.RoleId
                    select Convert.ToDto(r);
        return query.ToList();
      }
    }
Ejemplo n.º 12
0
    public static void ToEntity(DT.User source, out DA.User accessUser, out DA.aspnet_User aspUser, out DA.aspnet_Membership aspMembership, out bool userExistsInASP) {
      userExistsInASP = false;
      accessUser = new DA.User();
      aspUser = new DA.aspnet_User();
      aspMembership = new DA.aspnet_Membership();

      if (source.Id != Guid.Empty) {
        using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
          var userCol = context.aspnet_Users.Where(s => s.UserId == source.Id);
          var membershipCol = context.aspnet_Memberships.Where(s => s.UserId == source.Id);
          if (userCol.Count() > 0 && membershipCol.Count() > 0) {
            aspUser = userCol.First();
            aspMembership = membershipCol.First();
            userExistsInASP = true;
          }
        }
      }

      accessUser.Id = source.Id;
      accessUser.FullName = source.FullName;

      aspUser.UserId = source.Id;
      aspUser.LastActivityDate = source.LastActivityDate;
      aspUser.UserName = source.UserName;

      aspMembership.UserId = source.Id;
      aspMembership.Comment = source.Comment;
      aspMembership.CreateDate = source.CreationDate;
      aspMembership.Email = source.Email;
      aspMembership.IsApproved = source.IsApproved;
      aspMembership.LastLoginDate = source.LastLoginDate;
      aspMembership.LastPasswordChangedDate = source.LastPasswordChangedDate;
    }
Ejemplo n.º 13
0
    public IEnumerable<DT.User> GetAllUsers() {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      List<Guid> accessUserGuids = null;

      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var query = from u in context.aspnet_Users
                    select u.UserId;
        accessUserGuids = query.ToList();
      }

      return accessUserGuids.Select(x => BuildUserDto(x));
    }
Ejemplo n.º 14
0
    public IEnumerable<DT.LightweightUser> GetAllLightweightUsers() {
      List<Guid> accessUserGuids = null;

      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var query = from u in context.aspnet_Users
                    select u.UserId;
        accessUserGuids = query.ToList();
      }
      return accessUserGuids.Select(x => BuildLightweightUserDto(x));
    }
Ejemplo n.º 15
0
    public DT.User AddUser(DT.User user) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      DA.User accessUser;
      DA.aspnet_User aspUser;
      DA.aspnet_Membership aspMembership;
      bool userExistsInASP;

      Convert.ToEntity(user, out accessUser, out aspUser, out aspMembership, out userExistsInASP);

      if (userExistsInASP) {
        if (accessUser.Id == null || accessUser.Id == Guid.Empty) {
          accessUser.Id = aspMembership.UserId;
        }
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          context.UserGroupBases.InsertOnSubmit(accessUser);
          context.SubmitChanges();
        }
        MembershipUser membershipUser = Membership.GetUser((object)accessUser.Id);
        if (membershipUser != null) {
          membershipUser.Email = aspMembership.Email;
          membershipUser.IsApproved = aspMembership.IsApproved;
          membershipUser.Comment = aspMembership.Comment;
          Membership.UpdateUser(membershipUser);
        }
      } else {
        MembershipUser membershipUser = Membership.CreateUser(aspUser.UserName, aspUser.UserName, aspMembership.Email);
        membershipUser.IsApproved = aspMembership.IsApproved;
        membershipUser.Comment = aspMembership.Comment;
        Membership.UpdateUser(membershipUser);

        Guid userId = (Guid)membershipUser.ProviderUserKey;
        accessUser.Id = userId;

        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          context.UserGroupBases.InsertOnSubmit(accessUser);
          context.SubmitChanges();
        }
      }

      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var newAspUser = context.aspnet_Users.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
        var newAspMembership = context.aspnet_Memberships.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
        return Convert.ToDto(accessUser, newAspUser, newAspMembership);
      }
    }
Ejemplo n.º 16
0
        private DT.LightweightUser BuildLightweightUserDto(Guid userId)
        {
            DA.aspnet_User       aspUser       = null;
            DA.aspnet_Membership aspMembership = null;
            DA.User accessUser           = null;
            List <DA.aspnet_Role> roles  = new List <DA.aspnet_Role>();
            List <DA.UserGroup>   groups = new List <DA.UserGroup>();


            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var userQuery = from u in context.aspnet_Users
                                where u.UserId == userId
                                select u;

                var memQuery = from u in context.aspnet_Memberships
                               where u.UserId == userId
                               select u;
                if (memQuery.Count() == 1)
                {
                    aspMembership = memQuery.First();
                }

                if (userQuery.Count() == 1)
                {
                    aspUser = userQuery.First();
                    roles   = (from ur in context.aspnet_UsersInRoles
                               where ur.UserId == aspUser.UserId
                               join r in context.aspnet_Roles on ur.RoleId equals r.RoleId
                               select r).ToList();
                }
            }

            if (aspUser != null || aspMembership != null)
            {
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    var query = from u in context.UserGroupBases.OfType <DA.User>()
                                where u.Id == userId
                                select u;
                    if (query.Count() == 1)
                    {
                        accessUser = query.First();
                        groups     = (from ug in context.UserGroupUserGroups
                                      where ug.UserGroupId == accessUser.Id
                                      join g in context.UserGroupBases.OfType <DA.UserGroup>() on ug.UserGroupUserGroupId equals g.Id
                                      select g).ToList();
                    }
                    else
                    {
                        //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
                        DA.User user = new DA.User();
                        user.Id       = userId;
                        user.FullName = "Not set";
                        context.UserGroupBases.InsertOnSubmit(user);
                        context.SubmitChanges();
                        accessUser = user;
                    }
                }
            }

            if (aspUser == null || accessUser == null || aspMembership == null)
            {
                throw new Exception("User with id " + userId + " not found.");
            }
            else
            {
                return(Convert.ToDto(accessUser, aspUser, aspMembership, roles, groups));
            }
        }
Ejemplo n.º 17
0
    public IEnumerable<DT.UserGroupBase> GetAllLeightweightUsersAndGroups() {
      List<DT.UserGroup> userGroups = new List<DT.UserGroup>();
      List<DT.UserGroupBase> result = new List<DT.UserGroupBase>();

      List<Guid> accessUserGuids = null;
      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var query = from u in context.aspnet_Users
                    select u.UserId;
        accessUserGuids = query.ToList();
      }
      var lightweightUsers = accessUserGuids.Select(x => BuildLightweightUserDto(x));

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        var query = from u in context.UserGroupBases.OfType<DA.UserGroup>()
                    select Convert.ToDto(u);
        userGroups = query.ToList();
      }

      result.AddRange(lightweightUsers);
      result.AddRange(userGroups);

      return result;
    }
Ejemplo n.º 18
0
 public IEnumerable<DT.Role> GetRoles() {
   using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
     var query = from u in context.aspnet_Roles
                 select Convert.ToDto(u);
     return query.ToList();
   }
 }
Ejemplo n.º 19
0
    public void AddRoleToGroup(DT.UserGroup userGroup, DT.Role role) {
      Guid[] userIds;
      string[] aspUsers;

      using (DA.AccessServiceDataContext accessContext = new DA.AccessServiceDataContext()) {
        userIds = (from u in accessContext.UserGroupUserGroups
                   where u.UserGroupUserGroupId == userGroup.Id
                   select u.UserGroupId).ToArray();
      }

      using (DA.ASPNETAuthenticationDataContext aspContext = new DA.ASPNETAuthenticationDataContext()) {
        aspUsers = (from u in aspContext.aspnet_Users
                    where userIds.Contains(u.UserId)
                    select u.UserName).ToArray();
      }

      Roles.AddUsersToRole(aspUsers, role.Name);

    }
Ejemplo n.º 20
0
    private DT.LightweightUser BuildLightweightUserDto(Guid userId) {
      DA.aspnet_User aspUser = null;
      DA.aspnet_Membership aspMembership = null;
      DA.User accessUser = null;
      List<DA.aspnet_Role> roles = new List<DA.aspnet_Role>();
      List<DA.UserGroup> groups = new List<DA.UserGroup>();


      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var userQuery = from u in context.aspnet_Users
                        where u.UserId == userId
                        select u;

        var memQuery = from u in context.aspnet_Memberships
                       where u.UserId == userId
                       select u;
        if (memQuery.Count() == 1) {
          aspMembership = memQuery.First();
        }

        if (userQuery.Count() == 1) {
          aspUser = userQuery.First();
          roles = (from ur in context.aspnet_UsersInRoles
                   where ur.UserId == aspUser.UserId
                   join r in context.aspnet_Roles on ur.RoleId equals r.RoleId
                   select r).ToList();
        }
      }

      if (aspUser != null || aspMembership != null) {
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          var query = from u in context.UserGroupBases.OfType<DA.User>()
                      where u.Id == userId
                      select u;
          if (query.Count() == 1) {
            accessUser = query.First();
            groups = (from ug in context.UserGroupUserGroups
                      where ug.UserGroupId == accessUser.Id
                      join g in context.UserGroupBases.OfType<DA.UserGroup>() on ug.UserGroupUserGroupId equals g.Id
                      select g).ToList();
          } else {
            //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
            DA.User user = new DA.User();
            user.Id = userId;
            user.FullName = "Not set";
            context.UserGroupBases.InsertOnSubmit(user);
            context.SubmitChanges();
            accessUser = user;
          }
        }
      }

      if (aspUser == null || accessUser == null || aspMembership == null) {
        throw new Exception("User with id " + userId + " not found.");
      } else {
        return Convert.ToDto(accessUser, aspUser, aspMembership, roles, groups);
      }
    }
Ejemplo n.º 21
0
    public void RemoveRoleFromGroup(DT.UserGroup userGroup, DT.Role role) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      Guid[] userIds;
      string[] aspUsers;

      using (DA.AccessServiceDataContext accessContext = new DA.AccessServiceDataContext()) {
        userIds = (from u in accessContext.UserGroupUserGroups
                   where u.UserGroupUserGroupId == userGroup.Id
                   select u.UserGroupId).ToArray();
      }

      using (DA.ASPNETAuthenticationDataContext aspContext = new DA.ASPNETAuthenticationDataContext()) {
        aspUsers = (from u in aspContext.aspnet_Users
                    where userIds.Contains(u.UserId)
                    select u.UserName).ToArray();
      }

      Roles.RemoveUsersFromRole(aspUsers.ToArray(), role.Name);
    }
 private string GetUserName(Guid userId) {
   try {
     // we cannot use the ServiceLocator.Instance.UserManager since the janitor service
     // is not hosted in the iis the MemberShip.GetUser method causes exceptions
     // needs to be further investigated current workaround: use the authenticationcontext
     // we could also connect to the access service to get the user name
     using (ASPNETAuthenticationDataContext dc = new ASPNETAuthenticationDataContext()) {
       var user = dc.aspnet_Users.SingleOrDefault(x => x.UserId == userId);
       return user != null ? user.UserName : UnknownUserName;
     }
   }
   catch (Exception) {
     return UnknownUserName;
   }
 }
Ejemplo n.º 23
0
    private DT.User BuildUserDto(Guid userId) {
      DA.aspnet_User aspUser = null;
      DA.aspnet_Membership aspMembership = null;
      DA.User accessUser = null;

      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var userQuery = from u in context.aspnet_Users
                        where u.UserId == userId
                        select u;
        if (userQuery.Count() == 1) {
          aspUser = userQuery.First();
        }

        var memQuery = from u in context.aspnet_Memberships
                       where u.UserId == userId
                       select u;
        if (memQuery.Count() == 1) {
          aspMembership = memQuery.First();
        }
      }

      if (aspUser != null || aspMembership != null) {
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          var query = from u in context.UserGroupBases.OfType<DA.User>()
                      where u.Id == userId
                      select u;
          if (query.Count() == 1) {
            accessUser = query.First();
          } else {
            //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
            DA.User user = new DA.User();
            user.Id = userId;
            user.FullName = "Not set";
            context.UserGroupBases.InsertOnSubmit(user);
            context.SubmitChanges();
            accessUser = user;
          }
        }
      }

      if (aspUser == null || aspMembership == null || accessUser == null) {
        throw new Exception("User with id " + userId + " not found.");
      } else {
        return Convert.ToDto(accessUser, aspUser, aspMembership);
      }
    }