After spending some time to figure out where to find a Upload-Form / adding pictures, I realized there must be something messed up because the link was not there where it should, it should be under "@" and "Upload file", but "Upload file" was missing for admin and users.
Turning on debug showed me the variable USER_CAN_UPLOAD_PICTURES is always 0 even as admin, regardless how I setup the permissions. I have to say I added the admin into a new group, the admin group has set USER_CAN_UPLOAD_PICTURES=1 and the new group has USER_CAN_UPLOAD_PICTURES=0.
After searching I found some comment in the bridge file e107.inc.php:
// *********** CHANGED *************
// this query is more logical in my opinion (v3)
$query = "SELECT MAX(group_quota) as disk_max, MIN(group_quota) as disk_min, " .
"MIN(can_rate_pictures) as can_rate_pictures, MIN(can_send_ecards) as can_send_ecards, " .
"MAX(upload_form_config) as ufc_max, MIN(upload_form_config) as ufc_min, " .
"MIN(custom_user_upload) as custom_user_upload, MAX(num_file_upload) as num_file_upload, " .
"MAX(num_URI_upload) as num_URI_upload, " .
"MIN(can_post_comments) as can_post_comments, MIN(can_upload_pictures) as can_upload_pictures, " .
"MIN(can_create_albums) as can_create_albums, " .
"MAX(has_admin_access) as has_admin_access, " .
"MAX(pub_upl_need_approval) as pub_upl_need_approval, MAX( priv_upl_need_approval) as priv_upl_need_approval ".
"FROM {$CONFIG['TABLE_USERGROUPS']} WHERE group_id in (" . implode(",", $groups). ")";
here is problem:
the SQL-query was changed (some MAX to MIN) so that when one out of your assigned user groups has the option USER_CAN_UPLOAD_PICTURES set to 0, this group will win! even if you set another group where you are member of to 1. Only if I would set all groups where I'm in to 1 it would work.
To fix it, just use the orignial SQL-query above that comment by comment out or deleting the bad $query or change the MIN for can_upload_pictures to MAX again.