Never Mind , I fixed it by creating custom function in utils (frappe/frappe/utils/init .py)
def get_email(user=None):
p = frappe.db.get_value("User", user, ["email"], as_dict=True)
return p
example using it : frappe.utils.get_email(frappe.session.user);
@srajelli , Actually when you use frappe.session.user then you get current logged in user and this is email_id of that user, so not need to use get_value method again.
Thanks, Priya
1 Like
I tried using frappe.session.user but username was returned rather than email_id. Just for the record I am actually using an older version of frappe
How can we get User full name from session??
2 Likes
ci2016
June 5, 2017, 10:22am
9
I need this too. You found a solution?
EDIT: Is there a way to prefill a doctype with values, which we can not get by Customize Form?
I tried to add the full_name of the current user to a custom field, but I couldn’t get it work by Customize Form. By JavaScript/jQuery, I would need a seperate AJAX request, just to get the full user name, as following:
#client side in mycustomdoctype.js
frappe.call({
method: "mycustomapp.utils.get_full_user_name",
args: {"user": frappe.session.user },
callback: function(r) {
if(r.message) {
frm.set_value("current_user", r.message)
}
}
});
#server side
@frappe.whitelist()
def get_full_user_name(user=None):
p = frappe.db.get_value("User", user, "full_name")
return p
As this may be useful for someone, I like to post it here, but as I wrote, it it a separate AJAX request, for a very basic information.
Is there a way to solve it server side?
EDIT: For a client side solution, use sione solution below:
This is what I used to get the user fullname
var Current_User = user;
frappe.call({
method:"frappe.client.get",
args: {
doctype:"User",
filters: {'email': Current_User
},
},
callback: function(r) {
cur_frm.set_value("User_Full_Name", r.message["full_name"]);
}
})
(we are still searching for a server side solution, without the need of a separate AJAX request)
1 Like
sione
June 5, 2017, 8:36pm
10
This is what I used to get the user fullname
var Current_User = user;
frappe.call({
method:"frappe.client.get",
args: {
doctype:"User",
filters: {'email': Current_User
},
},
callback: function(r) {
cur_frm.set_value("User_Full_Name", r.message["full_name"]);
}
})
1 Like
ci2016
June 5, 2017, 8:38pm
11
Good solution! Better than mine. It reduces the need of custom server side scription.
@sione , @ci2016 ,
To get the logged in User’s fullname you can use the frappe.user.full_name(uid)
in custom script directly no need to use the frappe.call to fetch the user_info as it is already available.
Thanks,
Makarand
2 Likes
sione
June 6, 2017, 12:40am
13
Thanks a lot…much easier solution
ci2016
June 6, 2017, 8:50am
14
Thank you. Where does uid come from?
Reference Error: uid is not defined
@ci2016 ,
uid is the user’s email id, you can get the uid from frappe.session.user
variable
2 Likes
sheno
December 26, 2017, 2:17pm
16
Excuse me:
i need to add custom filed in quotation
name it
Quotation By
and this filed take its data from the current login user
For example if the login user is
abc@abc.com
so when this user make a quotation
the filed will automatically take its name
as the one who made this quotation
how can i achieve this ?
best regards .
I would find this useful too
Its already there u can check the owner field in the db.
Regards
also create a int field called valdone so you don’t keep overwriting every time you save
frappe.ui.form.on("Quotation",{
validate: function(frm) {
if(cur_frm.doc.valdone !== 1 ){
frappe.call({
method: "frappe.client.get",
args: {
doctype: "User",
filters: {"email":user}
},
callback: function(r) {
frm.set_value("quotation_by", r.message.full_name);
frm.set_value("valdone", 1);
}
})
}
}
});
1 Like
@Julian_Robbins @ kindly check my answer
wale
March 10, 2020, 2:56pm
21
Hi @makarand_b
This solution returns the value “You” instead of the actual name of the user!
Kind regards,
For fetching logged in user’s ID, try
frappe.session.user
4 Likes
wale
March 11, 2020, 9:54am
23
jaichavan:
frappe.session.user
Hi @jaichavan
This works fine for user ID though I was also hoping to get the actual Full Name
Thanks a lot
For seeking Full Name, try:
frappe.session.user_fullname
1 Like