- Dựa vào cơ cấu tổ chức và phân công trách nhiệm, BFD nghiệp vụ --> trong hệ thống ta sẽ chia người dùng thành các nhóm sau :
+ nhóm 1 : Nhóm quản trị : Đây là nhóm quản lý và kiểm soát toàn bộ hệ thống bao gồm việc tạo tài khoản, cấp quyền truy cập cho các bộ phận khác trong hệ thống. Mỗi bộ phận khác trong hệ thống sẽ được quyền đăng nhập, và sử dụng chức năng thuộc vai trò của mỗi bộ phận.
+ nhóm 2 :Nhóm quản lý nhân sự + nhóm 3 : Nhóm quản lý dự án + nhóm 4 : Nhóm nhân viên
- Để sử dụng được hệ thống, người dùng cần phải có mật khẩu và tên đăng nhập. Dựa vào mật khẩu và tên đăng nhập, hệ thống sẽ xác thực , kiểm tra quyền của người dùng và xác nhận cho người dùng đăng nhập vào hệ thống. Cụ thể: - Để xác định vai trò của người dùng trong hệ thống ta xác định được thực thể
Vai trò ( Mã vai trò, Tên, Tên hiển thị,Tên thường, Mặc định, Mô tả )
Mã hóa kiểu thực thể thành bảng quan hệ, kiểu thuộc tính thành trường dữ liệu ta có
Role(RoleId, Name, DisplayName, IsDefault, Description)
-Để xác định vai trò đó có quyền truy cập những chức năng nào, ta xác định được thực thể Phân quyền (Mã quyền, Tên, Trạng thái cho phép, Mã vai trò, Mã người dùng)
Mã hóa kiểu thực thể thành bảng quan hệ, kiểu thuộc tính thành trường dữ liệu ta có
Permission ( PermissionId, Name, IsGranted, RoleId, UserId)
-Để phục vụ cho việc đăng nhập hệ thống ta đã xác định được thêm các thuộc tính
Tên đăng nhập,mật khẩu cho thực thể User.
Tên đăng nhập ,mật khẩu sẽ được mã hóa tương ứng thành
UserName, Password, RoleId cho thực thể User (UserId, Name, UserName, Password, AvatarPath, Email, PhoneNumber, Sex, Branch, Address, JobTitle, Level, StartDate, RoleId, RoleName)
Từ phân tích nêu trên ta xác định được các thực thể phục vụ cho bảo mật là :
User ( UserId, Name, UserName, PassWord , AvatarPath, Email, PhoneNumber, Sex, Branch, Address, JobTitle, Level,Type, StartDate, RoleId)
Role(RoleId,Name, DisplayName,NormanizedName, IsDefault, Description)
Permission ( PermissionId, Name, IsGranted, RoleId,UserId)
3.1.2.Xác định thuộc tính kiểm soát, bảng kiểm soát, tình huống gom nhóm bảng dữ liệu.
+ Thêm các tình huống bảo mật
Thêm trường PasswordResetCode, EmailConfỉmCode trong bảng user.
Để ngăn chặn xung đột cập nhật đồng thời, có trường ConcurrencyStamp trong bảng user và roles.
Việc có thêm trường ConcurrencyStamp sẽ giúp làm mất hiệu lực các cookie cũ và giảm các vấn đề bảo mật có thể xảy ra khác.
+ Thiết lập mối quan hệ giữ bảng User, Role, Permission
Người dùng Nhóm người dùng Quyền
Quản lý nhân sự Bộ phận quản lý nhân sự Quản lý quá trình mở khóa timesheet
Quản lý việc thiết lập lịch làmviệc
Quản lý báo cáo thống kê số giờ làm việc
Phê duyệt hoặc từ chối Timesheet, yêu cầu xin nghỉ
Nhân viên Nhân viên Quản lý timesheet cá nhân
Gửi yêu cầu xin nghỉ Quản trị Bộ phận quản trị Cập nhật danh mục, phân
quyền cho các nhóm còn lại
Ta có : Vì 1 User có thuộc tính RoleId là thuộc tính đa trị nên ta tách ra thực thể mới UserRole ( UserRoleId, UserId,RoleId)