Exemplo n.º 1
0
 public static bool IsFlagsSet(ObjectAccessId accessObject, RightsFlags[] flags,SetType setType=SetType.Any)
 {
     if (LoggedUser == null)
         throw new Exception("Invalid user!");
     if (LoggedUser.IsAdmin)
         return true;
     switch (setType)
     {
         case SetType.All:
             if (flags.Select(flag => IsFlagSet(accessObject, flag)).All(result => result))
             {
                 return true;
             }
             break;
         case SetType.Any:
             if (flags.Select(flag => IsFlagSet(accessObject, flag)).Any(result => result))
             {
                 return true;
             }
             break;
         default:
             throw new ArgumentOutOfRangeException("setType");
     }
     return false;
 }
Exemplo n.º 2
0
            /// <summary>
            /// Used by the libsecondlife framework when building the initial list of friends
            /// at login time.  This constructor should not be called by consummer of this class.
            /// </summary>
            /// <param name="id">System ID of the avatar being prepesented</param>
            /// <param name="theirRights">Rights the friend has to see you online and to modify your objects</param>
            /// <param name="myRights">Rights you have to see your friend online and to modify their objects</param>
            public FriendInfo(LLUUID id, RightsFlags theirRights, RightsFlags myRights)
            {
                m_id = id;
                m_canSeeMeOnline = (theirRights & RightsFlags.CanSeeOnline) != 0;
                m_canSeeMeOnMap = (theirRights & RightsFlags.CanSeeOnMap) != 0;
                m_canModifyMyObjects = (theirRights & RightsFlags.CanModifyObjects) != 0;

                m_canSeeThemOnline = (myRights & RightsFlags.CanSeeOnline) != 0;
                m_canSeeThemOnMap = (myRights & RightsFlags.CanSeeOnMap) != 0;
                m_canModifyTheirObjects = (myRights & RightsFlags.CanModifyObjects) != 0;
            }
Exemplo n.º 3
0
 public static bool IsFlagSet(ObjectAccessId accessObject, RightsFlags flag)
 {
     if (LoggedUser==null)
         throw new Exception("Invalid user!");
     var association = LoggedUser.Access_Associations.SingleOrDefault(a => a.ElementId == accessObject.Id);
     if (association == null)
         return false;
     if (flag.Equals(RightsFlags.None))
         return false;
     return ((RightsFlags) association.RightFlags).HasFlag(flag);
 }
Exemplo n.º 4
0
 private void CheckedChangeRight(CheckBox box, RightsFlags right)
 {
    
     if (box.Checked)
     {
         cbNone.Checked = false;
         _currentRightsFlags |= right;
     }
     else
     {
         _currentRightsFlags &= ~right;
     }
 }
Exemplo n.º 5
0
 private void cbNone_CheckedChanged(object sender, EventArgs e)
 {
    
     if (cbNone.Checked)
     {
         cbDelete.Checked = !cbNone.Checked;
         cbView.Checked = !cbNone.Checked;
         cbChange.Checked = !cbNone.Checked;
         cbAdd.Checked = !cbNone.Checked;
         _currentRightsFlags= (int)RightsFlags.None;
     }
 }
Exemplo n.º 6
0
 private void gvElements_SelectionChanged(object sender, EventArgs e)
 {
     if (gvUsers.SelectedRows.Count != 1 | gvElements.SelectedRows.Count != 1)
         return;
     var selectedUser = gvUsers.SelectedRows[0].DataBoundItem as Access_Users;
     if (selectedUser == null)
         return;
     var selectedElement=gvElements.SelectedRows[0].DataBoundItem as AssociationItem;
     if (selectedElement == null)
         return;
     tableLayoutPanel2.Enabled = true;
     label3.Text = string.Format(@"Права пользователя '{0}' на объект '{1}'", selectedUser.Description, selectedElement.Description);
     _currentRightsFlags = (RightsFlags)selectedElement.Tag.RightFlags;
     if (_currentRightsFlags.Equals(RightsFlags.None))
     {
         cbNone.Checked = true;
         cbDelete.Checked = false;
         cbView.Checked = false;
         cbChange.Checked = false;
         cbAdd.Checked = false;
         return;
     }
     cbDelete.Checked = _currentRightsFlags.HasFlag(RightsFlags.Delete);
     cbView.Checked = _currentRightsFlags.HasFlag(RightsFlags.View);
     cbChange.Checked = _currentRightsFlags.HasFlag(RightsFlags.Change);
     cbAdd.Checked = _currentRightsFlags.HasFlag(RightsFlags.Add);
 }
Exemplo n.º 7
0
 private static bool CheckRole(long privilegesVal, RightsFlags roleToCheck)
 {
     return(((RightsFlags)privilegesVal & roleToCheck) == roleToCheck);
 }
Exemplo n.º 8
0
 /// <summary>
 /// Adds a friend. Intended for use by the libsecondlife framework to build the  
 /// initial list of friends from the buddy-list in the login reply XML
 /// </summary>
 /// <param name="agentID">ID of the agent being added to the list of friends</param>
 /// <param name="theirRights">rights the friend has</param>
 /// <param name="myRights">rights you have</param>
 internal void AddFriend(LLUUID agentID, RightsFlags theirRights, RightsFlags myRights)
 {
     lock (_Friends)
     {
         if (!_Friends.ContainsKey(agentID))
         {
             FriendInfo friend = new FriendInfo(agentID, theirRights, myRights);
             _Friends[agentID] = friend;
         }
     }
 }