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; }
/// <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; }
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); }
private void CheckedChangeRight(CheckBox box, RightsFlags right) { if (box.Checked) { cbNone.Checked = false; _currentRightsFlags |= right; } else { _currentRightsFlags &= ~right; } }
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; } }
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); }
private static bool CheckRole(long privilegesVal, RightsFlags roleToCheck) { return(((RightsFlags)privilegesVal & roleToCheck) == roleToCheck); }
/// <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; } } }