public void GrantPermission(objectRbac mObject, operation mOperation, role mRole) { role TempRole = Mapping(mRole); if (TempRole == null) throw new Exception("Role Does not exist in system."); objectRbac tempObject = Mapping(mObject); operation tempOperation = Mapping(mOperation); //Grant permission string hsql = "from permission per where per.ObjectRBAC = :ObjectRBAC AND per.Operation = :Operation "; List<permission> _lst = PermissionSrv.GetbyHQuery(hsql, new SQLParam("ObjectRBAC", tempObject), new SQLParam("ObjectRBAC", tempOperation)); permission TempPermission = (_lst == null || _lst.Count == 0) ? null : _lst[0]; if (TempPermission == null) { TempPermission = new permission(); TempPermission.AppID = App.AppID; TempPermission.name = tempObject.name + ":" + tempOperation.name; TempPermission.ObjectRBAC = tempObject; TempPermission.Operation = tempOperation; PermissionSrv.CreateNew(TempPermission); TempRole.Permissions.Add(TempPermission); RoleSrv.CommitChanges(); } else { if (!TempRole.Permissions.Contains(TempPermission)) { TempRole.Permissions.Add(TempPermission); RoleSrv.CommitChanges(); } } }
public void InstallObject(string mObject, string[] mOperations) { if (_App == null) return; objectRbac tempObject = ObjectSrv.GetByName(mObject, _App.AppID); if (tempObject != null) return; tempObject = new objectRbac(); tempObject.AppID = _App.AppID; tempObject.name = mObject; ObjectSrv.CreateNew(tempObject); foreach (string ope in mOperations) { operation TempOpe = OperationSrv.GetByName(ope, _App.AppID); if (TempOpe == null) { TempOpe = new operation(); TempOpe.name = ope; TempOpe.AppID = _App.AppID; OperationSrv.CreateNew(TempOpe); } permission TempPermission = new permission(); TempPermission.AppID = _App.AppID; TempPermission.name = tempObject.name + ":" + TempOpe.name; TempPermission.ObjectRBAC = tempObject; TempPermission.Operation = TempOpe; PermissionSrv.CreateNew(TempPermission); } PermissionSrv.CommitChanges(); }
public void DeletePermission(permission mPermission) { throw new Exception("This method have not Implement."); }
public void GrantPermission(string mObject, string mOperation, string[] mRoles) { if(_App==null)return ; string HQL = "from role r where r.AppID = :AppID AND r.name in ({0})"; string ParaStr = ":" + string.Join(",:", mRoles); HQL = string.Format(HQL, ParaStr); SQLParam[] paramList = new SQLParam[mRoles.Length + 1]; paramList[0] = new SQLParam("AppID", _App.AppID); for (int i = 0; i < mRoles.Length; i++) { paramList[i + 1] = new SQLParam(mRoles[i], mRoles[i]); } List<role> RoleLst = RoleSrv.GetbyHQuery(HQL, paramList); if (RoleLst == null || RoleLst.Count == 0) return; //Grant permission permission TempPermission = PermissionSrv.GetPermission(mObject, mOperation, _App.AppID); if (TempPermission == null) { objectRbac tempObject = ObjectSrv.GetByName(mObject, _App.AppID); operation tempOperation = OperationSrv.GetByName(mOperation, _App.AppID); if (tempObject == null || tempOperation == null) return; TempPermission = new permission(); TempPermission.AppID = _App.AppID; TempPermission.name = tempObject.name + ":" + tempOperation.name; TempPermission.ObjectRBAC = tempObject; TempPermission.Operation = tempOperation; TempPermission.Roles = new List<role>(); foreach (role r in RoleLst) { TempPermission.Roles.Add(r); } PermissionSrv.CreateNew(TempPermission); PermissionSrv.CommitChanges(); } else { foreach (role r in RoleLst) { if (!TempPermission.Roles.Contains(r)) TempPermission.Roles.Add(r); } PermissionSrv.CommitChanges(); } }