private FieldPhaseInfo GetTargetPhase(HrbcField field, string phaseName, ISession <PrivateAuthentication> session)
        {
            var getPhaseInfoRequest = FieldPhaseInfoReadRequest.Builder.Fields(field);
            var phases = session.Call(getPhaseInfoRequest.Build());

            return(phases[field].Single(phase => string.Equals(phase.Group.Name, phaseName, StringComparison.OrdinalIgnoreCase)));
        }
Ejemplo n.º 2
0
 public IEnumerable <FieldPhaseInfo> this[HrbcField key]
 {
     get
     {
         return(this.data[key]);
     }
 }
 public FieldPhaseInfoUpdateRequestItem(string aclGroupName, HrbcField field, AccessType?permission,
                                        Dictionary <string, AccessType> optionAliasToAccessTypeMap, Dictionary <ulong, AccessType> optionIdToAccessTypeMap)
 {
     AclGroupName = aclGroupName;
     Field        = field;
     Permission   = permission;
     OptionAliasToAccessTypeMap = optionAliasToAccessTypeMap;
     OptionIdToAccessTypeMap    = optionIdToAccessTypeMap;
 }
Ejemplo n.º 4
0
 private object ResolveValue(HrbcField field, object value, Dictionary <object, ulong> references)
 {
     if (value is CreateRecordRequest.Reference)
     {
         return(references[((CreateRecordRequest.Reference)value).Key]);
     }
     // FIXME the value probably need further attention based on type
     return(value);
 }
