Esempio n. 1
0
        private void UpdatePermissions(User user, ServerPermissions permissions)
        {
            uint newPermissions = 0;

            if (user.Id == _ownerId)
            {
                newPermissions = ServerPermissions.All.RawValue;
            }
            else
            {
                foreach (var serverRole in user.Roles)
                {
                    newPermissions |= serverRole.Permissions.RawValue;
                }
            }

            if (newPermissions.HasBit((byte)PermissionsBits.ManageRolesOrPermissions))
            {
                newPermissions = ServerPermissions.All.RawValue;
            }

            if (newPermissions != permissions.RawValue)
            {
                permissions.SetRawValueInternal(newPermissions);
                foreach (var channel in _channels)
                {
                    channel.Value.UpdatePermissions(user);
                }
            }
        }
Esempio n. 2
0
        internal void UpdateServerPermissions()
        {
            var server = Server;

            if (server == null)
            {
                return;
            }

            uint newPermissions = 0x0;
            uint oldPermissions = _serverPermissions.RawValue;

            if (server.Owner == this)
            {
                newPermissions = ServerPermissions.All.RawValue;
            }
            else
            {
                //var roles = Roles.OrderBy(x => x.Id);
                var roles = Roles;
                foreach (var serverRole in roles)
                {
                    newPermissions |= serverRole.Permissions.RawValue;
                }
            }

            if (BitHelper.GetBit(newPermissions, (int)PermissionsBits.ManageRolesOrPermissions))
            {
                newPermissions = ServerPermissions.All.RawValue;
            }

            if (newPermissions != oldPermissions)
            {
                _serverPermissions.SetRawValueInternal(newPermissions);
                foreach (var channel in _channels)
                {
                    UpdateChannelPermissions(channel.Value);
                }
            }
        }
Esempio n. 3
0
        private void UpdatePermissions(User user, ServerPermissions permissions)
		{
			uint newPermissions = 0;

			if (user.Id == _ownerId)
				newPermissions = ServerPermissions.All.RawValue;
			else
			{
				foreach (var serverRole in user.Roles)
					newPermissions |= serverRole.Permissions.RawValue;
			}

			if (newPermissions.HasBit((byte)PermissionsBits.ManageRolesOrPermissions))
				newPermissions = ServerPermissions.All.RawValue;

			if (newPermissions != permissions.RawValue)
			{
				permissions.SetRawValueInternal(newPermissions);
				foreach (var channel in _channels)
					channel.Value.UpdatePermissions(user);
			}
		}