Moodle Restrict submission Notification to assigned teacher - notifications

The Notify graders setting to 'Yes' in Assignment settings is sending notifications to all the teachers, whether they are the allocated markers for a particular student assignment or not. There doesn't seem to be a way to prevent notifications to all the teachers rather than only send it to the one allocated teacher. Looking for a fix?

It is not a bug, since the setting says "Notify graderS", not one particular grader. So there is no fix, because your request assumes new functionality

Related

How to ensure accounts aren't bots (Algorand)?

not sure if this question belongs here... We are doing a giveaway but we have >30K wallets signed up. We're worried that many are bots. Have you encountered this yet? AND/OR does anyone have a solution to check each wallet transaction history to see if they have any transactions across other signed up wallets? We checked Algo Explorer and it seems that most cases there's a parent wallet and they're sending from the main wallet to a bunch of sub-wallets... thoughts?
Unfortunately there is no good way to prevent this unless you had some form of KYC. I could have a bot create fresh wallets with no transaction history that would be impossible to correlate with each other. Then if those wallets got an asset from you I could then just have them send that asset to the "main" wallet.
You could also set a minimum value of ALGO required to hold in the wallet to be eligible. It wouldn't completely solve the problem, but would make it more expensive for the people operating the bots at least.
Alternatively, set up a centralized service with email + captcha, make each address owner validate their address via that service and deny if they don't.

RabbitMQ - how to avoid to receive own messages

I am creating a service (accessible via web and app) where users belong to a team. Whenever a user does something, all the other online users (*) in his/her team must be notified. I am evaluating RabbitMQ for this.
(*) Note that it is possible that the same user has multiple sessions at the same time: he could be logged in in different browsers at the same time, or more likely in the browser and and app at the same time.
My current approach is to create a topic exchange for each team:
When a user logs in, an auto-delete queue is created and bound to the exchange of his/her team.
When a user did an update, the backend sends a message to the exchange of the corresponding team.
Finally, all active queues - that is, all active sessions - receive the update message.
This is great, because the update message must only be sent once by the backend. However, the problem here is that the initiator also receives his own update. I would like to avoid that. Is that possible? Or should I have another design?
Ofcourse, I can always add the user identifier of the initiator in the payload of the update message and filter on that field when receiving an update message, but the message is still received.
That is an interesting question. After thinking about this for a while with this particular design, when the user wants to get the update and also make some changes while others should know about it I feel like you need to think of some other design.
With Topic as an Exchange you will always get the notification as the queue is created when you logged into the system. And Topic will broadcast it.
The topic is more for a subscription kind of thing where you can not specify easily where you want to skip one subscription or not.
One design I can think of which is bit complicated is as follow:
Create one Topic Exchange per person in the team.
When another User logs in he will subscribe to the Exchange of all other team members.
When a user makes an update it is sent to his own Exchange where all others are listening.
That way the user will not get his own update as he is listening to others topics.

Administration of telegram channel

I get into a problem with the Telegram channel,
one person creates a channel and adds other administrators to it,
then she removed her telegram. and now it is needed to add another telegram administrator to that channel.
As I understand, the only channel creator can add a new admin of the channel.
So.. what should I do?
I think even she(channel creator) reinstalls her telegram, she can't add a new admin to the channel...
if someone deletes their telegram account then bots they created are deleted, and groups or channels lose their master and no one gets the master card
https://telegram.wiki/privacy/accountdeletion
What happens after account deletion?
User will get automatically logged out of their Telegram clients.
Username and the phone number of a deleted account immediately become available to reuse.
If the user recreates the Telegram account with the same phone number, the TQ will change.
The account will have the same phone number but will be a fresh new account with a different unique ID (#tq number).
TDesktop (Windows) will still show the old account's display name, even after restarting the client. The name does not change to DELETED / Unknown / Hidden Name, etc. This is at least if you had a previous chat history with the old deleted account. If you re log in, the name will show as blank (no name at all). Other Telegram clients may display deleted accounts as DELETED / Unknown / Hidden Name, depending on the client and language/translation strings.
User's last seen will display as “Last seen a long time ago” in modern clients (“offline” in very old clients)
You can still type to a deleted account, but the messages will never be received by the Telegram servers. They will always show a clock icon, instead of 1 check.
Bots created from a deleted account are deleted too and their usernames become available to reuse.
Groups and channels aren't deleted and stay orphaned (no one gets privileges of the creator).
update: I'm a quite sure telegram was updated so that if an admin leaves a group or channel (by manually leaving or deleting their account) then the user who was connected for the longest gets the admin control... (bots still lose their admin and become useless)
(I couldn't quickly find the source for this, quite sure it was in one of the update telegraphs they sent when the change happened)
Telegram doesn't work like that. It is completely on the cloud. This means that if she reinstalls her Telegram app, it will be as if she hasn't uninstalled it. (Uninstalling is different from removing your account)

Accessing Bigcommerce' s %%GLOBAL_CustomerId%% variable

How can I have access to bigcommerce's %%GLOBAL_CustomerId%% variable?
I create a sample template and logged in with as a user. That variable doesn't show up. Isn't it suppose to be a Global variable?
Background: I want to create an app for bigcommerce that can identify a user base on their customerID. If I can't grab that variable, you guys see any other way to work around this?
It's not immediately clear in the docs, but you can use %%GLOBAL_CurrentCustomerEmail%% anywhere on the template to get the email address of the currently logged in user.
If you need the customer's ID, then you can query the API with the email as a parameter.
Personally, I'd rather "trust" the customer's email as a point of identification, because you never know if the Bigcommerce ID's may get changed or not (example: Customers are deleted and then reimported, now having brand new ID's).
On a subject of security though, you cannot trust client side data, and should attempt to mitigate fraudulent requests through the use of a CSRF token or some similar measure. Otherwise, anyone can send you an email address and receive back a list of that person's favorite products -- golden information for say, a targeted advertising company, or just your suspicious next-door neighbor Joe who seems to always be conveniently checking his mail right when you get home from work, but never says anything when you walk by, not even a wave or a smile, despite the fact that you all have been neighbors for quite some time now. Like, should I say something? Hahaha, I kid I kid.

How to build a jabber client using libstrophe

I'm trying to make a simple Jabber client using the libstrophe library.
It's going fairly well so far, except for one thing for which I need some clarification.
Namely, how am I supposed to (continuously) know the status (i.e., Online/Offline) of contacts, so that I can display it to the user of my program? Similarly, how am I supposed to request the roster of the user?
I've looked at the roster.c example provided by libstrophe, but that only prints out the roster once. In a real application, I'll need to request/update this continuously, in order to show any new contacts the user added, etc., in the application.
So basically, I'm unclear on how to make sure that I always display the most current roster and most current statuses of people in my user's contact list.
Am I just supposed to request the roster at some predefined time interval, for example?
roster and presence are 2 different topics.
When you login you normally request the roster which you are doing already. When your contact lists changes during your session you get a roster push with the updated contact. This is an stanza. It doesn't matter if another logged in client manipulated the roster our your client.
The online state called presence of all your subscribed contact comes in with stanzas.
You have to setup handlers with xmpp_handler_add for
Online state, presence stanzas
Roster pushes, iq stanzas with query of namespace jabber:iq:roster