Ejemplo n.º 5
0
 public IContentBuilder AddField(HrbcField field, object data)
 {
     if (field.ResourceType != ResourceType.Standard || field.Resource != resourceId)
     {
         throw new ArgumentException(String.Format("Field must belong to standard resource {0}", resourceId.ToAlias()), "field");
     }
     checkValue(data);
     content.Add(field, data);
     return(this);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Create Acl Updater for fields
 /// </summary>
 /// <param name="resourceId">resource type</param>
 /// <param name="fieldName">System Field or Application Field</param>
 /// <param name="optionPhase">Option phase according to the resource</param>
 /// <param name="acccessType">ReadOnly or ReadWrite</param>
 /// <returns></returns>
 public static HrbcAclUpdater.AclSpec CreateSingleAclSpec(HrbcField field, string optionPhase, AccessType acccessType)
 {
     return(new HrbcAclUpdater.AclSpec
     {
         Field = field,
         OptionAliasToAccessTypeMap = new Dictionary <string, AccessType>
         {
             [optionPhase] = acccessType
         },
         AclGroupName = GroupName
     });
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Create Acl Updater for fields
 /// </summary>
 /// <param name="field">hrbc field object</param>
 /// <param name="optionPhase">Option phase according to the resource</param>
 /// <param name="acccessType">ReadOnly or ReadWrite</param>
 /// <returns></returns>
 public static HrbcAclUpdater.AclSpec CreateSingleAclSpec(HrbcField field, string optionPhase, AccessType accessType)
 {
     return(new HrbcAclUpdater.AclSpec
     {
         Field = field,
         OptionAliasToAccessTypeMap = new Dictionary <string, AccessType>
         {
             [optionPhase] = AccessType.Inherit
         },
         AclGroupName = "Users Root",
         GeneralFieldAccessType = accessType,
     });
 }
Ejemplo n.º 8
0
            public object this[HrbcField key]
            {
                get
                {
                    return(content[key]);
                }

                set
                {
                    if (key.ResourceType != ResourceType.Standard || key.Resource != Resource)
                    {
                        throw new ArgumentException(String.Format("Field must belong to standard resource {0}", Resource.ToAlias()), "field");
                    }
                    checkValue(value);
                    content[key] = value is FieldDataCollection ? ((FieldDataCollection)value).RecordId : value;
                }
            }
Ejemplo n.º 9
0
        private FieldDataCollection ReadDataCollection(HrbcField idField, List <Json.FieldValue> values, Dictionary <long, int> versions = null)
        {
            var data = new Dictionary <HrbcField, object>();

            foreach (var value in values)
            {
                if (value.Reference.HasValue)
                {
                    var reference    = value.Reference.Value;
                    var innerIdField = new HrbcField(reference.Resource, reference.ResourceType == ResourceType.Standard ? "P_Id" : "Id", reference.ResourceType);
                    data[value.Field] = ReadDataCollection(innerIdField, reference.Fields);
                }
                else
                {
                    data[value.Field] = value.Value;
                }
            }

            return(new FieldDataCollection(idField, data, versions == null ? -1 : versions[(long)data[idField]]));
        }
Ejemplo n.º 10
0
            private List <FieldValues> ReadUsers(JsonReader reader)
            {
                // user ids are converted to user references
                HrbcField fieldId = ResourceType.Standard.ToIdField(ResourceId.None);

                var result = new List <FieldValues>();

                // move to first item in list
                reader.Read();
                while (reader.TokenType != JsonToken.EndArray)
                {
                    var fields = new List <FieldValue>();
                    fields.Add(new FieldValue {
                        Field = fieldId, References = null, Value = reader.Value
                    });
                    result.Add(new FieldValues {
                        Fields = fields, Resource = ResourceId.None, ResourceType = ResourceType.User
                    });
                    // move to next item or end
                    reader.Read();
                }
                return(result);
            }
Ejemplo n.º 11
0
 public bool Remove(HrbcField key)
 {
     return(content.Remove(key));
 }
Ejemplo n.º 12
0
 public IContentBuilder Delete(HrbcField fieldNameOrAlias)
 {
     Remove(fieldNameOrAlias);
     return(this);
 }
Ejemplo n.º 13
0
 public bool ContainsKey(HrbcField key)
 {
     return(content.ContainsKey(key));
 }
Ejemplo n.º 14
0
 public void Add(HrbcField key, object value)
 {
     this[key] = value;
 }
Ejemplo n.º 15
0
 public IContentBuilder Append(HrbcField field, object data)
 {
     this[field] = data;
     return(this);
 }
Ejemplo n.º 16
0
 public static FieldPhaseInfoUpdateRequest.IBuilderWithField UpdateFieldPhaseInfo(HrbcField field, string aclGroupName, string optionAlias, AccessType accessType, AccessType?generalPermission)
 {
     return(UpdateFieldPhaseInfo(field, aclGroupName, new Dictionary <string, AccessType> {
         [optionAlias] = accessType
     }, generalPermission));
 }
Ejemplo n.º 17
0
 public static UpdateFieldRequest.IFieldBuilderWithField UpdateField(HrbcField field)
 {
     return(UpdateFieldRequest.Builder().Field(field));
 }
 public IBuilderWithField Item(string aclGroupName, HrbcField field, AccessType?permission,
                               Dictionary <string, AccessType> optionAliasToAccessTypeMap, Dictionary <ulong, AccessType> optionIdToAccessTypeMap)
 {
     _items.Add(new FieldPhaseInfoUpdateRequestItem(aclGroupName, field, permission, optionAliasToAccessTypeMap, optionIdToAccessTypeMap));
     return(this);
 }
Ejemplo n.º 19
0
 public IFieldBuilderWithField Field(HrbcField field)
 {
     this.field = field;
     return(this);
 }
Ejemplo n.º 20
0
 public IFieldBuilderWithRequired LinkedField(HrbcField linkedField)
 {
     properties[FieldProperty.LinkedField] = linkedField.ToAlias();
     return(this);
 }
Ejemplo n.º 21
0
 public bool TryGetValue(HrbcField key, out IEnumerable <FieldPhaseInfo> value)
 {
     return(this.data.TryGetValue(key, out value));
 }
Ejemplo n.º 22
0
 public bool ContainsKey(HrbcField key)
 {
     return(this.data.ContainsKey(key));
 }
Ejemplo n.º 23
0
 public bool TryGetValue(HrbcField key, out object value)
 {
     return(content.TryGetValue(key, out value));
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Create Acl Updater for fields
 /// </summary>
 /// <param name="resourceId">resource type</param>
 /// <param name="field">Hrbc Field</param>
 /// <returns></returns>
 public static HrbcAclUpdater.AclSpec CreateSingleAclSpec(ResourceId resourceId, HrbcField field)
 {
     return(new HrbcAclUpdater.AclSpec
     {
         Field = field,
         OptionIdToAccessTypeMap = PhaseFlowInfo.Data[resourceId].ToDictionary(i => (ulong)i, i => AccessType.ReadOnly),
         AclGroupName = "Users Root",
         GeneralFieldAccessType = AccessType.ReadOnly,
     });
 }
Ejemplo n.º 25
0
 public static FieldPhaseInfoUpdateRequest.IBuilderWithField UpdateFieldPhaseInfo(HrbcField field, string aclGroupName, Dictionary <ulong, AccessType> optionToAccessTypeMap, AccessType?generalPermission)
 {
     return(UpdateFieldPhaseInfo().Item(aclGroupName, field, generalPermission, null, optionToAccessTypeMap));
 }