Focus mode
Smartedu projemizde kullanıcılarımızın farklı rolleri yani görevleri olacak. Bazı kullanıcılarımız öğrenci olarak derslere kayıt olabilecek, bazı kullanıcılarımız öğretmen rolleri ile yeni dersler oluşturabilecek. Bu rolleri yine özel ara yazılımları ile oluşturacağız. İlgili ara yazılım roleMiddleware.js
module.exports = (roles) => {
return (req, res, next) => {
const userRole = req.body.role;
if(roles.includes(userRole)) {
next();
} else {
return res.status(401).send('YOU CANT DO IT');
}
}
}
Kullanıcı modelimizde role
isminde yeni bir alan oluşturuyoruz ve olmasını istediğimiz rolleri yazıyoruz. Varsayılan rol ile student
olacak.
role:{
type: String,
enum:["student", "teacher", "admin"],
default: "student"
}
Bu rollerden student
ve teacher
rollerini kullanıcı kayıt esnasında seçebilir.
<div class="offset-1 col-lg-10 col-md-10 col-sm-10">
<select class="form-control" name="role">
<option>student</option>
<option>teacher</option>
</select>
</div>
Şimdi ise örneğin yeni bir kurs oluşturmak için createCourse
fonksiyonunun çalışması için öncesinde istediğimiz kullanıcı rolüne bu işlemi
yapabilmek için gerekli yetkiyi verebiliriz.
router.route('/').post(roleMiddleware(["teacher", "admin"]), courseController.createCourse);
For a quick start in software development from scratch, check out our specialized training courses
Do you need more education, projects, and mentor support in your journey to learn programming? Join Patika+'s intensive 4-8 month bootcamps, gain all the necessary skills with project-based live classes and customized trainings for you, and start your career!
You need to enroll in the course to be able to comment!