Limiting the number of logins by ip address in moodle - moodle

Am using Moodle for online quizzes locally in a lap environment.
I am facing a problem with students sharing log in credentials in the exam. so am searching for a solution that will associate every user with a single ip address for a period of time. is there is any way from moodle to do this.

This may not be possible to completely prevent without writing a new plugin to cache the login and restrict any new logins for a period of time. IP address probably isn't the best way to do this, as multiple students could be using the same IP address if sharing something like a WiFi connection at a campus or public location.
However, you can make it a little more difficult.
1.) Enable the "Limit concurrent logins" setting. You can find this in Site Administration > Plugins > Authentication > Manage Authentication.
2.) Try this plugin. It will cache login information for a student when accessing a quiz and prevent another computer from logging in to the same account from continuing that same quiz.
3.) Use some sort of single-sign-on service which you can connect with Moodle via a SAML2 plugin like this one. Look for a service that provides the specific functionality you're asking for.
4.) Use multi-factor authentication. You can combine this with option #3 above or look for a plugin supported by your current version of Moodle. Lambda Solutions appears to have a commercial product for this. There is also an older plugin on Moodle's site that you could get a developer to update for you.

Related

Redirect my weebly site to my heroku app

I recently acquired a domain while buying a logo and some business cards through logomaker.com. I took this opportunity to claim the domain that I want to use for my rails app on heroku (Was this a mistake?).
Currently I seem to be required to use Weebly to edit the site for this new domain (But I'm thinking about transferring the domain to my GoDaddy account for simplicity. Is this a good idea?) I'm trying to route the simple domain to my rails app. In other words, I want users to be able to type mrzschool.com and get routed to mrzschool.herokuapp.com. I haven't been able to find a way to do this through Weebly.
I also have access to DNS and nameserver settings, such as imap and pop, through logomaker.com. This seems like it might be a way to change the routing, but I'm realizing that I'm unschooled in the realm of domains and DNS.
I'd suggest you go through the the process of moving your domain registrar from logomaker to your goDaddy account, were you can keep an eye on this domain along side any other domains you've there. It's a tedious process but worth it in my opinion. However, it's optional since you have all the control you need to do that via logomaker.
The heroku docs mentions (found here) how you can point your own custom domain to your heroku app subdomain. Keep in mind that you will need to verify your account and your ownership of the domain.
You will also find some useful troubleshooting steps here.

How to Configure IdentityManager

I'm at the early days of looking into IdentityServer v3 and IdentityManager, as I'm certain those guys are more clued up than I, but I cannot see how to configure the IdentityManager.
If we're deploying IdentityManager to a client, all the client want to do is "standard admin type stuff", such as
create users
unlock accounts (e.g. after 3 failed login attempts)
suspend accounts (not paid your bill, tut tut...)
delete users
..rather than amend claims, roles and suchlike (presumably these would be hidden from the Administrators).
What am I missing?
Or, is the IdentityManager supposed to be used by the implementation team installing the thing, and then the business administrators who deal with the topics listed above actually don't use IdentityManager at all, but a separate admin site we have to write? As far as I can make out all the pages, htm letc is within the nuget package so cannot be amended by me.
If it makes any difference, we're trying to create a public facing website that can be logged into, but the users are only created by the company, whose admin site to create & administer the users is IP restricted / not public facing.
Identity Manager is aimed at developers and internal administrators for testing and initial configuration purposes, as opposed to end users.
Check out https://vimeo.com/125426951 by the repo's author. I think it's explicitly stated at around the 1 minute mark. It's mentioned on the Github issue tracker quite frequently too.
Also, it's not that extensible yet, so you won't be able to brand it or remove sections (such as your requirement of no claims).

Legacy Google Apps Changing Domain Alias to Primary Domain

I have signed up earlier for the google apps account which is now called as legacy and the primary domain has got expired. I am trying to bootstrap a startup ourselves and thought of using this legacy account. below are the steps I tried so see if I can change the primary domain. let me know if anyone of you know about any existing solutions.
No option to add a secondary domain because its a legacy account. Google removed the option.
Added our new domain as a domain alias.
Went through the GAM tool, Admin SDK.
There are couple of options which I could think off to achieve this.
Upgrade the google legacy account to a 30 day trial account and get the option to add a secondary domain and then make the primary domain change and downgrade. However, from what I have read in the internet, there is a risk where when I downgrade there would be only 1 license to use.
https://www.isaumya.com/how-to-change-primary-domain-for-google-apps-legacy-account/ here is a website telling me they have a script to run and make these changes and asking for 30 dollars.
https://github.com/marcelobern/Google-Admin-SDK-Domain This is another option that I came across.
I know it a sounds a bit crude but I am just trying to use a freebie till we get a funding for the startup :) Let me know if anyone of you have any solutions.
If you do the free trial, you will gain the ability to add a domain rather than a domain alias. However, you will not be able to downgrade back to legacy free until you remove the domain. (I tried this on an account I was willing to lose).
For your purposes I think you could get away with using the domain alias. Your users will need to sign in under the old primary domain name but your users can configure your domain alias as the default outgoing email address under settings/Accounts/Send mail as.

