Skip to content

Full stack web application developed for managing various in-campus activities (DBMS Course Project)

Notifications You must be signed in to change notification settings

varshatumburu/admin-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 

Repository files navigation

admin-portal

Create database:

create database dbproject;

Create user and role table


CREATE TABLE Users (UID int PRIMARY KEY AUTO_INCREMENT, username varchar(255) UNIQUE, password varchar(255), RoleID INT, FOREIGN KEY (RoleID) REFERENCES Role(RoleID));

CREATE TABLE Role(RoleID INT PRIMARY KEY AUTO_INCREMENT, RoleDesc VARCHAR(255));

Create permission tables

CREATE TABLE Permissions (PID INT PRIMARY KEY AUTO_INCREMENT, PDesc VARCHAR(255));

CREATE TABLE PermissionsJoin(
    UID INT,
    PID INT,
    FOREIGN KEY(PID) REFERENCES Permissions(PID),
    FOREIGN KEY(UID) REFERENCES Users(UID)
);

CREATE TABLE PermissionSet(
    RoleID INT, PID INT,
    FOREIGN KEY(PID) REFERENCES Permissions(PID),
    FOREIGN KEY(RoleID) REFERENCES Role(RoleID)
);

Creating trigger for permission

DELIMITER $$
CREATE TRIGGER grant_permission_set
AFTER INSERT
ON Users FOR EACH ROW
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE permission INT;
    DECLARE cur CURSOR FOR SELECT PID FROM PermissionSet WHERE RoleID=NEW.RoleID;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    OPEN cur;
    my_cur_loop:
        LOOP FETCH cur INTO permission;
        IF done = 1 THEN
            LEAVE my_cur_loop;
        END IF;

        INSERT INTO PermissionsJoin VALUES (NEW.UID, permission);
    END LOOP my_cur_loop;
    CLOSE cur;

END $$
DELIMITER ;

Linking roleID to roleDesc (Add here for more roles)

INSERT INTO Role VALUES('1','Admin');
INSERT INTO Role VALUES('2','Guest House');
INSERT INTO Role VALUES('3','Market Services');
INSERT INTO Role VALUES('4','Landscaping Services');
INSERT INTO Role VALUES('5','General user');

Some trial permissions

INSERT INTO Permissions VALUES('101','Add user');
INSERT INTO Permissions VALUES('201','Book room');

Trial permission set.

INSERT INTO PermissionSet VALUES('1','101');
INSERT INTO PermissionSet VALUES('1','201');
INSERT INTO PermissionSet VALUES('2','201');

About

Full stack web application developed for managing various in-campus activities (DBMS Course Project)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •