????

Your IP : 18.222.22.193


Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/controllers/quantri/
Upload File :
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/controllers/quantri/quyentaikhoan.js

var Database = require('../../models/Database');
class QuyenTKController extends Database {
  constructor(params) {
    super(params);
  }
  static create(params) {
    return new QuyenTKController(params);
  }
  async getRole(id) {
    return (await this.select('SELECT Id,[Name],[Code],[CanDelete],[Tasks] FROM [Role] WHERE Id = @id', { id: id }))[0];
  }
  getRoles() {
    return this.select('SELECT Id,[Name],[Code],[CanDelete],[Tasks] FROM [Role]');
  }
  async addRole(role) {
    var roles = await this.select('SELECT Id FROM [Role] WHERE Code= @code', { code: role.code });
    if (roles.length) throw new Error('Đã tồn tại quyền tài khoản với mã ' + role.code)
    return this.query('INSERT INTO [Role]([Name], [Code]) VALUES (@name,@code)', role);
  }
  editRole(role) {
    return this.query('UPDATE [Role] SET [Name] = @name WHERE Id = @id', role);
  }
  async deleteRole(id) {
    let role = await this.getRole(id);
    if (!role) throw new Error('Không xác định được nhóm quyền cần xóa');
    if (!role['CanDelete']) throw new Error('Nhóm tài khoản mặc định không thể xóa');
    return await this.query('DELETE FROM [Role] WHERE Id = @id', { id: id });
  }
  // Phân chức năng
  getTasks() {
    // let roles = await this.select('SELECT Id FROM [Role] WHERE Code = @code', { code: roleCode });
    // if (roles.length) return await this.select('SELECT Task.Id,Task.Code,Task.[Name],Role_Task.Granted FROM Role_Task INNER JOIN Task ON Role_Task.Task = Task.Code WHERE Role_Task.Role = @role ORDER BY Task.Id', { role: roleCode })
    return this.select('SELECT Id,Code,[Name] FROM [Task] ORDER BY Task.Id');
  }
  async assignTask(reqInfo) {
    let input = {
      id: reqInfo['id'],
      tasks: reqInfo['task[]'].toString()
    };
    return this.query('UPDATE [Role] SET Tasks = @tasks where Id= @id', input);
  }
}
module.exports = QuyenTKController;