Ejabberd: How to limit the fetching of jabber user directory (JUD)

I'm developing a client jabberd application for mobile(android) using (a)Smack.
Since, in my application, the users are registered by their phone numbers, the application should be able to recognize which contact has a jabber account on the server and suggest him/her for chatting.
After googlling the web I found that there is a jabber user directory (JUD) which I can use to check there is an account for a specific mobile number or not. (I'm using UserSearchManager).
My questions:
1- It seems that there is no record in JUD for a user who has not updated his vCard yet, so I cannot find him. Is there any solution to check the existence of this kind of users?
2- It seems that by using JUD, everyone outside of my application can fetch some important information of users such as mobile numbers, emails, etc. Is there any solution to limit JUD search engine? (for example, getting only "user field" as a input and returning only "full name field" of existing accounts or other useful limitation).
So by this way, I can recognize which person from the contact list has an account on the server and also other people cannot fetch important information of the exiting users.
Any command or advice is appreciated. Thank you.
I do not think it is possible as default, without customizing ejabberd application code.

Automate distribution of redemption codes for Custom B2B app

I have built a Custom B2B app for one of our clients. My question is how to automate the distribution of the redemption codes.
I have already looked at some of the MDM providers. Their solutions are too expensive and all we really need is a way to distribute the app from a webserver, not manage a bunch of mobile devices.
As you probably already know, when a client buys a Custom B2B app through the Apple VPP program, they get a spreadsheet with valid redemption codes for the number of licenses they have built. This spreadsheet has 2 columns: 1) redemption code 2) URL to redeem the code
I want to provide my client with a URL where they can send their users to download the app. They just don't have the expertise/infrastructure to distribute the app themselves. And emailing clients is not going to work.
I'm not a web guy, but it seems to me that we could write a webpage that would look at the spreadsheet for the next available activation code and then redirect the user to the associated URL. I'm not concerned with the number of licenses they distribute since I have another way of auditing the real number of users (Flurry). So I want this to be as painless as possible.
In fact, I have multiple clients and want to provide them each with their own URL for their clients. It seems like this shouldn't be too difficult to code.
The problem is, I'm not the guy to write that code. Any ideas on how best to do this?
Assuming that you don't want to show the user a website you should be able to do this with an online service like parse.com and the features it offers.
From a user POV you would supply them with a link which directed them to parse.com with a path and parameters indicating the action to be taken (get app) and what account is associated. This would redirect the users browser to the appropriate destination.
The main issue (and this applies to any solution) is knowing if the user actually followed through and used the code. i.e. should it be removed from the DB so it isn't offered to another user in future. Then you would update the DB each time you get a new spreadsheet.
Anyway, this could be achieved with a little javascript in parse.com, specifically, by using cloud code which can interrogate and modify the DB and then redirect the user.
Obviously if you need user authentication of some kind or other restrictions then you would need to start adding some web interface on top of this in order to collect the details.