Exemplo n.º 1
0
 public void LoadAcItem(AcItem a)
 {
     txtBonus.Text        = a.Bonus;
     txtPenalty.Text      = a.ArmorCheckPenalty;
     txtSpellFailure.Text = a.SpellFailure;
     txtWeight.Text       = a.Weight;
     txtName.Text         = a.Name;
     txtNotes.Text        = a.Properties;
     txtType.Text         = a.Type;
 }
Exemplo n.º 2
0
        public AcItem GetAcItem()
        {
            AcItem a = new AcItem()
            {
                Bonus             = GetStringOrNull(txtBonus.Text),
                ArmorCheckPenalty = GetStringOrNull(txtPenalty.Text),
                SpellFailure      = GetStringOrNull(txtSpellFailure.Text),
                Name       = GetStringOrNull(txtName.Text),
                Properties = GetStringOrNull(txtNotes.Text),
                Weight     = GetStringOrNull(txtWeight.Text),
                Type       = GetStringOrNull(txtType.Text)
            };

            return(a);
        }
Exemplo n.º 3
0
        /// <summary>Зарегистрировать для права <paramref name="accessType"/> и указанного SID-а
        /// разрешение <paramref name="permission"/>.</summary>
        /// <param name="sid">SID, для которого регистрируется право</param>
        /// <param name="accessType">Право (тип доступа)</param>
        /// <param name="permission">Значение.</param>
        /// <remarks>Если соответствующее право уже зарегистрированно, оно будет перезаписано.
        /// <para>Если значение <paramref name="permission"/> равно <see cref="Permission.Unspecified"/>, то регистрация
        /// удаляется.</para>
        /// </remarks>
        public void SetPermission(int sid, string accessType, Permission permission)
        {
            // get configured sids
            ArrayList list = rights[accessType] as ArrayList;
            if (list == null) list = new ArrayList();

            AcItem n = new AcItem(sid, permission);
            //
            // change occurrence of sid in list if exists
            int index = list.BinarySearch(n, new SidComparer());
            if (index >= 0) {
                if (permission == Permission.Unspecified)
                    list.RemoveAt(index);
                else {
                    list[index] = n;
                    list.Sort();
                }
            } else {
                list.Add(n);
                list.Sort();
            }
            // save to Acl for this access type
            rights[accessType] = list;
        }
Exemplo n.º 4
0
 /// <summary>Получить спискок SID-ов, для которых зарегистрированы хоть какие-то права.</summary>
 /// <returns>Список SID-ов.</returns>
 public int[] GetConfiguredSids()
 {
     ArrayList temp = new ArrayList();
     foreach (ArrayList a in rights.Values)
         temp.AddRange(a);
     temp.Sort();
     ArrayList res = new ArrayList();
     AcItem prev = new AcItem(-1, Permission.Unspecified); // create stub permission
     foreach(AcItem item in temp) {
         if (prev.Sid != item.Sid)
             res.Add(item.Sid);
         prev = item;
     }
     return (int[])res.ToArray(typeof(int));
 }