Focus mode

Node.js

Kullanıcı Rolleri

Kullanıcı Rolleri (User Roles)


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);



Proje GitHub


Çalışma Özel GitHub

Patika Plus Banner

Yazılım Kariyerinde İlerlemeni Hızlandıracak Eğitimler

Kendi kendine yazılım öğrenirken zorlanıyor, takıldığın noktalarda bir mentore mi ihtiyaç duyuyorsun? Patika+ programlarımız ile 4-8 aylık yoğun eğitim kamplarına katıl, proje tabanlı canlı dersler ve sana özel hazırlanmış eğitimlerle gereken tüm yetenekleri kazan, iş hayatına başla!

Comments

You need to enroll in the course to be able to comment!