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.

  • @[email protected]
    link
    fedilink
    English
    3411 months 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.

  • @[email protected]
    link
    fedilink
    English
    28
    edit-2
    11 months 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.

    • @[email protected]
      link
      fedilink
      English
      1111 months 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.

      • @[email protected]
        link
        fedilink
        English
        6
        edit-2
        11 months 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.

        • @[email protected]
          link
          fedilink
          English
          511 months 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).

            • @[email protected]
              link
              fedilink
              English
              511 months 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.

          • @[email protected]
            link
            fedilink
            English
            311 months 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.

            • @[email protected]
              link
              fedilink
              English
              611 months 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.

              • @[email protected]
                link
                fedilink
                English
                911 months 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.

                • @[email protected]
                  link
                  fedilink
                  English
                  411 months 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.

        • @[email protected]
          link
          fedilink
          English
          311 months 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.

  • @[email protected]
    link
    fedilink
    English
    23
    edit-2
    11 months 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.

    • @[email protected]
      link
      fedilink
      English
      611 months 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
    link
    fedilink
    English
    2011 months 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]
      link
      fedilink
      English
      1311 months 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!

      • Ghostalmedia
        link
        fedilink
        English
        411 months 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!

        • @[email protected]
          link
          fedilink
          English
          311 months 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
              link
              fedilink
              English
              311 months 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 :)

            • @[email protected]
              link
              fedilink
              English
              111 months ago

              That’s a shame. But I’m sure it must be pretty close on the roadmap. It’s a pretty essential feature.

      • @[email protected]
        link
        fedilink
        English
        3
        edit-2
        11 months 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 ever need help creating custom themes to offfer to users I’d be happy to contribute.

        • crank
          link
          fedilink
          English
          311 months 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.

          • @[email protected]
            link
            fedilink
            English
            211 months 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
              link
              fedilink
              English
              211 months 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.

              • @[email protected]
                link
                fedilink
                English
                111 months 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
                  link
                  fedilink
                  English
                  111 months 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.

                • crank
                  link
                  fedilink
                  English
                  011 months ago

                  omg did you add drop shadows??? wowwowow i love it

      • @[email protected]
        link
        fedilink
        English
        211 months 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
          link
          fedilink
          English
          311 months ago

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

        • 🦊 OneRedFox 🦊
          link
          fedilink
          English
          111 months 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.

          • @[email protected]
            link
            fedilink
            English
            011 months 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.

            • 🦊 OneRedFox 🦊
              link
              fedilink
              English
              211 months ago

              Lemmy has yet to implement the functionality needed to follow non-Lemmy accounts, but it is in the todo list. You should check out kbin if you’re interested in a similar UI that currently supports this functionality.

  • Mr. Frog
    link
    fedilink
    English
    1711 months 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.

  • Cass.Forest
    link
    fedilink
    English
    1711 months 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.

  • @[email protected]
    link
    fedilink
    English
    1611 months 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.

  • Rentlar
    link
    fedilink
    English
    15
    edit-2
    11 months 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.

      • @[email protected]
        link
        fedilink
        English
        911 months 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.

        • @[email protected]
          link
          fedilink
          English
          9
          edit-2
          11 months 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.

  • Blue
    link
    fedilink
    English
    1411 months 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.

    • @[email protected]
      link
      fedilink
      English
      811 months 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.

  • @[email protected]
    link
    fedilink
    English
    13
    edit-2
    11 months 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.

    • @[email protected]
      link
      fedilink
      English
      511 months ago

      I’d second this. Knowing that the back-end is built on Rust was definitely big part of drove my excitement for this project!

      • Deebster
        link
        fedilink
        English
        111 months ago

        It’s a very popular language for people to learn (as per the Stack Overflow surveys) which is good for a volunteer project.

        Also, being somewhat inexperienced in Rust doesn’t stop you from being useful, partially because the compiler will catch a lot of stupid mistakes. I don’t think that “years using a language” is a very useful accurate proxy for skill with a language without the context of what else they’ve done, and your article is just looking at the raw averages.

      • @[email protected]
        link
        fedilink
        English
        111 months ago

        I might need to learn Rust. Java/Kotlin/C# are fine for work, but I’m interested in new stuff anyways.

      • @[email protected]
        link
        fedilink
        English
        111 months ago

        I’ve heard the opposite from open source devs, that using Rust has increased the amount of contributions they get.

      • @[email protected]
        link
        fedilink
        English
        111 months ago

        How much language-specific experience do you need? Rust is kind of it’s own special thing, which is why the hype, but I don’t know how hard exactly it is to break into.

  • @[email protected]
    link
    fedilink
    English
    12
    edit-2
    11 months 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.

    • Dessalines
      link
      fedilink
      English
      1611 months 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.

      • @[email protected]
        link
        fedilink
        English
        1011 months 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.

    • @[email protected]
      link
      fedilink
      English
      811 months 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.

  • @[email protected]
    link
    fedilink
    English
    1011 months 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 :)

  • @[email protected]
    link
    fedilink
    English
    10
    edit-2
    11 months 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

    • @[email protected]
      link
      fedilink
      English
      5
      edit-2
      11 months 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.

  • @[email protected]
    link
    fedilink
    English
    1011 months ago

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