About two days ago we found a bug with the registration system on lemmy. Because of this we have updated our registration process a few times, and cannot deny any applications as the person registering does not receive any message and cannot re-apply.

We currently have several hundred people that we are waiting to deny, and some unknown amount of people that we denied prior to finding this issue which we would really like to contact and give them a chance to register as they didn’t write enough in their registration for us to really evaluate if they were a good fit for this instance.

If you’re a developer please take a look at this github issue and please work your magic to help fix this problem.

As an aside, we also have a list we’ve been working on for enhancements that would make moderating and administering this instance a lot easier, and enhancements we think users would enjoy in terms of UI and UX. We’d love to share these as well as facilitate a discussion to surface more ideas (and we plan to in the future), but right now we need to focus on the most pressing issue to us running this website, whether people can create an account here and participate.

  • nutomic@lemmy.ml
    link
    fedilink
    English
    arrow-up
    35
    ·
    1 year ago

    As a workaround you can go into the database and query directly for users with rejected application and email provided. Then write a script to email them. Getting a fix developed, reviewed, merged and deployed will take a few days in the best case. And even longer now because we are busy with lots of things.

  • biscuitsofdoom@beehaw.org
    link
    fedilink
    English
    arrow-up
    28
    ·
    edit-2
    1 year ago

    To work on bugs and test do I just need the UI and backend? Does the backend code have a embedded DB for local development? I can code, btw. I can figure rust out, great with JavaScript and JVM languages.

    • s900mhz@beehaw.org
      link
      fedilink
      English
      arrow-up
      11
      ·
      1 year ago

      The rust backend, Postgres Db and UI are all available as docker images. The rust “lemmy” repo has a docker compose file (if you are familiar with the concept) allowing you to spin up the whole stack locally pretty easily if you already have docker installed.

      • mobyduck648@beehaw.org
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        1 year ago

        I didn’t know it was written in Rust. I looked at it years ago but never went anywhere with it. I bet I’d be much better at it having written Scala for the last six months, never really got into functional programming until now.

        • aksdb@feddit.de
          link
          fedilink
          English
          arrow-up
          5
          ·
          1 year ago

          Scala and Rust don’t have that much in common I think. Rust is closer to C++ than to Scala (unless Scala has changed significantly since I last used it years ago).

          • mobyduck648@beehaw.org
            link
            fedilink
            English
            arrow-up
            4
            ·
            1 year ago

            To be honest when I say a while ago I mean a really long time ago, I remember hearing about it being popular for its functional programming features but also as a C++ replacement and I’ve not kept up since so it might just be the latter now.

            • aksdb@feddit.de
              link
              fedilink
              English
              arrow-up
              7
              ·
              1 year ago

              popular for its functional programming features

              Never heard that. Rust is an imperative programming language. It has a few features from functional languages just like C++, Java, etc. have a few functional aspects.

              • flibbertigibbet@feddit.de
                link
                fedilink
                English
                arrow-up
                10
                ·
                1 year ago

                Rust is an imperative programming language with strong functional programming influences. It started out implemented in ocaml.

                The main functional programming influences are a strong functional programming-esk type system and heavy use of pattern matching.

                The syntax is a bit odd though, neither fully matching C style syntaxes or functional syntaxes like ML or Haskell.

                • aksdb@feddit.de
                  link
                  fedilink
                  English
                  arrow-up
                  4
                  ·
                  1 year ago

                  Sure, but I still wouldn’t choose Rust if I wanted a functional programming language. Because it’s not one. I would pick Haskell or Scala or whatever.

            • aksdb@feddit.de
              link
              fedilink
              English
              arrow-up
              5
              ·
              1 year ago

              No matter the language, Rust is just a different beast. You don’t do OOP the way you do in C#, so you will have to change your expectation how code is designed. And you will have a very very hard initial (!) learning curve to get used to the borrow checker, which is Rust’s biggest strength. It’s absolutely worth learning and you will learn something to take “back” to other languages as well. But it’s not easy. No matter your background.

        • s900mhz@beehaw.org
          link
          fedilink
          English
          arrow-up
          3
          ·
          1 year ago

          Yeah I dabbled in rust very very lightly lol But the front end is written in inferno which is very similar to react which I’m very comfortable with. All I can say is don’t fear another language! Or don’t let it be a blocker, it may take some time to figure out but if you keep at it day after day you will be amazed how it will eventually makes sense.

  • SpacePirate@lemmy.ml
    link
    fedilink
    English
    arrow-up
    24
    ·
    edit-2
    1 year ago

    Likely need to define some basic rbac controls. They signed up, sure, but don’t receive a “user” role until after approval. Then in the home page, when signed in with no roles assigned, they get a banner saying they’re still pending approval and will not be able to post or comment.

    The major concern will be retroactively applying user roles to the existing users.

    • FirstWizardZorander@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 year ago

      I’m a fan of this approach. That way, we can return a 200/201 on subsequent registrations for the case where an attacker would query if a user name already exists on an instance. If rejected, remove the account. If accepted, add the user role.

  • Ghostalmedia@beehaw.org
    link
    fedilink
    English
    arrow-up
    19
    ·
    1 year ago

    Bit of a tangent here, but if you’re ever looking for experience designers to help out here and there, or to just give something a second set of eyes, I might be able to lend a hand or connect y’all with some bright and chill people.

    You probably don’t want me making any PRs, but I know my way around Figma and a user test plan.

    • Lionir [he/him]@beehaw.org
      link
      fedilink
      English
      arrow-up
      12
      ·
      1 year ago

      I’d love to see you redesign some parts of the Lemmy UI!

      In my option, a lot of designing work is still to be done so I’d love to see mockups you can make and your thoughts on design work!

      • HrBingR@beehaw.org
        link
        fedilink
        English
        arrow-up
        5
        ·
        1 year ago

        If we could end up with a theme that looks a lot more like https://kbin.social, I’d be so happy. My biggest gripe with Lemmy is all of the white space, and none of the current themes improve that at all. All of the theme options offered by kbin look amazing by comparison, and to my understanding Lemmy theming is done via CSS based on Bootstrap v4, so new theme creation should be straightforward enough.

        It’s to the point where, when visiting Lemmy instances, I use a custom CSS extension to modify a few properties to make it a bit more palatable to me.

        If you guys aver need help creating custom themes to offfer to users I’d be happy to contribute.

        • crank@beehaw.org
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Can you post your user style??

          But I would very much support having a more compact theme available without a browser extension. I think some tightening up up would make this place look more welcoming. It feels sort of “empty” due to all the white space.

          • HrBingR@beehaw.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

            Hey there, sure, currently I’m using this. The border between comments on a comment thread doesn’t look the best, but it makes it easier for me to track comment levels so I like it, though there are certain properties I’d like to change but can’t.

            Either way, I’m using an extension called Amino to apply my CSS changes on a domain-level.

            This fixes a lot of the whitespace and borders to make differentiating between posts and comments a little easier, while minimizing white space. I think it looks nice.

            .container-lg {
                max-width: 1600px;
            }
            .col-md-8 {
                max-width: 80%;
                flex: 0 0 80%;
            }
            .col-md-4 {
                max-width: 20%;
                flex: 0 0 20%;
            }
            .post-listing {
                border: 1px solid rgba(34,34,34,.125);
                border-color: #c80000;
                border-bottom: 0px;
                padding-top: 10px;
            }
            hr {
                display: none;
            }
            .border-top {
                border-top: 1px solid rgba(34,34,34,.125)!important;
            }
            .border-light {
                border-color: #e4e4e5!important;
            }
            
            • crank@beehaw.org
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 year ago

              thank you I like it! I hate when websites force me to have so much blank space. Like I remember what an improvement it was in 2002 when everyone got into sans serif fonts and padding to their table based layouts and using % widths, but the craft has moved on from those days… For this kind of website I am thinking more of a newspaper and less of a coffee table book.

              looks like Amino is only available for chrome and edge. For other ff users I will say I use an addon called Stylus but it might not be the best one; kind of resource hungry on big pages.

              • HrBingR@beehaw.org
                link
                fedilink
                English
                arrow-up
                0
                ·
                1 year ago

                Hey so just a heads up, I made a few more changes that I quite like (again, for the red theme, tweak appropriately for the default green theme), so thought I’d just update you.

                This changes the main feed quite a bit, adding a bit more of a card-like design to posts, though I have done my best to make sure there isn’t too much white-space from this change, I just feel it looks a bit more modern, but again, feel free not to use it :)

                It also, and this is my favorite change, changes the title color of any post you’ve visited, something that I feel is basic but for some reason Lemmy didn’t have before. So now any posts you’ve visited before will be a light-gray color instead. Hope you find some value here.

                .container-lg {
                    max-width: 1600px;
                }
                .col-md-8 {
                    max-width: 80%;
                    flex: 0 0 80%;
                }
                .col-md-4 {
                    max-width: 20%;
                    flex: 0 0 20%;
                }
                .col-sm-2 {
                    max-width: 10%;
                    flex: 0 0 10%;
                }
                .col-sm-9 {
                    margin-left: 5px;
                    max-width: 80%;
                    flex: 0 0 80%;
                }
                .post-listing {
                    border: 1px solid rgba(34,34,34,.125);
                    /*border-bottom: 0px;*/
                    border-color: #c80000;
                    border-radius: 5px;
                    margin-bottom: 8px;
                    padding-top: 10px;
                    background-color: #fff;
                    transition: all .2s;
                    box-shadow: 2px 2px 1px #c80000;
                }
                
                hr {
                    display: none;
                }
                .border-top {
                    border-top: 1px solid rgba(34,34,34,.125)!important;
                }
                .border-light {
                    border-color: #e4e4e5!important;
                }
                body {
                    background-color: #ecf0f1;
                }
                .navbar {
                    background-color: #fff;
                }
                .card {
                    background-color: #fff;
                    box-shadow: 2px 2px 1px #c80000;
                }
                .col-12 .card {
                    box-shadow: none;
                }
                .comments {
                    padding-left: 10px;
                    background-color: #fff;
                }
                a:visited .d-inline-block {
                    color:#d6d7d9!important;
                }
                .my-2 {
                    margin-bottom: 0px!important;
                }
                
                • crank@beehaw.org
                  link
                  fedilink
                  English
                  arrow-up
                  0
                  ·
                  1 year ago

                  Thank you for sharing! I will try it when i am on desktop.

                  I actually used your code as base to start to fix some things that bug me the most… all spacing/positioning the colors are a total mess. So i am interested to see what yours is like. I can tell from looking that yours is more efficient because i do not know what im doing so it is trial and error.

                  Do you think there is a better place than wherever we are to post? A repo or other code sharing? I think the stylus extension connects to some sort of website but i never investigated it.

      • Ghostalmedia@beehaw.org
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

        Nice! I’m pretty new, so let me get a little bit more familiar with the platform, and I’ll craft up some stuff!

        • Themightypooper@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Is there a way to follow you here? I’d like to see that. I’m working on being a designer and I’d like to see what others are coming up with.

            • Poke@beehaw.org
              link
              fedilink
              English
              arrow-up
              4
              ·
              1 year ago

              One option is to get a mastodon client/account and follow a user’s Lemmy address. A funny interaction of being in the fediverse :)

      • reka@beehaw.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        How does this work with a federation model. Is it possible that there can be lots of different clients with different UX’es?

        • Skelectus@suppo.fi
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Lemmy backend and lemmy ui are separate components. Look up LemmyBB, that for example is an alternative to lemmy-ui.

        • 🦊 OneRedFox 🦊@beehaw.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          Fediverse platforms in general are just different UIs for the same content since they all interop to varying degrees. You can subscribe to and interact with Lemmy content from Mastodon, as an example.

          • chinpokomon@beehaw.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            Does that go in reverse too? Subscribing to a Lemmy instance, do I have a Mastodon account by extension? I thought they were different federated services, but being able to authenticate and authorize through one (or more) accredited account(s) would make sense for both services.

  • Mr. Frog@beehaw.org
    link
    fedilink
    English
    arrow-up
    17
    ·
    1 year ago

    Thanks for posting and writing all this up. I’ll take a good look at it if this is a Friday that work tickets decide to slow down.

  • Rentlar@beehaw.org
    link
    fedilink
    English
    arrow-up
    16
    ·
    edit-2
    1 year ago

    A “quick fix” might be to test for a user unapproved status on login and provide it as a status (e.g. 404:application_denied). Then the behaviour can be either release all created but unapproved accounts after 24hrs elapse or perma-“ban” until approved like it is now depending on server preferences.

    “Quick fix” as in it’s seems quick but will take me a while to implement if I were to try and I won’t have time for a few days to get serious and become familiar with the code.

      • chinpokomon@beehaw.org
        link
        fedilink
        English
        arrow-up
        10
        ·
        1 year ago

        Servers may also send [a 404] response instead of 403 Forbidden to hide the existence of a resource from an unauthorized client.

        In this case, I agree that 403 is the better response, but for some resources, in the name of security and privacy, 404 might be more appropriate depending on the request.

        • ultraHQ@beehaw.org
          link
          fedilink
          English
          arrow-up
          8
          ·
          edit-2
          1 year ago

          Yeah at work we mask all responses to the client in production to x00, but in the scenereo the original commenter laid out exposing the 403 would be best.

          Adding a modal client side would prob be best here.

  • Cass.Forest@beehaw.org
    link
    fedilink
    English
    arrow-up
    15
    ·
    1 year ago

    Hiya! Lemmy was actually one of the reasons I started learning Rust, but I do also know JavaScript, Python, a bit of Julia, C, C++, MASM, NASM, MIPS, a bit of TypeScript, and Java. I’ve worked on both frontend and backend although I think my expertise and comfort lies with backend primarily. I’m not sure if I’d be able to help with y’all’s issue as I’m not familiar with the Lemmy codebase, but I’d be willing to try and help debug the issue and hopefully get it under control.

    • Dessalines@lemmy.ml
      link
      fedilink
      English
      arrow-up
      13
      ·
      1 year ago

      We can definitely use all the help we can get. Luckily since lemmy and its UI is open source, we can embed all this highly popular functionality directly into lemmy-ui.

      • sailsperson@beehaw.org
        link
        fedilink
        English
        arrow-up
        9
        ·
        1 year ago

        I’d love it. I don’t hate the UI as it currently is, but I’d definitely appreciate some features, like the hotkeys RES has, or a tighter UI in general, with less padding and space between elements.

        To be fair, tweaking the UI is surely in my power and skillset, but UI is surely my least favorite part of development as a whole.

    • Zoop@beehaw.org
      link
      fedilink
      English
      arrow-up
      9
      ·
      1 year ago

      If I remember correctly, RES has basically been limping along in maintenance mode for quite a while now and there’s only one or two people left working on it - and only from time to time.

  • BobQuasit@beehaw.org
    link
    fedilink
    English
    arrow-up
    14
    ·
    1 year ago

    I cannot code. 🫤

    But it occurs to me that we need a couple of features - although maybe they already exist.

    One is the ability to back up a Lemmy account and download the data.

    The other is account portability - the ability to move an account from one instance to another.

    But I suspect that #2 might be impossible.

  • Blue@beehaw.org
    link
    fedilink
    English
    arrow-up
    14
    ·
    1 year ago

    I thought this was a mistake. I filled out an application early on and didn’t fill it out correctly. I expect that account was denied, but I did notice that the user was created the exact second I applied which was weird. I assume the username is now in a limbo state. Seems strange that lemmy would create an account before it’s approved.

    • jerkface@lemmy.ca
      link
      fedilink
      English
      arrow-up
      8
      ·
      1 year ago

      There needs to be something to approve or reject, after all. It could have been a separate table but this way is probably better ultimately, modulo current bugs. The same machinery can be used for suspending accounts and other steps in the account lifecycle.

  • Garrathian@beehaw.org
    link
    fedilink
    English
    arrow-up
    12
    ·
    edit-2
    1 year ago

    I have front end and back end experience but work has me kind of bogged down this week. If nobody has stepped up by Sunday I should be free to start taking a look at it at the very least.

  • SpaceCowboy639@beehaw.org
    link
    fedilink
    English
    arrow-up
    11
    ·
    1 year ago

    I’m a beginner with Rust, but a full-time web engineer with React/TS/PHP/SQL/etc experience. I’m a bit swamped at the moment, but I’m down to contribute eventually :)

  • karce@beehaw.org
    link
    fedilink
    English
    arrow-up
    10
    ·
    1 year ago

    I have Rust experience and will consider helping out. I’ve been wanting to help out Lemmy recently anyway.

  • mustyOrange@beehaw.org
    link
    fedilink
    English
    arrow-up
    10
    ·
    edit-2
    1 year ago

    I forget my password to my GitHub account, so ill just reply here. I agree - it is a bit hard to know if youve been accepted or not. I just kept trying to log in once or twice over an hour or so, but I doubt thats feasible especially for the cases of people who get denied and dont know why.

    I am not quite certain on the structure of a Lemmy server, but I imagine there’s a log of users that you can join to a particular db entry for acceptance status and denial message. Given that you host the server that this is on, I imagine you might be able to append some changes to the login page to access these fields.

    My thought is that there can be a small text input added to the bottom of the log in page that you can enter in a username, and have it present the necessary data pertaining to acceptance status. Again, not sure how this would work in Lemmy structure land, but in MVC where Im competent, I would have an endpoint that returns data as json, then ping it with an ajax post request. Id imagine something similar could be done here

    • SomeGuyNamedPaul@beehaw.org
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      1 year ago

      What about as part of the sign up process you offer browser notifications instead of after the fact? Decoupling is a good thing versus straight up polling.

  • SubArcticTundra@beehaw.org
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    1 year ago

    Off topic but I’m really happy that the developers chose Rust to code Lemmy in. Low maintenance + high performance is the ideal combo for open source server software.