Beispiel #1
0
        protected override int ExecuteWorkImplementation()
        {
            var now = DateTime.UtcNow;

            var client = m_communicationProvider.GetAuthRoleApiClient();

            var roleContract = new RoleContractBase
            {
                Description = m_description,
                Name        = m_roleName,
            };

            var response       = client.CreateRoleAsync(roleContract).GetAwaiter().GetResult();
            var externalRoleId = response.Content.ReadAsInt();

            var group = new RoleUserGroup
            {
                Name       = m_roleName,
                CreateTime = now,
                LastChange = now,
                ExternalId = externalRoleId,
            };

            var roleId = m_permissionRepository.CreateGroup(group);

            return(roleId);
        }
Beispiel #2
0
        public IList <RoleUserGroup> UpdateAndGetUserGroups <T>(IList <T> roles) where T : RoleContractBase
        {
            var now          = DateTime.UtcNow;
            var dbUserGroups = m_userRepository.GetUserGroupsByExternalIds(roles.Select(x => x.Id));

            foreach (var roleContract in roles)
            {
                var dbRole = dbUserGroups.FirstOrDefault(x => x.ExternalId == roleContract.Id);
                if (dbRole == null)
                {
                    var newDbRole = new RoleUserGroup
                    {
                        ExternalId = roleContract.Id,
                        Name       = roleContract.Name,
                        CreateTime = now,
                        LastChange = now,
                    };

                    m_userRepository.Create(newDbRole);

                    dbUserGroups.Add(newDbRole);
                }
            }

            return(dbUserGroups);
        }
Beispiel #3
0
        public virtual RoleUserGroup GetDefaultGroupOrCreate(string defaultRegisteredGroupName, Func <int> getExternalId)
        {
            var registeredUsersGroup = GetSession().QueryOver <RoleUserGroup>()
                                       .Where(x => x.Name == defaultRegisteredGroupName)
                                       .SingleOrDefault();

            if (registeredUsersGroup != null)
            {
                return(registeredUsersGroup);
            }

            var now = DateTime.UtcNow;

            registeredUsersGroup = new RoleUserGroup
            {
                Name       = defaultRegisteredGroupName,
                CreateTime = now,
                LastChange = now,
                ExternalId = getExternalId.Invoke(),
            };

            GetSession().Save(registeredUsersGroup);

            return(registeredUsersGroup);
        }
Beispiel #4
0
        public virtual Permission FindPermissionByBookAndGroupExternalId(long projectId, int externalId)
        {
            RoleUserGroup groupAlias = null;

            return
                (GetSession().QueryOver <Permission>()
                 .JoinAlias(x => x.UserGroup, () => groupAlias)
                 .Where(
                     permission =>
                     permission.Project.Id == projectId &&
                     groupAlias.ExternalId == externalId)
                 .SingleOrDefault <Permission>());
        }
Beispiel #5
0
        public virtual RoleUserGroup FindGroupByExternalIdOrCreate(int externalId, string roleName)
        {
            var group = FindGroupByExternalId(externalId);

            if (group != null)
            {
                return(group);
            }

            var now      = DateTime.UtcNow;
            var newGroup = new RoleUserGroup
            {
                ExternalId = externalId,
                CreateTime = now,
                LastChange = now,
                Name       = roleName
            };

            CreateGroup(newGroup);

            return(newGroup);
        }