Kai Posted September 19, 2016 Posted September 19, 2016 Hi everyone, I want to start a new project that is community-based and would like to use PW for that. Some of the requirements: User management User sign up by email, google, linkedin, facebook User management by admin each user gets a profile page each user can define his own custom URL for his profile page users can password protect their profiles anti-spam: Flag button for profiles, track number of login attempts then block users can specify arbitrary user fields (!) (self-defined) - I did this once in another framework by a meta-table: "userid | title | value" Search users can find other users, search must index all user fields Misc Logging of all users events (e.g. user A accessed profile of user B, user C logged in, user D got blocked by admin, etc.) all pages via https Let's imagine there would be 100 000 users - Will it still be fast enough? Can ProcessWire fulfill all those requirements?
flydev Posted September 19, 2016 Posted September 19, 2016 Hi Kai, I don't see any requirements here that is not manageable by ProcessWire, the only limit will be knowledge of PHP. 4 hours ago, Kai said: User management User sign up by email, google, linkedin, facebook User management by admin each user gets a profile page each user can define his own custom URL for his profile page users can password protect their profiles anti-spam: Flag button for profiles, track number of login attempts then block users can specify arbitrary user fields (!) (self-defined) - I did this once in another framework by a meta-table: "userid | title | value" 1. You could implement OAuth easily with 3rd party libraries or integrate each provider's API into ProcessWire. 2. You can manage users by using API and/or by playing with roles, permissions into ProcessWire backend. 3. Yes - very easy, for example, you can just use "pages" and page filedtype for relations. 4. Yes - by playing with urlSegments. 5. Yes - you can implement this feature easily + there are one or two modules which might help you to achieve that. 6. Yes - you have to implement it. 7. Yes - by using the API . Quote Search users can find other users, search must index all user fields 1. Yes 2. Yes 4 hours ago, Kai said: Misc Logging of all users events (e.g. user A accessed profile of user B, user C logged in, user D got blocked by admin, etc.) all pages via https Let's imagine there would be 100 000 users - Will it still be fast enough? 1. Yes (hooks come to my mind). 2. No problem at all. 3. From what I've read on the forum, I want to say : superfast. (ProCache) Quote Can ProcessWire fulfill all those requirements? 8 1
modifiedcontent Posted March 8, 2017 Posted March 8, 2017 Is Admin > Access > Users really able to handle potentially hundreds of users? It seems designed for a small number of site admins and editors - you can't sort them by name or last registered etc. Is there a way to separate members/newsletter subscribers from the small team of site admin/editor users? Store members under a separate page maybe? But how would you then manage roles and access etc.?
LostKobrakai Posted March 8, 2017 Posted March 8, 2017 This is directly from demo.processwire.com, I'm sure the lister filters are enough to manage not only a small number of users. 1 1
Robin S Posted March 8, 2017 Posted March 8, 2017 2 hours ago, modifiedcontent said: It seems designed for a small number of site admins and editors - you can't sort them by name or last registered etc. Quite the contrary - the lister can handle virtually any number of users with ease. Click column headers to sort, add new columns on the "Columns" tab.
arjen Posted March 9, 2017 Posted March 9, 2017 We have ListerPro's with 10.000's of pages (some up to 80.000 pages and counting) displaying 25 fields. Just make sure to limit/paginate around 50 or 100. Still quite fast (around 3 seconds loading time). This includes all kinds of Markup changes. So I would say: yes 7
modifiedcontent Posted March 10, 2017 Posted March 10, 2017 OK, I didn't get you can sort by column headers. And what about separating roles? Is it possible to get a list of only 'members', without admins, guests and editors mixed in?
Robin S Posted March 10, 2017 Posted March 10, 2017 5 hours ago, modifiedcontent said: And what about separating roles? Is it possible to get a list of only 'members', without admins, guests and editors mixed in? It's all right there if you look...
LostKobrakai Posted March 11, 2017 Posted March 11, 2017 14 hours ago, modifiedcontent said: Is it possible to get a list of only 'members', without admins, guests and editors mixed in? You can filter users out by all sorts of rules, but you cannot easily create additional user listers like you could for plain pages with ListerPro. Sadly there aren't any bookmarks for the users lister as well, where one could save often used filters. I hope Ryan will add those some time. 1
Robin S Posted March 11, 2017 Posted March 11, 2017 1 hour ago, LostKobrakai said: you cannot easily create additional user listers like you could for plain pages with ListerPro @LostKobrakai, you can create custom user listers with ListerPro. They appear under "Pages" by default but you can move the page to be under "Access" and it seems to work fine there. You can also create bookmarks for that custom user lister, but not bookmarks for the built-in users lister (which would be nice).
LostKobrakai Posted March 11, 2017 Posted March 11, 2017 You can certainly create your own custom user listers with ListerPro, but it's neither adviced nor praticable, because the ProcessUser module does handle a lot of the permission issues regarding user pages, which those custom lister pages of ListerPro won't handle.
Robin S Posted March 11, 2017 Posted March 11, 2017 46 minutes ago, LostKobrakai said: You can certainly create your own custom user listers with ListerPro, but it's neither adviced nor praticable, because the ProcessUser module does handle a lot of the permission issues regarding user pages, which those custom lister pages of ListerPro won't handle. You mean if you are giving roles other than superuser access to to user management? I haven't looked into that a lot, but with a quick test it seems like once you give your "user manager" role edit access to the user template and configure the user-admin permissions for the role, the access to edit user pages is the same through the custom lister as through the default users lister (i.e. they cannot edit users they do not have the permission for). But you have probably investigated this more thoroughly.
SamC Posted March 11, 2017 Posted March 11, 2017 User management 1) each user gets a profile page 2) each user can define his own custom URL for his profile page Sorry to hijack, but this is something I'm interested in but can't see how this works in PW. When they log in, they go to a profile page rather than the admin tree page? How is it done? Whenever I create a new user in testing, when I log in with their, the admin page is always the destination.
BitPoet Posted March 12, 2017 Posted March 12, 2017 On 3/11/2017 at 1:26 PM, SamC said: Sorry to hijack, but this is something I'm interested in but can't see how this works in PW. When they log in, they go to a profile page rather than the admin tree page? How is it done? Whenever I create a new user in testing, when I log in with their, the admin page is always the destination. That is what happens in the backend (you're logging in to the admin), but you can create your own frontend login procedure as well (completely from scratch or with the FrontendUser module). In that case, you control where the user gets redirected to. 2
SamC Posted March 12, 2017 Posted March 12, 2017 1 hour ago, BitPoet said: That is what happens in the backend (you're logging in to the admin), but you can create your own frontend login procedure as well (completely from scratch or with the FrontendUser module). In that case, you control where the user gets redirected to. Ok, I see now, so people who register on a site never get to see the admin area. This part was confusing me, I thought people always went to the page tree after login. Guess I've still got a lot to learn.
Robin S Posted March 12, 2017 Posted March 12, 2017 @SamC, I usually do what @BitPoet suggests and create custom login and profile edit forms for the front-end if the user only needs to edit their profile (or some other single page). But there are a few modules and snippets around that take the approach of creating a custom dashboard in the PW admin for users with non-superuser roles and redirecting them to that when they log in rather than the page tree. Here are a couple of links, and just search for "dashboard" to find more: http://modules.processwire.com/modules/process-dashboard/ 1
modifiedcontent Posted March 17, 2017 Posted March 17, 2017 These new users template options are probably going to be helpful in more advanced user management. Via apeisa. 1
LostKobrakai Posted March 17, 2017 Posted March 17, 2017 It depends. I'm actually regretting going that path for an application of mine, because it pushes so many if/else conditionals in your controllers/view layer, which could otherwise be handled by a single user class as part of the application domain. But it really depends on how separated your user types are in the application. Edit: Also different user templates don't allow users to be of multiple of those user types. 2
benbyf Posted April 6, 2017 Posted April 6, 2017 check out my module subscriber for some implementation of how you might add users and profiles but without giving them access to the PW "admin". Also note that I'm looking to give this module an overhale soon as it presumes ALOT of the developer using it currently.
JeevanisM Posted January 29, 2019 Posted January 29, 2019 On 9/19/2016 at 12:59 PM, flydev said: Hi Kai, I don't see any requirements here that is not manageable by ProcessWire, the only limit will be knowledge of PHP. 1. You could implement OAuth easily with 3rd party libraries or integrate each provider's API into ProcessWire. 2. You can manage users by using API and/or by playing with roles, permissions into ProcessWire backend. 3. Yes - very easy, for example, you can just use "pages" and page filedtype for relations. 4. Yes - by playing with urlSegments. 5. Yes - you can implement this feature easily + there are one or two modules which might help you to achieve that. 6. Yes - you have to implement it. 7. Yes - by using the API . 1. Yes 2. Yes 1. Yes (hooks come to my mind). 2. No problem at all. 3. From what I've read on the forum, I want to say : superfast. (ProCache) Awesome Reply... @flydev Just wanted to add a side-query to OP. Below is a situation :- #. Once a new user logged in, this user can see list of current Online Users. ( I have seen this feature mainly in Forums websites / Social N/W sites ) Can we do this in PW ? 1
LostKobrakai Posted January 29, 2019 Posted January 29, 2019 You can do it to the degree forums do it. Like track users activity somewhere in a database whenever communication happens and take some amount of timeout at which you consider a person without activity offline. What you cannot easily do is online users to the degree you would expect it from e.g. a chat platform, where you actually want to detect if someone is leaving without waiting 15 minutes and without them needing to communicate to your server constantly. This is the realm of websockets. I may be biased, but if you want a really proper (and scalable) solution for that problem take a look at: https://dockyard.com/blog/2016/03/25/what-makes-phoenix-presence-special-sneak-peek 3
dotnetic Posted January 29, 2019 Posted January 29, 2019 @JeevanisM Please take a look at https://processwire.com/docs/security/sessions/. With Database-driven sessions you can monitor live traffic on your site. 1
JeevanisM Posted March 15, 2019 Posted March 15, 2019 On 1/30/2019 at 3:15 AM, jmartsch said: @JeevanisM Please take a look at https://processwire.com/docs/security/sessions/. With Database-driven sessions you can monitor live traffic on your site. thanks a lot bro On 1/29/2019 at 10:22 PM, LostKobrakai said: You can do it to the degree forums do it. Like track users activity somewhere in a database whenever communication happens and take some amount of timeout at which you consider a person without activity offline. What you cannot easily do is online users to the degree you would expect it from e.g. a chat platform, where you actually want to detect if someone is leaving without waiting 15 minutes and without them needing to communicate to your server constantly. This is the realm of websockets. I may be biased, but if you want a really proper (and scalable) solution for that problem take a look at: https://dockyard.com/blog/2016/03/25/what-makes-phoenix-presence-special-sneak-peek thanks a lot bro
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now