mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	custom profile data: Send event to active user on update.
On update of custom profile fields, send an event to all active users of realm.
This commit is contained in:
		@@ -191,6 +191,16 @@ initialize();
 | 
			
		||||
 | 
			
		||||
initialize();
 | 
			
		||||
 | 
			
		||||
(function test_set_custom_profile_field_data() {
 | 
			
		||||
    var person = people.get_by_email(me.email);
 | 
			
		||||
    me.profile_data = {};
 | 
			
		||||
    var field = {id: 3, name: 'Custom long field', type: 'text', value: 'Field value'};
 | 
			
		||||
    people.set_custom_profile_field_data(person.user_id, {});
 | 
			
		||||
    assert.deepEqual(person.profile_data, {});
 | 
			
		||||
    people.set_custom_profile_field_data(person.user_id, field);
 | 
			
		||||
    assert.equal(person.profile_data[field.id], 'Field value');
 | 
			
		||||
}());
 | 
			
		||||
 | 
			
		||||
(function test_get_rest_of_realm() {
 | 
			
		||||
    var alice1 = {
 | 
			
		||||
        email: 'alice1@example.com',
 | 
			
		||||
 
 | 
			
		||||
@@ -137,4 +137,8 @@ initialize();
 | 
			
		||||
    assert(!user_events.update_person({user_id: 29, full_name: 'Sir Isaac Newton'}));
 | 
			
		||||
    assert.equal(error_msg, "Got update_person event for unexpected user 29");
 | 
			
		||||
 | 
			
		||||
    me.profile_data = {};
 | 
			
		||||
    user_events.update_person({user_id: me.user_id, custom_profile_field: {id: 3, value: 'Value'}});
 | 
			
		||||
    person = people.get_by_email(me.email);
 | 
			
		||||
    assert.equal(person.profile_data[3], 'Value');
 | 
			
		||||
}());
 | 
			
		||||
 
 | 
			
		||||
@@ -819,6 +819,14 @@ exports.set_full_name = function (person_obj, new_full_name) {
 | 
			
		||||
    person_obj.full_name = new_full_name;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.set_custom_profile_field_data = function (user_id, field) {
 | 
			
		||||
    if (field.id === undefined) {
 | 
			
		||||
        blueslip.error("Unknown field id " + field.id);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    people_by_user_id_dict.get(user_id).profile_data[field.id] = field.value;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
exports.is_current_user = function (email) {
 | 
			
		||||
    if (email === null || email === undefined) {
 | 
			
		||||
        return false;
 | 
			
		||||
 
 | 
			
		||||
@@ -64,6 +64,10 @@ exports.update_person = function update(person) {
 | 
			
		||||
        message_live_update.update_avatar(person_obj.user_id, person.avatar_url);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (_.has(person, 'custom_profile_field')) {
 | 
			
		||||
        people.set_custom_profile_field_data(person.user_id, person.custom_profile_field);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
     if (_.has(person, 'timezone')) {
 | 
			
		||||
         person_obj.timezone = person.timezone;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -4529,6 +4529,10 @@ def do_update_user_custom_profile_data(user_profile: UserProfile,
 | 
			
		||||
            update_or_create(user_profile=user_profile,
 | 
			
		||||
                             field_id=field['id'],
 | 
			
		||||
                             defaults={'value': field['value']})
 | 
			
		||||
            payload = dict(user_id=user_profile.id, custom_profile_field=dict(id=field['id'],
 | 
			
		||||
                                                                              value=field['value']))
 | 
			
		||||
            event = dict(type="realm_user", op="update", person=payload)
 | 
			
		||||
            send_event(event, active_user_ids(user_profile.realm.id))
 | 
			
		||||
 | 
			
		||||
def do_send_create_user_group_event(user_group: UserGroup, members: List[UserProfile]) -> None:
 | 
			
		||||
    event = dict(type="user_group",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user