Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload profile picture/avatar #620

Open
alexweissman opened this issue Jan 22, 2017 · 10 comments
Open

Upload profile picture/avatar #620

alexweissman opened this issue Jan 22, 2017 · 10 comments
Labels
Breaking Change Creates incompatibility with current version core feature request Feature request needs discussion A decision needs to be taken by the dev team up-for-grabs Not assigned yet
Milestone

Comments

@alexweissman
Copy link
Member

Ref #192.

Right now, V4 supports this on a very basic level with gravatar. Would be good if we could upload an image, perhaps with some client-side sizing/crop tool, as another option.

@alexweissman alexweissman added the core feature request Feature request label Jan 22, 2017
@alexweissman alexweissman added this to the 4.1 milestone Jan 22, 2017
@abdullahseba
Copy link
Contributor

Definitely. The Default profile picture does injustice to my face.

@alexweissman alexweissman modified the milestones: 4.1.0, 4.1.x May 16, 2017
@alexweissman alexweissman modified the milestones: 4.1.x, 4.2.0 Jun 18, 2017
@alexweissman alexweissman added the up-for-grabs Not assigned yet label Oct 21, 2017
@lcharette lcharette modified the milestones: 4.2.0, 4.3.0 Dec 16, 2017
@lcharette
Copy link
Member

I think the avatar system should be organized using "avatar providers". This would allows devs to manage ways an avatar can be defined. For instance a dev could want to remove Gravatar and keep only file upload. So I'm guessing a sub-servicesProvider could work ? Something like $ci->avatar->gravatar ?

We need to take into consideration that a provider should be self contained within a sprinkle, ideally in plug and play fashion. Adding the "Gravatar" sprinkle should automatically add it to the provider list and end user "choose your avatar" form. Some avatar support would still be needed in the Account sprinkle, mainly to call the right avatar provider and to provide a common db column, avatarProvider. Additional info could be managed by a vendor specific table/relation.

To keep existing Gravatar support, a new Gravatar sprinkle should be included in the default UF Install and added to the sprinkle list, to allows a dev to remove such support easily. This would be a new BC.

A default UF install should support:

  • Gravatar
  • File upload
  • Direct link

For file upload, either we store the files in the corresponding sprinkle, or provide a global UF place to store all kind of upload. I think a global storage place would be best for backup purposes. A new default storage manager sprinkle could also be created for that, so the location could be changed to a AWS/GoogleDrive/Dropbox/other vendor if needed.

@lcharette lcharette added needs discussion A decision needs to be taken by the dev team Breaking Change Creates incompatibility with current version labels Mar 1, 2018
@abdullahseba
Copy link
Contributor

That sounds good 👍. I think as far as storage goes, it should definitely be outside the sprinkle system with a global directory. There should be a sub directory for each user and maybe move each users temp files over there too. I'm not sure if supporting cloud locations out of the box is a good idea because it could potentially be a high maintenance spot for uf. It would be a nice feature to have in a separate community sprinkle though.

@lcharette
Copy link
Member

Cloud storage is supported by Laravel, so if we build it on top of that, we should be fine :D

@abdullahseba
Copy link
Contributor

But we are not using Laravel... Unless it can be broken off like eloquent?

@lcharette
Copy link
Member

We are already using Filesystem. See https://laravel.com/docs/5.5/filesystem

And I was thinking about /app/storage or  /app/store as the base location for file storage. Same level as the session, logs and cache (and requires same permissions).

Should it be app/store/{sprinkle}/ to avoid collision? At the same time, Sprinkle A might need to access Sprinkle B files... Note that might seam pointless to do this when we can do  app/sprinkles/{sprinkle}/store, but you have to keep backup in mind

@abdullahseba
Copy link
Contributor

I think we should keep sprinkles out of it and have it based on users. So /app/storage/{user}/

@Silic0nS0ldier
Copy link
Member

Should persistent data be kept inside app? The large majority of everything there is application code (fetched and local), cache data, and the odd configuration file. The env file of which isn't even required if environment variables are used.

Or is there some established convention I'm missing here?

@lcharette
Copy link
Member

I don't think there's a technical limitation saying we can't put it to the root.

Ping @alexweissman. We need your wisdom

@lcharette lcharette added this to the 4.5.0 milestone Nov 23, 2019
@lcharette lcharette modified the milestones: 4.x.x, 5.1.0 Nov 25, 2023
@lcharette lcharette moved this to Todo 5.1.0 in UserFrosting Task Planner Nov 26, 2023
@lcharette lcharette moved this from Todo 5.1.0 to Todo 5.2.0 in UserFrosting Task Planner Feb 10, 2024
@StrykeSlammerII
Copy link

My primary UF project doesn't have inter-user social functions, and in UF4 I simply disabled the Gravatar lookup.
Overriding core functions in UF5 isn't quite as easy, so I might be able to put that time into a global solution instead of just fixing my local version.
With #869 closed, are there still any design questions that need to be answered here?
Are we still looking at one "avatar provider" = one sprinkle?

@lcharette lcharette modified the milestones: 5.1.0, 5.2.0 Feb 17, 2024
@lcharette lcharette moved this from Todo 5.2.0 to Todo 6.0 in UserFrosting Task Planner Apr 11, 2024
@lcharette lcharette modified the milestones: 5.2.0, 6.0.0 Apr 11, 2024
@lcharette lcharette moved this from Todo 6.0 to Not Started in UserFrosting Task Planner Apr 13, 2024
@lcharette lcharette moved this from Not Started to References in UserFrosting Task Planner Apr 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaking Change Creates incompatibility with current version core feature request Feature request needs discussion A decision needs to be taken by the dev team up-for-grabs Not assigned yet
Projects
Status: References
Development

No branches or pull requests

5 participants