Example #1
0
        public async Task <PersonGroup> GetCreateUserGroup()
        {
            if (string.IsNullOrWhiteSpace(_identityUser.RequestGroup))
            {
                throw new BadRequestException("", "User has not properties set");
            }

            GroupEntry groupInfo = null;

            var personGroupName = $"{SpisumNames.Prefixes.UserGroup}{_identityUser.Id}";

            try
            {
                groupInfo = await _alfrescoHttpClient.GetGroup(personGroupName);
            }
            catch
            {
                throw new BadRequestException("", "User group not found");
            }

            var groupMembers = await _alfrescoHttpClient.GetGroupMembers(personGroupName);

            if (groupMembers?.List?.Entries?.ToList().Find(x => x.Entry?.Id == _identityUser.Id) == null)
            {
                await _alfrescoHttpClient.CreateGroupMember(personGroupName, new GroupMembershipBodyCreate { Id = _identityUser.Id, MemberType = GroupMembershipBodyCreateMemberType.PERSON });
            }

            return(new PersonGroup {
                PersonId = _identityUser.Id, GroupId = groupInfo.Entry.Id, GroupPrefix = _identityUser.RequestGroup
            });
        }
Example #2
0
        public async Task <PersonEntryFixed> CreateUser([FromBody] UserCreate body)
        {
            var userInfo = await _alfrescoHttpClient.CreatePerson(new PersonBodyCreate
            {
                Email      = body.Email,
                FirstName  = body.FirstName,
                Id         = body.Id,
                LastName   = body.LastName,
                Password   = body.Password,
                Properties = new Dictionary <string, object>
                {
                    { SpisumNames.Properties.Group, body.MainGroup },
                    { SpisumNames.Properties.UserJob, body.UserJob },
                    { SpisumNames.Properties.UserOrgAddress, body.UserOrgAddress },
                    { SpisumNames.Properties.UserOrgId, body.UserOrgId },
                    { SpisumNames.Properties.UserOrgName, body.UserOrgName },
                    { SpisumNames.Properties.UserOrgUnit, body.UserOrgUnit },
                    { SpisumNames.Properties.UserName, $"{body.FirstName} {body.LastName}".Trim() },
                    { SpisumNames.Properties.UserId, body.UserId }
                }
            });

            var signGroups = body.SignGroups ?? new List <string>();
            var groupList  = body.Groups?.ToList() ?? new List <string>();

            groupList.AddUnique(body.MainGroup);
            groupList.AddRangeUnique(signGroups);

            // user group
            await _initialUser.CheckCreateGroupAndAddPerson(userInfo.Entry.Id, $"{SpisumNames.Prefixes.UserGroup}{userInfo.Entry.Id}");

            foreach (var group in groupList)
            {
                await _alfrescoHttpClient.CreateGroupMember(group, new GroupMembershipBodyCreate { Id = userInfo.Entry.Id, MemberType = GroupMembershipBodyCreateMemberType.PERSON });
            }

            foreach (var group in signGroups)
            {
                await _initialUser.CheckCreateGroupAndAddPerson(userInfo.Entry.Id, group + SpisumNames.Postfixes.Sign);
            }

            return(userInfo);
        }