Jump to content

Mariano

Members
  • Posts

    23
  • Joined

  • Last visited

Posts posted by Mariano

  1. Hello, I wanted to share what i did to the souce code of the core to get some advice if there something can go wrong (the logic works, but in case I am missing something) and if there could be a better way to implement it or some idea so I don't need to change/check so much files after updates. It is for multi-company.

    The goal of the changes is that: a staff member, a client of company A and a client of a company B can use (or not) the same username (is not the same account, just the same username, these are independent users). What i did:

    Step 1: split the Users model functions in two, same logic, only changes the filter:

    getByUsername -> getByUsernameOnlyClient / getByUsernameOnlyStaff -> It filters only users in one company (current) that are client / filters only users that are staff

    validateUniqueUser -> validateUniqueUserOnlyClient and validateUniqueUserOnlyStaff -> Same as before

    Step 2: split the rest of the Users model functions in two as before (validateUser, add, getRules, ...), to use the new previous functions (same logic, only changed wich function is called).

    Step 3: updated all the controllers to use the "OnlyClient" functions when is a client action (login, register, recovery, create, update, ...) and "OnlyStaff" functions when is a staff action.

    Step 4: removed the username unique key in the database. 

    I tried to keep the old functions and not just edit these ones to keep better track of changes.

    Any idea or recommendation is welcome.

    Thank you in advance,

    regards.

  2. Hello Paul,

    thank you for the reply. The problem about it is that CORE-3942 is too big compared with my topic. Plus to it the multi-company part is potential, is not the main subject of these task.

    The only issue i see is what i was trying to explain: if i have 2 (or more) companies (supposed to be diferent business units, is why there are separated systems, if they werent i would use only 1 company) and using email as username (customers uses email for login, as they do now) a pontential customer can only signup in 1 company using it's email.

    Additionally it can cause confusion as to why he can't use his own email account or recovery his access (because it tells him it's already in use) if he never signed up for that service before (in the other businesses after the 1st in which it is registered). 

    My stuff is not about sharing login or similar, managing multiple accounts, same credentials for diferent companies, is just what I try to remark. Except it fixes the issue.

    I think customers credentials should be associated with a single company, so the username user1 (or the username email1@example.com) could exist in more than one company or not, each one with its password, regardless of who uses it, and not be related to each other, be independent. Because from their point of view, they are separate services (or companies, or businesses).

    In short, limit the availability of usernames, and access in each company independently.

    If this is what we are talking about, of course i would consider sponsoring it (I should see how that works). But if this is not what we are talking about it is not going to solve the problem I see. For me it is the bug of the multi-company system and maybe nobody uses it or found it but it works how I say now and I think is not ok. 

    Anyway, I do not demand this. Maybe at some point the team can see it and agree :D.

    Thank you again,

    regards!

  3. 12 hours ago, Blesta Addons said:

    if client X was signed in company A, and after he want to sign in company B it should allow them to send, even if the unique username is activated. the unique username should be effective in each company and should not be across multiple companies. for me it still has no sense to share clients between multiple companies, at least this is against GDPR law.

    I think these is the correct way to do this.

    Regards.

  4. Hello, I open this thread to see if after 2.5 years there are some plans to solve this. The scenary:

    - I have Blesta multi-company with 2 companies: "Company A" and "Company B". There are diferent brands that offers diferent services.

    - Both companies have set "use email as username".

    - John wants a service that is offered by "Company A".

    - John, register in "Company A" using his email, "john@example.com". He starts using his services.

    - Then John, finds a service he likes in "Company B".

    - So John, try to register in "Company B" to buy the service using his email, "john@example.com".

    - The register system of "Company B" says to John that can't use that email, because it is in use.

    - So, John thinks: ohh, maybe I have an account in "Company B", so I will try to restore my password for login.

    - Then John discovers he can't restore his password, he can't use his email, he dont understand why because it is his email and is confused.

    Sorry for the imaginary story, I try to explain the problem in the most clear way possible for me. No plans to do something about it?

    I never was able to finish implementing Blesta because of this. I the real life we have situations like this. I want to start using it, but with this i am not sure we can. Is the only thing I see as a problem, in multi-company. If they are diferent companies, users must be able to use his emails in any of them.

    I hope is clear my situation and I hope someone can see this problem too!

    Thank you,

    regards!

     

     

     

  5. Hello,

    I wanted to know what are your toughts in a situation like mine. I am having a few web apps (SaaS) and the subscription is managed from Blesta. I have only 1 set right now, and I manage packages and actions (create, upgrade, suspend) from Blesta using Universal Module (that calls a bridge in the application server). I am going to add the other apps to Blesta but i have a doubt. 

    Which one is a best practice for this? Add all the applications to the Universal Module or create a custom module for each application? In terms of flexibility in the future, better organization, prevent future problems, etc. What are your thoughts about it?

    Another detail, is that probably (if at some point some stuff in the multi-company functionality changes) I would split the apps in diferent companies, and the universal module is too attached to the company for what i see.

    Thank you,

    regards.

  6. On 4/16/2019 at 9:01 PM, Michael Kinder said:

    You can set the currency in the URL by appending

    
    currency=USD

    Of course you can change the currency code if you desire. Please make note that you actually have to have the currency set as active in Blesta in order for this to work.

    So, for example: https://yourdomain.com/blesta/order/config/index/hosting/?currency=USD

    OR

    https://yourdomain.com/blesta/order/config/index/hosting/?group_id=2&pricing_id=4&currency=USD

     

    I haven't tried the language part, but I assume there is probably a similar method.

     

     

    I have it working on my site with GeoIP multi-currency if you want to test that it works.

    It is not working on my side. Maybe do you have some additional plugin installed (like the blesta-addons one)?

    On 4/19/2019 at 8:13 PM, Paul said:

    There's a dropdown to set the language if you have multiple languages installed. Right now this can't be set as a URL parameter, but it's something we're considering. However, it probably wouldn't be difficult to check for a GET parameter and then set the language similarly to the way the dropdown works.

    Please consider it. I bet it is easy to implement ?.

    I correct my first message, i see an error now. Where i said:

    "currency=Spanish&currency=3",

    I meant: "language=Spanish&currency=3"

    Regards.

  7. 13 hours ago, activa said:

    Search the forum, this subject already disucces many times, also a plugin from blesta addons has this option to change language from url .

    Hello,

    thank you. I have searched in forums, all posts i have seen send OPs to the blesta addons plugin. I was seraching if there is some included feature or some tip about how to implement this because that part of code isn't unencrypted (to check how combobox that change that works). If there is some post that has a closer solution I will be glad if you point it!

    1 hour ago, Blesta Addons said:

    we have two plugins, the first one is multilanguages is released, the second one is not yet released, is one used by two clients and you one of them .maybe we will release it soon .

     

    Thank you, i have seen your modules. But i don't understand at 100% the subscription model and is not compatible with multi-company (you need a suscription for every company). So for now is not an option to me at this moment. Maybe in the near future!

    Regards! 

  8. Hello,

    i wanted to see if there is some way to set the language and currency in the URL (GET parameter). Right now, I have a multilanguage and multicurrency Website, that links to WHMCS. When the user goes to order, login into the account, register, or anything related to the billing system, i send them to (as example): domain.com/cart.php?currency=Spanish&currency=3 (so he see the billing system in spanish and prices in the particular currency.

    I can't find how to implement this in Blesta. It doesn't support a similar functionality. I was checking the source code too (for see how language works), and it looks like the core language part for example, is inside the 1% encrypted code (correct me if i am wrong), or i am not finding it.

    Is there some way to implement this?

    Thank you,

    regards.

  9. 1 hour ago, viablethought said:

    Letting someone create username "example" at Company A, then letting someone completely different use that same exact username "example" at Company B - you're asking for a whole world of trouble and it would be super confusing to account managers that handle the accounts. Then what happens if username "example" at Company A wants to sign up for Company B - but now they have to create a whole new username and password because someone already used it, right? How is that making it easier?

    I don't think so. Of course, is my point of view, i don't think because ("taking in account we use email as username", from the staff perspective):

    - In our case, honestly, never paid attention to usernames. We identify customers by number or name. Who minds the username is the customer that needs it to login.

    - Rignt now in Blesta multi-company everything is separated. So staff needs to go to inside the admin of company A for see the company A tickets, invoices, services... so the customer is the customer inside company A, regardless of the username.

    In change from a customer perspective is more confusing:

    - He signups in company A using his email. He doesn't mind his name and customer number. But he needs to remember the email (username) for login or restore his password.

    - He wants to signup now in company B, but is says his username (email) is in use or exists (because exsists in company A). So he tries to restore the password and the discover the username doesn't exists. So, he asks you if the account exists or not, why can't use his email if never signed up before in company B. This point doesn't make any sense.

    If happens what you say, that someone signed up in company A using the username "example" (again, in our case is the email) and the someone signs in company B using the username "example", the second one did come first in company B and wins. In our case as force email as username, who owns the email account owns the companies accounts because they can get access to it. So if you use someone else email, you loose the account at that moment. (an email verification would make it perfect).

    Quote

    but now they have to create a whole new username and password because someone already used it, right?

    Quote

    Then you are simply asking to create a new account for any/every company? Isn't this the default behavior right now or am I missing something?

    Right now how it is, you have to create a new user anyway for evey company. Even if the username "exists or not" in that company. With this change at least you can use the same username if doesn't exists in that company. You go from nothing so something.

    Anyway, is complex. Not all business runs in the same way. But i am convinced this change that I propose is the right solution from how it works now, fix the no sense error about the pseudo existence of the username, and make the customer life easier. All the rest can stay like it is.

    Regards.

     

  10. 2 minutes ago, Paul said:

    To be clear, what are you asking for exactly?

    1. Ability for a single login to have access to multiple companies (Same user/password, client can "switch" companies like Admins)? *or*
    2. The ability to create a new user/pass (which could be the same) for each company? In other words, the login is tied to the company.

    Both of these options would maintain separate client records/profiles, meaning that they would not see services on their profile for all companies. They would have to login at the right place, or use a company switch feature like admins. Thoughts?

    Hello Paul,

    Thank you for your answer. Something similar to option 2 is what I mean. The ablility to create a new user for each company using the same username (can use diferent passwords). Not a switch between companies or something like that. Just to be able to use the same username in any of the companies. Not related profiles. Just individual accounts in each company (just in case someone tries to use the same username in another service). 

    What i think, If someone registers using the same username in company A and company B, needs to login in company A to access the services in company A, or login in company B to access the services in company B. Is more, if someone uses the username "example" in company A, maybe another person uses the username "example" in company B. So they are diferent person that don't have to share anything.

    To sum up, the same username (same person or not, same password or not) can exist in all companies. Access every company separated. Profiles are not related each one. Not switch betwen companies.

    All this for the customer users. Staff users work perfect just as they work.

    Thank you.

    Regards.

  11. On 11/18/2018 at 1:00 AM, espservices said:

    Any update on this from Blesta team? The issue with same client not able to use the same email as username is keeping me out from buying the multi-company add-on.

    I really need this, so I can have the same clients, on separate brands.

    Thanks

    I have the same problem here. And i was asked why the can't login with the same email in 2 services (luckily people known for now). And idk if is good to modify the core for this, because the updates. I pray every day to see that change in development roadmap ?.

    @Paul is there not way to take a look into this and add this feature to the core? (allow customers to use same email as username in 2 companies in a multi-company setup).

    Regards!

  12. Hello again,

    i wanted to do a question related to this topic (specially for who know a little the blesta structure). I want to use multi-company but this of the "unique username" in all companies is not going to work for me. I didn't get multi company yet so i can't try this. But i really need separate the brands, because 2 or the services i will offer are free and then probably much users and same users using more than 1 brand.

    What can happens if I modify all users in database (table users) changing all the usernames (username field) after registration or when sending the form:

    For example, in company 1 registers someone with the username "myusername" (or myusername@something, lets take the "myusername" for examples). Then in the register function, i change his username for example to "1#myusername" (lets say in the submit form or something like that, puting something like the company id);

    Then, in company 2 registers someone with the username "myusername" and is going to be free to use, because the other one is now "1#myusername". So, when register, i register this one like "2#myusername".

    if someone wants to register in compay 1 or comany 2 now using the name "myusername" that will no be possible because "1#myusername" and "2#myusername" are in use.

    Then modify the login form and recovery password form for example, so when someone of them want to login or reset password, they use "myusername" and i appned in the form depending in the company they are, 1# or 2# before the username.

    Can work something like this? Or there I would need to make more major changes? Can this break some functionality?

    Thank you,

    regards.

     

  13. 12 hours ago, Tyson said:

    Interesting. I wasn't able to duplicate that behavior.

    But I am curious.. did you receive a message when you created the package option yesterday? Either a success message in a green box, or an error message in a red box?

    Can you replicate this problem by creating the same package option with the same information and the same values/pricing? If so, please let me know the details so I can try it myself.

    I confirm when i created the 1st package option (the one with error) i saw the success message. The package option was saved, but werent saved the items in the "options section" (or at least when i try to edit these package option they are not there). And  i can't update these package option because the error when i try to save.

    Maybe now thinking, i can remember a little diference: betwen the 1st one and the 2nd one: because the error, i did an upgrade from 4.3.0 to 4.3.1 to try. Now, in the "options section" when i choose "Quantity" and in the "options section" i leave "min" or "max" empty, and try to save, it gives a white screen (wont save), and looking at the blesta logs it gives this error:

    [2018-08-20 18:46:36] general.ERROR: PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'min' at row 1 in

    And there is a chance i leaved "min" or "max" empty the first time because they aren't requiered (only "step" is). I don't remember really and i can't confirm it because these records wheren't saved. Idk, for example, would happens that these values can't be empty, and the first time, before the pach, it allowed me to save and  there is some error in the DB with this item (relations or somehting)?

    Anyway, not big deal, i will continue working and see how goes. If i can reproduce the error i put it here, for now i can't, it doesnt happens. For now the only strange i see is these white screen leaving these fields empty (min and max), it looks like if they are not validated before save like the other fields and needs to be.

    Thank you,

    regards.

     

     

  14. Hello, thank you for the reply. I was trying to set the options in the "options section". I was able to create and save the "options section", but when i reopened the configurable option for edit there are not more the values in the "options section" how there was when i first created the configurable option. And if i try to add the items in the "options section" again, there comes the error (Invalid package option value ID.) when i try yo save changes.

    The strange thing is that today i tried to add again a configurable option from 0 and it worked. But still, the one i created yesterday says "Invalid package option value ID." when i try to modify the configurable option. Here is te one is not working (the values it shows when i open it -because didn't save the first values i put- and the values i try to set):

    blesta5.thumb.png.902faa4e9c5f50cd8f996d1c46cb75b9.png  

    blesta3.thumb.png.7a964580d30f702ad3f76c9d33877edd.png

    But here is the one i tried to add from 0 today, it is working fine and i can modify and save it without problems (i did all exactly as yesterday, and used the same options and values):

    blesta1.thumb.png.fe52d5dbf426943f27d6666486dfd495.png

    blesta4.thumb.png.1b1cc18d1724fdff05204754552ebd92.png

    Maybe it is just a random thing as the OP says?

    Regards.

  15. On 3/21/2017 at 9:20 PM, furioussnail said:

    This seems to be random. At some points I get the error but when I try to reproduce it doesn't happen.

    Hello,

    did you figure in the past what the problem was? I am having the same problem with Blesta 4.3.1. I do the following:

    1) Create a configurable options group.

    2) Create an configurable options and assign the group.

    But them when i open for edit the new option i created there are gone the options and pricings i set before. And when i try to save it says: "Invalid package option value ID.". Attached is the error.

    Thank you,

    regards.

    errorblesta.png

  16. Hello, why not at least Blesta allows the same username in the diferent companies (i mean "username" or "email as username", is the same, the login credentials)? Here are my points:

    CUSTOMER:

    - Today most services uses email as username. And if they use username, generally you can login using the email too (en user services). We choose alwas for our services, using email as username.

    - People generally uses 1 personal email account. If we force using email as username we have problems if an user will signup in 2 or more of the companies.

    - People generally uses the same username in all services they use. Same than before.

    - Customers  forget the usernames they use for services... they don't forget their email and it only belongs to them. Plus to it they can't restore they username right now in blesta. It adds manual work to us. (of course, both options are ok right now, every business has the option to choose) because we are limited in using the same username (or email as username) in diferent companies..

    - Right now if a customer want to use their email account for 2 or more "companies" (as username!, or if we force it) they can't do it. As I said in other posts, it makes not sense from the customer point of view if we are showing them as 2 companies (services, brands, the name you prefer).

    - Again I don't think it is hard to implement. Allow the same username in different companies and when they login for example, only search the users in these company for see if exists. There is not security risk at all.

    - I think customers don't have to be shared betwen companies. Just have the posibilitiy to use an "username" which is already used in another company. Shared users would be a mess when sending notices for example (because maybe they use just the services of one company)

    STAFF:

    - I think all this is not a problem for staff as it is for customer. We can decide how organice our staff (we can't decide how customer mind works). If we want to separate staff, we can handle diferent emails accounts for each (or usernames) and make it totally separated. If we want just one account per staff, now is perfect. I don't think any changed it needed here.

    Regards!

     

  17. 3 hours ago, WebhostingNZ.com said:

    @Mariano have you tested it?   I haven't but I did setup my own testing client using the same email account on two different companies.  Maybe it only rejects it if it's done via the client signup and not via the admin area?  Don't have time to test it but I can say it is possible to have the same email address used on two different companies.

    Hello,

    are you able to register with the same email address in both companies using the "Use email as username" option? I understand it is possible using the "Specify a username" option (and setting diferent usernames for each company) but not using the previous option (Use email as username).

    Regards.

  18. Hello,

    Does someone know if is there any progress on this issue? I am starting working with Blesta for my new projects and thinking in multi-company (for every brand) but I find it a problem.

    As some said there are users that would like to use 1 email address (or username) for their services. And more important for me, it doesn't look clear from a customer perspective to know they can't use their own email address when buying a service because is used in another diferent service, doesn't make sense (in my opinion :D).

    I really think it needs to have unique email/username limited to every company (or brand), not the whole system. I think this option isn't too hard to implement, is just one more filter in the login proccess (multi-brand does it with every entity and other parts of the system). Or at least shared users, what i think is more dificult to implement and maybe not correct from a business perspective (or yes, idk).

    Thank you,

    regards.

×
×
  • Create New...